December 16, 2008

Land Summary Beta

Earlier this year, I read this post on local foodsheds, and got to thinking that there must be a good way to automate and generalize this type of analysis.  So I put the idea into the big bucket of ideas that I don't have time to implement, until it came up in a conversation with Brent Pedersen.   He mentioned a great  way to optimize the raster summarization that I hadn't thought of, so we got excited, and put it into the bucket of ideas that we'd like to implement (but probably wouldn't). 

Until finally, a few weeks ago, we decided to get together for a Sunday hackfest. A few hours later, with a good percentage of my time wasted learning the strange ways of git, we had a functional demo that summarized NLCD data by class for any given buffer or polygon, in a simple Django framework.

To get things vaguely useable, we added a pie chart to show the classified summary, and integrated some census data to get the population.  Our initial demo is now at landsummary.com

Maybe next week we'll have time to give it some User Interface love.  In the meantime, I'm really happy with how fast the open source stack we used let us get this type of interactive analysis online. 

For the record, we're using GDAL, Numpy, et al for the raster analysis, PostGIS for census and other vector data, Django for the web framework, OpenLayers for the map, and MapServer/TileCache for the NLCD tiled map overlay.  It really says a lot to me that with a surprisingly minimal bit of code we were able to get the basic demo online, let alone in such short time.

Over the last week we've also added some hiddenish features that we will probably expose in an API, and started  some example analyses to help show not only how these types of summaries can be used to visualize patterns in foodsheds, but also that I'm capable of posting to this blog more than once a month.

If you have any ideas for additional datasets you'd like added (topography, census SF3, and detailed historical weather station data are already en-route), let us know.

No comments :