BigX

BigX: A geographical dataset visualisation tool - Published in JOSS (2020)

https://gitlab.com/geekysquirrel/bigx

Science Score: 87.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Earth and Environmental Sciences Physical Sciences - 40% confidence
Last synced: 4 months ago · JSON representation

Repository

A data visualisation tool for geographic datasets

Basic Info
  • Host: gitlab.com
  • Owner: geekysquirrel
  • License: gpl-3.0+
  • Default Branch: dev
Statistics
  • Stars: 0
  • Forks: 0
  • Open Issues: 4
  • Releases: 0
Created almost 7 years ago
Metadata Files
Readme License

README.md

GPL-3.0  DOI Branch coverage status  Statement coverage status  Quality Gate status  Log in to see pipeline status

Welcome to BigX

Demo Setup Usage

About

BigX is a tool to create custom maps using open data (GeoJSON and CSV).

Its main features are:

  • Can be configured to work completely offline
  • Layer configuration files make it easy to load different datasets
    • Definition works in a purely declarative way - no code needs to be written!
    • all layer definitions are text-based so configuration can be done without access to a GUI and can easily be scripted, e.g. for use in containerised or cloud environments
  • Load any geographical data in (Geo)JSON or CSV format and combine your data with other datasets
  • Dynamically load data instead of pre-loading everything to reduce waiting time

Who this is for:

  • People with some computer literacy and basic understanding of algorithms and data structures but not necessarily any coding skills
  • People who have some data and want to quickly visualise it and combine it without having to write code
  • People who want to share interactive maps with a restricted audience while controlling the physical location of the data
  • The resulting maps, if built/deployed with bundled data by somebody who knows what they're doing™ are for anybody who can browse a map.

Who this is not for:

  • Complete beginners who have never heard of things such as map data structures, JSON or CSV
  • People aiming to do their entire data analysis using this tool.
    • While it can be used to manipulate and filter, the more of it you do, the slower it will get.
  • People aiming to visualise "Big Data" (whatever you imagine when you hear that term).
    • If you would like to get good performance, it's a good idea to preprocess your data using a more suitable tool such as Python. Have a look at the sample script to get some ideas.

Alternatives:

  • You could build your own custom map from scratch using Python and its many libraries.
  • If you would like a GUI desktop-based approach to visualise your data, you could try QGIS or uDig.
  • Paid hosted services for interactive maps are available from places such as ArcGIS or Carto.
  • Maps can be coded using R/Shiny and compiled down into Javascript.

Before you start please note:

BigX does not contain data by default with the exception of some example data. To use it as it was intended, you will have to acquire the data yourself and responsibility for using the proper credits lies entirely with you! I will not take responsibility if you use data without permission or fail to give credit to the data owners. I do not own any of the data shown in this README but an effort has been made to credit where necessary. If you're a data owner and you think I've used your data inappropriately, please get in touch.

Demo

You can find a running demo instance here.

This is not supposed to be a "production" version of BigX, just a demo. If you like it please download it and deploy it yourself.

Why is it slow? As described in the "Architecture" section below, BigX runs in the browser on your computer ("client-side"). This means, the data needs to first get to you from the server where it is stored. If you run BigX on your local machine as described in the the setup instructions, these two machines are the same, so the data gets sent to your browser really fast™. That's why ultimately for serious use, such as exploratory data analysis, you should download BigX.

BigX in action

Different types of layers can be combined into one map. The map key is dynamically updated depending on which layers are shown. (© OpenStreetMap contributors under ODbL. Contains OS data © Crown copyright and database right 2018):

Different layers on one map

CSV data can be added on top of geographic data to generate complex maps (© Stadia Maps, OpenMapTiles. Data by OpenStreetMap, under ODbL. Contains OS data © Crown copyright and database right 2018, election results © UK Parliament 2017):

CSV data attached to geographical data

All layers can be combined to give context to the data and create meaningful maps. The colour scheme can be generated using the features' data. (© Stadia Maps, OpenMapTiles. Data by OpenStreetMap, under ODbL. Contains Ordnance Survey, Office of National Statistics, National Records Scotland and LPS Intellectual Property data © Crown copyright and database right 2016. Data licensed under the terms of the Open Government Licence. Ordnance Survey data covered by OS OpenData Licence.):

Combined map with generated colour spectrum

Use satellite images to explore what's going on. (© Esri, DigitalGlobe, GeoEye, i-cubed, USDA FSA, USGS, AEX, Getmapping, Aerogrid, IGN, IGP, swisstopo, and the GIS User Community. Data from Cambodian Mine Action and Victim Assistance Authority (CMAA) and Office for the Coordination of Humanitarian Affairs (OCHA) to Humanitarian Data Exchange (HDX).):

Satellite

Generate overlays from points to visually filter the data (© OpenStreetMap contributors under ODbL. Contains OS data © Crown copyright and database right 2018. © 2009-2012 Atos and RSP):

