Part of my research heavily depends on innovative GIS algorithms, software development, and geocomputation. Here are some software packages that I have been working on. Now, the free continuous Cartogram generating program
is available for downloading. The program is fast and can fully utilize the capacity of multi-threading CPUs. It has been applied to generate population cartograms for US states, US counties, China Provinces, and World
Regions and Countries. More programs are coming soon on this page. |
|
Geovisualization
|
WebGIS - Mapping our Physical and Social Worlds!
|
The future of GIS is web-based. The interactivity enabled by JavaScript and reactive app can greatly enhance the visualization of geospatial data.
Spatial data retrieval, processing, computation, and visualization are converging in the environment of "Notebooks" with supports of R, Python, JavaScript, among others.
Put in another way, WebGIS is now an integral part of the general spatial data analysis and modeling. While there are many options to implement, embed, and integrate WebGIS, Leaflet and d3 are two popular JavaScript libraries for creating interactive geovisuals in various environments. |
Land Mapper Demo on Youtube: Part A and Part B
|
d3.js Live Demo: Bubble Menu and Linked Geographic and Tree Maps
|
|
|
Fast Cartogram Algorithms
|
Cartogram creation program is available for download now! |
Opti-DCN is a mathematically optimized rubber-sheet algorithm based on Dougenik, Chrisman, and Niemeyer's work. It utilizes a mathematical condition for topology equivalence to speed up the original rubber-sheet algorithm.
Carto3F further uses a quadtree and parallel computation, as well as specially calibrated equations to improve the computational performance of Opti-DCN. The resultant Carto3F can COMPLETELY avoid topological errors
in produced cartograms (pass the ArcGIS "check geometry" without errors). Its ability to theoretically and computationally maintain topology is unseen in other programs by the end of 2011. For simple maps like population
maps of China, US, and Canada, Carto3F is faster than the diffusion-based methods on computers equipped with multi-thread CPUs. Carto3F's performance decreases with increasing complexity of maps, though. By contrast,
the efficiency of the diffusion algorithm, in theory, is independent of map complexity. However, the preprocessing time for complex maps is much longer for the diffusion algorithm. For example, ScapeToad, a Java
program of the diffusion algorithm, takes hours to prepare the world population map, mainly to create a grid, for cartogram creation.
|
|
Sample Results:
World population cartogram
(Shapefile),
China population cartogram (Shapefile),
|
|
Program and Documentation:
Windows 32bit Program for Opti-DCN and Carto3F,
Program Documentation
|
|
Demo on Youtube: Carto3F Installation and Application
|
Network Analysis
|
SUNA - Software for Unified Network Analysis
|
SUNA is a generic network analysis software written in C++ with MFC using MS Visual Studio 2008. It can create logical networks from real-world geographic networks like transportation or from virtual networks like co-authorship
or citation. SUNA implements a number of functionalities for network analysis, statistics, visualization, and geotransformation. It can export logical networks to various formats, including Shapefile, Pajek, GraphViz,
EMF, and spreadsheet for further analysis and visualization. SUNA supports transferring data to clipboard in vector format, thus allowing convenient "copy-paste" for high-resolution graphs. The visualization engine
built in SUNA is OpenGL. Taking advantage of that, SUNA can produce rudimentary 3D scenes and drive-through style animation.
|
|
Screen Shots: #1,
Virtual Network, #2, Transportation Network, #3,
Drive Through Simulation |
|
|
SNAP - Sociospatial Network Analysis Package
|
SNAP is an R package with a collection of R functions that utilizes geographic contiguity network and graph algorithms to analyze and visualize sociospatial networks. Essentially, it bridges GIS packages (sp, spdep,
spatial, etc.) and network analysis packages (igraph, for example). SNAP also implements some important algorithms that seem missing from these popular R packages, e.g., the Berlaz's Heuristic Algorithm for polygon
coloring (see R code here).
|
|
Selective Results: #1, Urban
Geographers' Community, #2,
Circular Cartogram, #3,
Network-based Transformation |
|
|
TNSS - Flow Visualization based on Networks Methods
|
TNSS is a network-based visualization method for one-to-many flow data. TNSS stands for Triangulation, Network, Simplification, and Smoothing. The method creates a virtual network from points through triangulation and
then uses stylized shortest path finding routes to derive an approximate Steiner tree for the one-to-many Minard style tree for flow visualization. For details, read A spatial one-to-many flow layout algorithm using triangulation, approximate Steiner trees, and path smoothing.
|
|
Selective Results:
#1, Outmigration from Illinois,
#2, Texas Inmigration,
#3, California InMigration,
#4, Brazilian Soybean Exports,
|
|
|
Human-Environment System Modeling
|
HELIA - Raster Data and GIS Basics
|
This is a generic Java component for basic GIS functions developed for HELIA (Human-Environment Land Integrated Assessment) project. Using XML configuration files, the component can load, read, update, and write raster
data in ESRI ASCII, IDRISI, Run Length Code formats. It has spatial analysis methods built in, including map algebra, Euclidean distance, neighborhood analysis, and overlay. Additionally, linking to Geotools, it
also implements basic vector GIS functions, particularly geographic network analysis. This component is written in pure Java and does not require external libraries. It is available in jar format upon request.
|
|
Class Diagrams: #1, Overall, #2, Data, #3, Landscape, #4, Spatial Analysis,
#5, GIS |
|
Screen Shots: #1, Eclipse,
#2, Repast
3.0 |
|
SLUCE 2 - Land Market Model
|
SLUCE 2 Land Market Model (LMM) is a standalone program implemented using Java and RepastSimphony 2.0. The main programmable component of LMM is also an independent, generic market module featuring bid/rent mechanism
that could apply to markets of any commodities. Currently, LMM works as both farm/subdivision market and housing market in SLUCE 2.
[link at OpenABM Model Library]
|
|
Screen Shots: #1, #2, #3, #4 |
|
Program: Link at CoMSES OpenABM Model Library |
|
Manual: PDF |
|