CyberGIS-Vis is an open-source software tool for interactive geospatial visualization and scalable visual analytics.
CyberGIS-Vis integrates cutting-edge cyberGIS and online visualization capabilities into a suite of software modules for visualization and visual analytical approaches to knowledge discovery based on geospatial data. Key features of the current CyberGIS-Vis implementation include: (1) comparative visualization of spatiotemporal patterns through choropleth maps; (2) dynamic cartographic mapping linked with charts to explore high-dimensional data; (3) reproducible visual analytics through integration with CyberGIS-Jupyter; and (4) multi-language support including both Python and Javascript. Firefox is the recommended web browser for reaping the best performance of CyberGIS-Vis.
Example visaulizations are available in the two folders below:
- Quantitative_Data_Vis
- Categorical_Data_Vis
You can run CyberGIS-Vis in your Jupyter Notebook installed on your PC as well as in CybearGISX. We recommend that you use CyberGISX because all the required packages have been integrated in CyberGISX.
To use it in CyberGISX, follow steps below:
- If you do not have a CyerGISX account, create a CyberGISX account with your GitHub id at https://cybergisxhub.cigi.illinois.edu
- Begin by clicking the yellow 'Open with CyberGISX' button in this published notebook, available at this link.
To run in the loca environment, follow steps below.
- Download and install Anaconda at https://www.anaconda.com/.
- After installation is done, open "Anaconda Prompt" and enter command lines below to create an environment.
conda create -n geo-env -c conda-forge geopandas
conda activate geo-env
conda install -c conda-forge jupyterlab
jupyter lab- Open Python Script below.
Quantitative_Data_Vis/Adaptive_Chropleth_Mapper.py
Categorical_Data_Vis/Qualitative_Analysis_Mapper.py- Comment and uncomment out like below. These are related to create URLs in the Jupyter Server.
#from jupyter_server import serverapp
#jupyter_envs = {k: v for k, v in os.environ.items() if k.startswith('JUPYTER')}
#temp_server = jupyter_envs['JUPYTER_INSTANCE_URL']
#servers = list(serverapp.list_running_servers())
#servers1 = temp_server+servers[0]["base_url"]+ 'view'
#servers2 = temp_server+servers[0]["base_url"]+ 'edit'
local_dir1 = cwd
local_dir2 = cwd
#local_dir1 = servers1 + cwd + '/'
#local_dir2 = servers2 + cwd + '/' - Open Jupyter notebook below and run.
Quantitative_Data_Vis/Adaptive_Chropleth_Mapper.ipynb
Categorical_Data_Vis/Qualitative_Analysis_Mapper.ipynbStart from the published notebook
01_Start.mp4
Explore spatiotemporal patterns of your data using the Multiple Linked Chart
02_ACM_MLC_v2.mp4
Explore spatiotemporal patterns of your data using the Comparison Line Chart
CLC.mp4
- Adaptive Choropleth Mapper (ACM)
- Adaptive Choropleth Mapper with Stacked Chart
- The Stacked Chart visualizes the temporal change. Click to see demo.
- Adaptive Choropelth Mapper with Correlogram
- Adaptive Choropleth Mapper with Scatter Plot
- Adaptive Choropleth Mapper with Parallel Coordinate Plot (PCP)
- Adaptive Choropleth Mapper with Multiple Linked Chart (MLC)
- Click to see Demo
- Adaptive Choropleth Mapper with Comparison Line Chart (CLC)
- Click to see Demo
- Qualitative_Analysis_Mapper
- Qualitative_Analysis_Mapper with Stacked Chart
- The Stacked Chart visualizes the temporal change of categorical data in a quantitative way. Click to see demo.
- Qualitative_Analysis_Mapper with Parallel Categories Diagram
- Parallel Categories Diagram represents how the categorical data changes over time in quantity. Click to see demo.
- Qualitative_Analysis_Mapper with Chord Diagram
- The Chord Diagram quantifies changes of categorical data between the two periods. Click to see demo.
| Parameter | Required | Description |
|---|---|---|
| title | ✓ | Enter the title to display at the top of your result visualization. |
| Subject | Enter the text to display at the top of your chart. | |
| filename_suffix | ✓ | Specify the name of the folder where your result files will be saved. |
| inputCSV | ✓ | Specify the attributes from your input data. |
| shapefile | ✓ | Provide the shapefile that includes the geometry of your study area. |
| periods | ✓ | Enter "All" to visualize all dates from the 'period' column of your input data. To visualize specific periods, provide the desired values from the 'period' column as an array (e.g., [2020, 2021, 2023]). Ensure these values match the entries in your data. |
| variables | ✓ | Enter the names of the columns in your input data to include in the visualization. |
| NumOfMaps | ✓ | Specify the number of maps to display in your result visualization. |
| SortLayers | Choose between 'compare' or 'temporal' mode: |
|
| - Compare Mode: Compare variables at a specific point in time. | ||
| - Temporal Mode: Display spatiotemporal patterns of the same variable across multiple maps. | ||
| InitialLayers | Enter the variables to display by default on your maps. | |
| Initial_map_center | Enter the longitude and latitude of the center of your study area in decimal degrees. If left blank, the map will automatically center based on your data. | |
| Initial_map_zoom_level | Enter a number between 2 and 15 for the zoom level. If left blank, the maps will automatically adjust the zoom level. | |
| Map_width | Specify the width of the maps. If left blank, the default is 500px. | |
| Map_height | Specify the height of the maps. If left blank, the default is 500px. |
| Parameter | Required | Description |
|---|---|---|
| Top10_Chart | Enter True or False. Set to True to display a bar chart representing the top and bottom values within the right map. If False, the chart will not be displayed. If left blank, False is the default. |
|
| Multiple_Line_Chart | Enter True or False. Set to True to display a Multiple Line Chart. If False, it will not be displayed. If left blank, False is the default. |
|
| Comparision_Chart | Enter True or False. Set to True to display a Comparision Line Chart. If False, it will not be displayed. If left blank, False is the default. |
|
| Stacked_Chart | Enter True or False. Set to True to display a Stacked Chart. If False, it will not be displayed. If left blank, False is the default. |
|
| Correlogram | Enter True or False. Set to True to display a Correlogram. If False, it will not be displayed. If left blank, False is the default. |
|
| Scatter_Plot | Enter True or False. Set to True to display a Scatter Chart. If False, it will not be displayed. If left blank, False is the default. |
|
| Parallel_Coordinates_Plot | Enter True or False. Set to True to display a Parallel Coordinates Plot. If False, it will not be displayed. If left blank, False is the default. |
| Parameter | Required | Description |
|---|---|---|
| titlesOfMLC | Enter a title for each line chart to be displayed at the top of the chart in the Multiple Line Chart. If left blank, a line chart will be created for each variable in your input attribute file. | |
| NumOfMLC | Specify the number of line charts to include in the Multiple Line Chart. If left blank, the number of charts will default to the number of variables entered in the 'Variables' parameter above. | |
| InitialVariableMLC | Specify the variables to be displayed on the line chart. If left blank, the variables in your input attribute file will be visualized in order. | |
| DefaultRegion_MLC | Enter the 'id' from your attribute table to specify the default region displayed in the Multiple Line Chart. If left blank, the first region listed in your attribute table will be used. | |
| HighlightMLC | Define the highlighted ranges for the x-axis values (periods) by specifying the start, end periods and color for the range you emphasize - e.g., [['2025-01-06', '2025-01-30', "#fdff32"]] |
| Parameter | Required | Description |
|---|---|---|
| NumOfCLC | Specify the number of line charts to include in the Comparision Line Chart. If left blank, the number of charts will default to the number of variables entered in the 'Variables' parameter above. | |
| InitialVariableCLC | Specify the variables to be displayed on the line chart. If left blank, the variables in your input attribute file will be visualized in order. | |
| DefaultRegion_CLC | Enter the 'id' of two regions to display the temporal patterns of the selected variable in the Comparison Line Chart. If left blank, the first two regions in your attribute table will be used. | |
| HighlightCLC | Define the highlighted ranges for the x-axis values (periods) by specifying the start and end periods for the range you emphasize. |
| Parameter | Required | Description |
|---|---|---|
| NumOfPCP | Enter True or False. Set to True to display a Parallel Coordinates Plot. If False, it will not be displayed. If left blank, False is the default. |
|
| InitialVariablePCP | Specify the variables to be displayed on Parallel Coordinates Plot. If left blank, the variables in your input attribute file will be visualized in order. |
Visualizations created by CyberGIS-Vis are using following datasets:
- A small subset of LTDB. The LTDB offers decennial socioeconomic and demographic data with harmonized boundaries from 1970 to 2010. For access to the complete dataset, please visit the official website for download
- The New York Times. (2021). Coronavirus (Covid-19) Data in the United States. Retrieved [08/01/2024], from https://github.com/nytimes/covid-19-data
- American Community Survey (ACS) - U.S. Census Bureau
Dr. Su Yeon Han, a leading developer and faculty member in the Department of Geography and Environmental Studies at Texas State University. This repository is the advanced version of CyberGIS-Vis, which can be accessed at: https://github.com/cybergis/CyberGIS-Vis.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
The CyberGIS-Vis project is supported by Department of Geography and Environmental Studies at Texas State University and CyberGIS Center for Advanced Digital and Spatial Studies at the University of Illinois at Urbana-Champaign.