"Overlay" layers for visual filtering

Load large datasets thanks to clustering. Clusters contain content-aware icons (© OpenStreetMap contributors under ODbL. Contains OS data © Crown copyright and database right 2018):

Clustered markers with dynamic preview

Easily generate heat maps from points-based layers using different styles (© Map tiles by Carto, under CC BY 3.0. Data by OpenStreetMap, under ODbL. © 2018 Food Standards Agency and ONS Postcode Directory, Open Government license):

Heat map

Now with dark mode! Switch UI elements and base map - be kind to your eyes (© Map tiles by Carto, under CC BY 3.0. Data by OpenStreetMap, under ODbL. © 2018 Food Standards Agency and ONS Postcode Directory, Open Government license):

Hexbin map

Credit where credit is due: all copyright information is dynamically generated depending on what layers are shown:

Dynamically generated credits

Plan data-driven trips using the built-in measurement tool (© OpenStreetMap contributors under ODbL. © 2018 OpenStreetMap contributors, Contains OS data © Crown copyright and database right 2018, © 2009-2012 Atos and RSP, © 2003-2019 Walking Englishman):

Route planning tools

Scrape live web-content to display on the map by combining with geographic data, using e.g. postcodes to map to coordinates (© Map tiles by Carto, under CC BY 3.0. Data by OpenStreetMap, under ODbL. © Property data by Rightmove.com, Contains OS data © Crown copyright and database right. Contains Royal Mail data © Royal Mail copyright and database right © 2020 Source: Office for National Statistics licensed under the Open Government Licence v.3.0 © Geonames.org):

Live layers

Create multiple views that logically group layers into different, themed maps. Easily switch between them while keeping your layers control tidy:

Views

Bring your GPX files (or any other temporal data) to life by animating them on the map (© Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA. Contains OS data © Crown copyright and database right 2018. GPX data © 2018 Stefanie Wiegand):

Animated

Show movement by importing a directed graph (here: bike trips between rental stations in London); potentially by combining multiple datasets for locations and movement (© Map tiles by Carto, under CC BY 3.0. Data by OpenStreetMap, under ODbL. Powered by TfL Open Data. Contains OS data © Crown copyright and database rights 2016 and Geomni UK Map data © and database rights 2019):

Migration

Architecture

A typical setup of BigX looks like this:

The typical setup

BigX is running locally and all data (geographic data, map tiles and other data) is stored on the same machine. The internet conection is optional if you want to use online base maps but none of your data gets transferred anywhere outside your machine.

Other setups are possible, and can be used in scenarios where it's not practical for end-users to store the data, such as the demo, where data is stored on the server that hosts BigX and gets transferred to your browser as required.

Installation, Configuration and Usage

Check out the docs for all documentation.

Contributing

To suggest new features, report bugs or get help you can raise an issue on the issue tracker. Merge requests are also welcome, provided all tests pass and coverage has not decreased. For more information on how to run/test BigX, please read the setup instractions.

Copyright and licenses

BigX is licensed under GPL3. It uses the following libraries and plugins:

JOSS Publication

BigX: A geographical dataset visualisation tool
Published
November 18, 2020
Volume 5, Issue 55, Page 2537
Authors
Stefanie Wiegand ORCID
Bioengineering Sciences Research Group, School of Engineering, Faculty of Engineering and Physical Sciences, University of Southampton
Editor
Hugo Ledoux ORCID
Tags
Leaflet.js data visualisation

Committers

Last synced: 4 months ago

All Time
  • Total Commits: 511
  • Total Committers: 3
  • Avg Commits per committer: 170.333
  • Development Distribution Score (DDS): 0.168
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Stef g****b@b****t 425
Stef s****d@f****g 85
Daniel S. Katz 4****z@u****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago


Dependencies

package.json npm
  • @babel/core ^7.14.3 development
  • @babel/eslint-parser ^7.14.4 development
  • @babel/plugin-proposal-class-properties ^7.10.1 development
  • @babel/preset-env ^7.9.6 development
  • @stryker-mutator/babel-transpiler ^4.0.0 development
  • @stryker-mutator/core ^5.0.0 development
  • @stryker-mutator/javascript-mutator ^4.0.0 development
  • @stryker-mutator/jest-runner ^5.0.0 development
  • babel-jest ^27.0.2 development
  • coverage-badges ^1.0.5 development
  • electron ^9.0.4 development
  • electron-squirrel-startup ^1.0.0 development
  • eslint ^7.28.0 development
  • jest ^27.0.4 development
  • jest-canvas-mock ^2.3.1 development
  • jest-jasmine2 ^27.0.4 development
  • jquery ^3.5.1 development
  • jquery-csv ^1.0.11 development
  • jsdoc ^3.6.4 development
  • jsdom ^16.2.2 development
  • jshint ^2.11.1 development
  • prettier ^2.3.1 development
  • stryker-cli ^1.0.1 development
  • leaflet-geotiff-2 ^0.5.1