The Python script is attached to this message. To run it:
1. unzip into an empty directory
2. copy your shapefile (all the bits) into the directory where pyCartogram.py lives
3. from the command-line, enter something like this:
python pyCartogram.py inshpfile.shp outshpfile.shp FIELDNAME 5
This generates a contiguous cartogram from inshpfile.shp based on the value in field 'FIELDNAME' after five iterations and saves it as outshpfile.shp.
Over the Christmas break from school, I threw together some ideas I was playing with. Here it is in a very crude, Alpha format: aniCart Alpha 1.0. I included a dataset to get an idea of how it works - but you can use it with any ESRI Shapeifle.
Basically, aniCart is a pure C++ implementation of the Dougenik, Chrisman, Neimeyer algorithm that I use in CartogramCreator for ArcGIS and pyCart. This implementation has the advantage of being quite fast. In fact, it's fast enough to animate the cartogram creation in real-time.
I recently rewrote the cartogram algorithm in Python. It still has some issues, so I'm not going to put it up for general download. If you are interested, email me directly and I'll send you a copy.
The Python script uses the CGAL/OGR library to access the geometries in shapefiles. This is significant because it means you can run this script with free, opensource software. You don't need a license for ArcGIS to create cartograms!
I gave a short presentation on the creation of Cartograms at the North American Cartographic Information Society's Annual Conference in St. Louis. You can download my presentation here.
I just put a new "unstable" beta version of the CartogramCreator script for ArcGIS online. This version handles contiguous cartograms with zero area as the target size. It adds lots of warnings during the setup. Be sure to review the contents of the text box before creating the cartogram!
Sometimes it seems like all great ideas come to you in the shower...
I just came down with a great theme for a paper. I hesitate to mention it here because I'd like to develop the idea further first. But just a hint - it combines my PhD research in multi-resolution databases with cartograms!
Also, it wasn't in the shower - rather - on the bus coming home today I figured out my problem with non-contiguous cartograms in the CartogramCreator script for ArcGIS. Watch for an update any day!
So I'm still hammering through Drupal. I set up a Drupal site for my wife. That was very simple. I just wanted to migrate her static content to a CMS-based site. I want a richer environment over here. The problem seems to be that Drupal is amazingly flexible (like my wife!) but that also translates into complexity in configuration.
This is my third try at working with a content management system. First, I tried Joomla but was disappointed to find that it lacked any real sense of community. Then I looked at WordPress but it was really focused on the blog. I've been pretty excited about Drupal. Compared to other CMS, it takes an extra step away from the content, providing a more abstract framework to design a site. You get schema-level control for users and modules. Modules can be blogs, static pages, discussion boards, rss feeds, etc., etc.