Cal-Adapt has been developed using free and open-source software, hosted on virtual private servers. Using Django, a Python web framework, we are able to knit together each of the site’s technology components, including PostgreSQL/PostGIS, MapServer, TileCache, Memcached, Google Maps API, and jQuery, to create a cohesive and unified user experience.
MapServer provides the cartographic engine driving most of the map-based visualizations. Given the highly temporal nature of the data, MapServer's flexibility via parameter substitutions and support for WMS-T (Web Map Service-Time) have been a tremendous advantage as each HTTP GET request may contain time values, in addition to further optional parameters. Beyond support for web services such as Web Map Service (WMS), Web Feature Service (WFS) and Web Coverage Service (WCS), request modes provide access to dynamic image tiles or static map output utilized in the local climate snapshots and HTML templates to generate map legends.
NumPy, a Python package for scientific computing, provides the web application with quick access to a wealth of climate data. To support the graph-based tools, each model-scenario combination is stored as a NumPy binary file and read as a memory-mapped multidimensional array. This format greatly increases efficient querying of individual raster cells and ad-hoc statistics based on arbitrary time slices, as Python's concise array slicing syntax makes it trivial to query 150 years of modeled data.
Building upon the wealth of innovation from the FOSS community has made the complex task of providing local access to a huge amount of data, and presenting these data in compelling ways, much more manageable. These systems will be put further to the test as we develop new tools that incorporate the daily climate layers now available for each model.
Post last edited on: 2011 April 02