live simply in a networked, complex world

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.


WebGIS - Global Land Mapper based on Google Maps & d3.js

LandMapper was a Global Landscapes Initiative project at the Institute on the Environment, University of Minnesota. LandMapper is built upon and extends Google Maps API. The JavaScript library underneath LandMapper that I developed supports vector, raster, and network flow data, which are essentially the core spatial datasets of the commercial GIS software. LandMapper also supports Google heatmaps with FusionTable or BigQuery as data source. One unique feature of LandMapper is its full integration with d3.js library and Google Closure library, not statically but dynamically on the map layout. The visualization engine of LandMapper is particularly optimized for Google Maps API and renders map animations smoothly without any blinking. LandMapper can customize both data and user interface by configuring a few JSON files. Overall, LandMapper is a simple, easy-to-customize, convenient, yet versatile and free geographic data visualization and publication tool for the environmental science and the broad research communities.
Demo on Youtube: Part A and Part B
d3.js Live Demo: Bubble Menu and Linked Geographic and Tree Maps

LandMapper Frontpage

LandMapper Main UI (AgLab--Yield Gap)

Global Excess Nutrients Infographics

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.

US State Population Cartogram

US County Population Cartogram

China Population Cartogram

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.

SUNA Networks

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).

TCMA MST of Migrants

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.

Illinois Outmigration

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
Locations of visitors to this page

Locations of Site Visitors

Valid XHTML 1.0 Strict Valid CSS 2.0