geoflow-visualizer
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.1%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: geoflow-visualizer
- License: apache-2.0
- Language: JavaScript
- Default Branch: main
- Size: 59.5 MB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 1
- Releases: 1
Metadata Files
README.md
Geoflow Visualizer
Visualizes any type of flow between countries. Takes a CSV as input, applies filtering and aggregation (danfojs) to show relations and data in a number of visualizations (d3.js)
Demo
The latest version of this tool is available at https://geoflow-visualizer.github.io/geoflow-visualizer/
Requirements
Nodejs + npm
Installation
npm install
Run
npm start
Usage
Use the file selector to select a CSV file that at least has the columns source, target and weight.
Development
In short, the application uses the React as the main framework, Danfo.js for data processing and filtering, and d3.js for visualization of the map and charts. Below is a more detailed overview of what can be found where.
Application
The main GUI is specified in App, which connects all the components to the data that is managed in the DataStore class (below).
Loading and filtering the data
The DataStore class is where all the loading and filtering happens. It largely relies on Danfo.js (a pandas clone for javascript) for this. The class a mobx observable, meaning that its computed properties can be observed in a component and it will re-render in a transparent way if the computed properties' inputs change.
Loading and filtering the data happens in several steps and only the required steps will execute if the inputs (such as the category selection) change. The steps are roughly as follows:
- Load data - does some basic cleaning and filtering and splits the data into links to self and links to others.
- Filtered data - applies the filters for sources, targets and other columns.
- Aggregate per link - for showing on the network map
- Aggregate per node (source/target) - for showing in the bar chart
- Aggregate per year - for showing the time series.
- Convert to nodes and links - converts to objects to be visualized in d3.js.
- In addition there are some properties for row / link counts, used locations and categories.
Maps, countries, projections
The map and country data is loaded in the GeoData module. It is currently 'hard coded', i.e. cannot be specified by the user.
The world map is a topojson file: worldcountriesneocarto.json. The geometries are used to display the map and they are linked to the visualization by their ISO-2 country codes. The other properties are ignored.
The capital of each country is used as its location (the node the arrows point to/from). Country capital positions are linked to the user data by their ISO-2 country codes. The capital data is in country-capitals.json. This is also where the country names (labels) are from.
The current map projection is geoAitoff and is set in the components/mappings module.
Styling and colors of visualization
Some semi-constant data, such as color maps, projections and number formatting functions are defined in the components/mappings module.
The visualization of the map and its links are defined in components/LinkVis. Properties that are not defined in the mappings module can be customized there.
Owner
- Name: Tracking and visualizing cross-border flows
- Login: geoflow-visualizer
- Kind: organization
- Website: https://research-software-directory.org/projects/fossil-fuel-owners
- Repositories: 1
- Profile: https://github.com/geoflow-visualizer
Software written for a project by the University of Amsterdam and the Netherlands eScience Center
Citation (CITATION.CFF)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: Geoflow Visualizer
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- orcid: 'https://orcid.org/0000-0002-6630-7326'
given-names: Peter
family-names: Kok
affiliation: Netherlands eScience Center
- orcid: 'https://orcid.org/0000-0002-6119-1790'
given-names: Javier
family-names: Garcia-Bernardo
affiliation: Utrecht University & ODISSEI Social Data Science Team
- orcid: 'https://orcid.org/0000-0002-9179-8120'
given-names: Milan
family-names: Babic
affiliation: Roskilde University
repository-code: >-
https://github.com/geoflow-visualizer/geoflow-visualizer
url: >-
https://geoflow-visualizer.github.io/geoflow-visualizer/
abstract: >-
Visualizes any type of flow between countries. Takes a CSV
as input, applies filtering and aggregation to show
relations and data in a number of visualizations.
GitHub Events
Total
Last Year
Dependencies
- JamesIves/github-pages-deploy-action v4.3.0 composite
- actions/checkout v3 composite
- 1250 dependencies
- autoprefixer ^10.4.7 development
- daisyui ^2.14.3 development
- postcss ^8.4.13 development
- tailwindcss ^3.0.24 development
- @testing-library/jest-dom ^5.16.4
- @testing-library/react ^13.2.0
- @testing-library/user-event ^13.5.0
- d3 ^7.4.4
- d3-geo-projection ^4.0.0
- danfojs ^1.1.1
- mobx ^6.6.2
- mobx-react-lite ^3.4.0
- react ^18.1.0
- react-dom ^18.1.0
- react-scripts 5.0.1
- topojson ^3.0.2
- web-vitals ^2.1.4