I’m quite interested in cartograms, and my thesis — for which I begin user testing this week — concerns their effectiveness across varying designs. Cartograms have never been easy to make, and until recently were largely produced only in university computer science or cartography departments. Now, though, a few applications manage to free cartograms from the hands of computer scientists, mathematicians, and professional cartographers. All produce one or more variety of the value-by-area cartogram.
Adrian Herzog’s MAPresso produces a variety of thematic maps, including two cartogram designs: the semi-contiguous circular cartogram and the contiguous rubber sheet method of Dougenik, Chrisman, and Niemeyer (1985).
The application takes an odd .psc format as input, but the standard MAPresso distribution includes a shp2psc program for converting from ESRI shapefiles. The program outputs to EPS, and can be used to create a Java web app. The application requires only a recent Java install, so can be run on many platforms.
What the above doesn’t suggest is that MAPresso is very hard to figure out. It took me an afternoon. But, luckily, Mr. Herzog is very helpful and responds quickly to emails.
Frank Hardisty has created a very simple and effective interface to the Gastner-Newman diffusion-based contiguous cartogram algorithm that is all the rage these days. It’s simple, works quickly, and requires only a recent Java install. It both inputs and outputs shapefiles. I like it, and used it to produce the U.S. population cartograms for my thesis.
Eric Wolf’s very cool and flexible CartogramCreator ArcScript lets the user generate two types of value-by-area cartogram: noncontiguous and the same rubber sheet method as MAPresso (above). It accepts polygonal shapefiles as input, and outputs to a graphics layer within your current ArcMap (and can therefore be exported as EPS or AI, among other formats). CartogramCreator requires ArcGIS 9.x, which typically requires a Windows installation.
CartogramCreator offers two types of noncontiguous cartogram: they can either allow overlap or not. The former require modification by the cartographer, but can produce more visually pleasing cartograms. As recommended by Judy Olson (1976), the latter non-overlapping method uses the enumeration unit of highest density (in the chosen variable) as the anchor unit. All other units are scaled down. This latter method has the advantage of preserving the approximate centroid of units, and therefore the overall, or global, shape of the group of features. It has the possible disadvantage of abundant whitespace in the resultant cartogram.
Though the script lists circular cartograms, the results are simply noncontiguous proportional symbol maps (though Eric Wolf notes in his to do list that he plans to convert the circular method to utilize Dorling’s circular cartogram algorithm).
I only heard about GeoDa recently. Produced by the Spatial Analysis Lab at the University of Illinois, GeoDa was first released in ‘03. It reads and writes shapefiles, and includes many analysis and display options. A 2005 update added the ability to create circular cartograms, based on Dorling’s algorithm. It appears to be pretty faithful to Dorling’s original, and even allows the user to set the number of iterations for more topologically accurate cartograms.
Unfortunately, GeoDa is only available for Windows machines.
Many more cartogram algorithms appear in pure code implementations. Most are written in C or C++, due to the computational intensity of cartogram construction. Some, though, are written in Python, as is my circular cartogram algorithm and Eric Wolf’s rubber-sheet algorithm. Perhaps next I’ll do a post on the freely available pure code cartogram algorithms.
The above shows that progress is being made in the democratization of cartograms. Much work remains. Many cartogram designs, including the most effective and aesthetically pleasing methods (IMO the constraint-based method of Kocmoud and House and the signature block method of the New York Times), have yet to be incorporated into a nice app with GUI. It is still therefore my dream (and charge) to create a nice app (w/ or w/o Flash frontend) that allows users to create cartograms of varying designs with their own geographic data. In doing so, users will get to compare different types of cartograms, and hopefully gain a better understanding of the true strengths and weakness of certain designs.
Any free cartogram creation apps I missed?