FGSK: webgis for water systems (rivers, streams) in Mecklenburg-Vorpommern. It deals with hydromorphology: morphology (shape, character) and hydrology (how, how fast, does it flow). What they’re doing is a standardisation of the data for the various segments of the water structures and grading the streams accordingly. The goal is to have a good, natural water stream that’s good for the environment.
What they’re doing is measuring how straight or bendy a stream is and what the flow velocity is. A stream that’s straight is a line is bad, something that meanders through the landscape is perfect.
When they started, the map material was in need of improvement. Mostly it was only entered based on airial images. Also they needed more metadata (“parameters”), like shape of the stream bottom. They mapped it three steps.
Using basic map material, splitting the streams in to segments and entering data that was already obvious.
Actual walking along the streams. Writing down the visible data and taking photographs.
Entering metadata in a web application and looking at the results.
Entering metadata in a web application means that the web application should be simple to use. And it should include automatic checks for plausability of the entered data. And it should include rule-based grading of the streams.
A necessity: it should be free software.
As a framework, they used MapFish with a GeoExt client. And the UMN Mapserver. Postgis/postgres as the database. Geojson is used for exchanging data.
Some big parts of the software:
LRS, linear referencing. Positioning elements
along a line. For that positioned data, they use so-called M-data:
LINESTRINGM
. And they partially calculate this dynamically from x,y
locations to linear locations and back.
A second big part: grading the streams. there are some 26 tables with data and some 1200 different possibilities to combine them into a single grade… The grade is visualized with a color on the map in various bands along the stream. The inside of the stream might be better than the outside bend, for instance.
Plausability checks. When the water still flows at a low velocity, this means that there is still water, so the stream cannot be dry. Those kinds of checks. And the width should not be less than the minimum width.
Some problems they encountered:
For showing bands on both sides of a stream, they needed to patch postgis/geos…
Compatibility with other client applications.
Complexity of the calculations. For instance, the matrices used to grade the streams sometimes change, so when that happens everything needs to be re-graded.
Some conclusions:
Free software gave them all possibilities to implement this webapplications.
Pylons (python web framework) is great and it even provides a basic system for rules.
Postgres: rule-based grading with triggers.
Mapserver allowed them to display the bands along the streams to visualize the grades.
My name is Reinout van Rees and I program in Python, I live in the Netherlands, I cycle recumbent bikes and I have a model railway.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):