Dwins’s Weblog


FOSS4G Code Sprint

Posted in Uncategorized by dwins on September 16, 2011

I’m at FOSS4G this week.  I’ll be at the code sprint at the end of the week and thought it might be a good idea to write up some thoughts about what I’d be interested in working on there.  I’m breaking the list down by project.

GeoScript

GeoScript seems to be getting some nice attention at FOSS4G this year.  It adapts the GeoTools geospatial library to be more convenient to use from scripting languages like Python and JavaScript.  I am the main developer of the Scala variant of GeoScript, so I’m happy to see all the excited tweets and other buzz about GeoScript.  I didn’t make it to the talks about it (Spatial Capabilities for Scripting Languages and Scripting GeoServer with GeoScript) due to another presentation I was making, but the tutorial on Thursday had a very nice turnout.  Justin Deoliveira and Tim Schaub put a lot of work into a written tutorial – but only for the Python and JavaScript variants of GeoScript.  So one (really useful) thing that could happen at the code sprint is “porting” that documentation to Scala, and maybe reviewing the GeoScript Scala documentation overall.

I’ve also been eyeing One-Jar as a means of producing an executable Jar distribution of the Scala interpreter with GeoScript and  GeoTools preloaded, as a really simple means of trying out GeoScript (no installer needed) for those who don’t want or need to learn SBT.

gsconfig.py

gsconfig.py is a Python library for controlling GeoServer remotely.  It’s already in heavy use in the GeoNode project but can be useful for smaller tasks as well – for example, here’s a script using it to copy a layergroup from one GeoServer to another.  Again, documentation would be useful – one thing I feel is really missing from the documentation is some info on hacking it 🙂  There are a lot of corners in the GeoServer REST API which are currently not supported in gsconfig, and it would be nice if it was more accessible for those sorts of improvements to be made by developers other than me.  Fortunately, Python is a nice language and gsconfig does a pretty simple task (effectively just slicing, dicing, and duct-taping XML documents together) and the whole thing is less than 1500 lines of code, so an overview for developers should be pretty attainable.

I also received a brisk reminder during my tutorial on GeoServer Scripting with Python that there is no documentation online about how to actually install gsconfig for use in Python scripts 🙂

mapnik2geotools

mapnik2geotools is a tool (in Scala, of course ;)) to translate map styles between Mapnik XML and OGC’s SLD standard (complete with support for GeoServer extensions and using GeoServer’s REST API to set up the styles in a live GeoServer instance.) It’s a rough project at this point, but I think an interesting one.  It also doesn’t use or need too many exotic features of the Scala programming language, so if you are interested in getting started with Scala, hacking on mapnik2geotools might be a good introduction to the language.  While we have used it a bit at OpenGeo for bootstrapping our OpenStreetMap styling efforts, I haven’t had a lot of time to refine it, and there is a lot of room for improvement.  I am not even going to list ideas here 🙂 but instead refer readers to the Github issues list.

GeoServer CSS

The GeoServer CSS module is another style converter I work on.  There are some interesting problems left to be solved, and some polish to be added to the GeoServer UI related to it.  It would be interesting this weekend to think about styling raster data with CSS.  Automatic conversion of existing SLD documents into CSS would also be an interesting and useful feature.  I haven’t considered the deeper GeoServer integration too much, but the interactive styling page could use some cleanup (and maybe generalization to work with SLD styles too).  It would also be interesting to allow inline CSS in WMS requests, and possibly have a REST API for getting SLD equivalents to CSS, for use with OpenLayers.