Contents |
Risk and impact modelling are required by governments around the world to reduce loss of life and financial loss caused by a disasters. These analyses in general are static documents/maps built in silos and forgotten on shelves. What is needed is a dynamic way to push the model output to online databases to effectively communicate the results.
In general, impact assessments are about applying damage levels from a hazard map to exposed infrastructure according to specific damage curves and then aggregating the results according to some political jurisdiction. A tool to assist this process would be useful to • constitute a platform on which specific impact models can be implemented • ensure consistency and quality • communicate issues and visions to government agencies
Geoserver provides a spatial infrastructure that forms the basis for such a platform. What is needed is to be able to extract vector and raster data from the server into Python, perform some computations reflecting the desired impact analysis and create a color coded map according to the result.
The fundamental task is to develop a module that allows Python scripts to download raster and vector data from Geoserver. This would allow clients to perform a range of numerical processing tasks such as those needed for impact modelling.
A very simple use case that would test the tool is as follows: A Python script downloads from Geoserver: • Indonesian provincial boundaries as vector data. • Raster data which represents number of residents per square km
For each province in the vector data, select raster points that fall into the corresponding polygon and add up the population counts for each point to compute the total population in the province.
Create a new layer in Geoserver with each province color coded by population count.
This is of course a very very simple process, but it has all the ingredients that would allow general impact modelling computations.
Build a light Python application that will pull a hazard map from the CAPRA Geoserver as well as the relevant exposure data. The application will then apply a binary rule to each exposed element (i.e. ground acceleration greater than 0.1g will result in 100% damage or fatality) and create a new map from this information and upload it to Geoserver.
Apparently, data can be pulled from Geoserver using the REST module <a href="http://geoserver.org/display/GEOSDOC/REST+Support+Module">http://geoserver.org/display/GEOSDOC/REST+Support+Module</a>
Moreover, there is a promising but embryonic initiative, <a href="http://geoserver.org/display/GEOS/Python+Scripting+Extension">http://geoserver.org/display/GEOS/Python+Scripting+Extension</a>, that might do the job with a little more development.
They main issue with GDAL/OGR right now is lack of a clean way to clip raster data using arbitrary polygons. See the following for more info: http://trac.osgeo.org/gdal/ticket/1599