Flussgebiete Mitteleuropas

Martin Kompf

Wasser fließt. Sein Weg verläuft dabei nicht chaotisch, sondern folgt den Gesetzen und Gegebenheiten der Natur. Quellen speisen kleine Bäche, die zu Flüssen anwachsen und letztendlich zu großen Strömen vereinigt in das Meer fließen. Dabei bilden sich Flussgebiete, die nach dem ins Meer mündenden Hauptfluss benannt sind.

Die interaktive Karte zeigt die Gewässer Mitteleuropas und ihre Zugehörigkeit zu einem der Flussgebiete:

Flussgebiete
  • Rhein
  • Maas
  • Weser
  • Ems
  • Donau
  • Elbe
  • Oder
  • Weichsel
  • Warnow/Peene
  • Trave/Schlei
  • Eider
  • Rhone
  • Adria1
  • Wasserscheide
  • Unbestimmt
1Oberitalienische Flussgebiete: Po, Etsch, Isonzo, Piave, Tagliamento

Die Karte entstand aus aktuellen Daten von OpenStreetMap. Die Wasserwege stehen im Vordergrund. Zur Orientierung sind außerdem größere Städte und Autobahnen dargestellt. Den Hintergrund bildet eine leichte Einfärbung und Schattierung des Höhenreliefs.

Daten und Algorithmus

Grundlage der Kartenberechnung ist der tagesaktuelle OpenStreetMap-Datensatz, den man von Geofabrik herunterladen kann. Das Tool Osmium extrahiert daraus die interessierenden Daten, hier also vor allem die Wasserwege, Städte und Autobahnen und stellt sie als Shapefiles zur Verfügung. Damit erfolgt eine Weiterverarbeitung durch einen im Rahmen dieses Projektes entwickelten Algorithmus:

OpenStreetMap stellt Wasserwege als Linienzüge (way) mit dem Attribut waterway dar. Sie bestehen aus einzelnen Knoten (node), deren geografische Koordinaten den Verlauf des Wasserwegs festlegen. Neben Attributen und Koordinaten besitzen sowohl nodes als auch ways eindeutige IDs. Stehen zwei Wasserwege miteinander in Verbindung, dann haben Sie einen gemeinsamen Knoten, der durch seine ID eindeutig bestimmbar ist.

Der Algorithmus zur Bestimmung der Flussgebiete verwendet nun genau diese IDs. Ausgehend von einem Linienzug eines bekannten Wasserwegs (zum Beispiel way 102135980 für ein Teilstücks des Rheins) ermittelt man alle enthaltenen IDs der Knoten. Diese IDs sucht man dann in der Restmenge aller Knoten aller Wasserwege. Ist die Suche erfolgreich, dann mündet der zugehörige Wasserweg in den Rhein und gehört damit zu seinem Flusssystem. Die auf diese Art und Weise gefundenen neuen Wasserwege gehen als Eingabe in die nächste Runde der Suche. Das wird für alle Flussgebiete solange fortgeführt, bis sich keine neuen Wasserwege mehr finden lassen.

Der Algorithmus wurde als Java-Programm implementiert. Er lässt sich sehr gut parallelisieren und nutzt optimal alle zur Verfügung stehenden CPU-Kerne. Als Ergebnis entsteht eine Tabelle, welche die IDs der Wasserwege auf die Namen der Flussgebiete abbildet. Ein weiteres Java-Programm auf Basis von GeoTools bindet diese Daten dann mit in das Shapefile der Wasserwege ein.

Das Rendern der Shapefiles erfolgt mit TileMill in eine MBTiles Datei. Als zusätzlicher Layer gelangt in diesem Schritt auch das durch gdaldem erzeugte farbige Höhenrelief mit in die Karte. Die Visualisierung der Karte im Internet übernehmen schließlich ModestMaps, Wax und php-mbtiles.

Wasserscheiden

Wasserscheiden bilden natürliche Grenzen zwischen den Flussgebieten. Jedoch gibt es auch Wasserwege, die Wasserscheiden überwinden! Das sind in erster Line künstlich entstandene Kanäle und Stollen; aber auch natürliche Bifurkationen bilden Wasserscheiden.

Der beschriebene Algorithmus zur Flussgebietsberechnung berücksichtigt Wasserwege, die Wasserscheiden sind. Die IDs solcher Wege habe ich per Hand aus den OSM Daten ermittelt und in eine Blacklist eingetragen. Der Suchalgorithmus prüft in jeder Runde, ob ein neu gefundener Wasserwege in dieser Blacklist steht und bricht dann ab. Auf der Karte sind diese Stellen durch eine besondere Farbe (siehe Kartenlegende) gekennzeichnet.

Grauzonen

Falsche und korrekte Verbindung von Wasserwegen
Die Mündung eines Baches (rot markiert) in einen Fluss. Falsch (oben) und richtig (unten).

Auf der Karte sind viele Wasserwege grau gekennzeichnet. Für diese konnte der Algorithmus keine Zuordnung zu einem Flusssystem bestimmen. Das kann verschiedene Ursachen haben:

In küstennahen Gewässern münden viele Flüsse und Bäche direkt ins Meer, ohne in Kontakt mit dem Hauptfluss zu kommen. Zum Beispiel mündet die Recknitz direkt in die Ostsee, gehört aber zum Flusssystem der Warnow. Das Programm berücksichtigt noch nicht alle dieser Konstellationen.

Falsche und korrekte Verbindung von Wasserwegen
Zwei Linienzüge sind nicht korrekt verbunden (oben). Mit dem JOSM-Tool «Merge Nodes» lässt sich das leicht korrigieren (unten).

Desweiteren ist es möglich, dass ein Wasserweg überhaupt nicht mit den großen Strömen in Verbindung steht. Das kann natürliche Ursachen haben, wenn ein Fluss in ein endorheisches Gebiet entwässert. Häufiger ist jedoch, dass der Gewässerverlauf nicht bekannt ist, weil er zum Beispiel unterirdisch oder über gesperrte Flächen verläuft. Es entstehen dann Lücken in den Daten, die jedoch hoffentlich im Laufe der Zeit noch ausgefüllt werden.

Auch treten Fehler beim Editieren auf. Typische Situationen zeigen die Abbildungen: Links ist die Mündung eines Baches in einen größeren Fluss zu sehen. Solche größeren Flüsse haben neben der durch einen Linienzug (waterway=river) gekennzeichneten Hauptsrömung noch eine umgebende Fläche, die die genaue Gestalt des Flussbetts beschreibt (waterway=riverbank). Oftmals lässt der Editor dann den Linienzug des Bachs bereits am Flussbett enden, anstatt ihn bis zur Hauptströmung durchzuziehen (Abb. links unten). Eine weitere häufige Fehlerquelle ist, wenn zwei Linienzüge nur «auf den ersten Blick» verbunden sind, in Wirklichkeit aber in zwei dicht nebeneinanderliegenden Punkte enden (siehe Abb. rechts).

Sonderfall See

Unterschiedliche Handhabung von Flussmündungen in einen See
Unterschiedliche Handhabung von Flussmündungen in einen See.

Eine Besonderheit ist die Mündung von Flüssen in einen See. Man könnte dies zwar als Spezialfall der Mündung eines Baches in einen Fluss sehen, jedoch gibt es keine explizite Mappingvorschrift hierfür. Dementsprechend unterschiedlich handhaben die Kartografen diese Situation: Im Starnberger See (Abb. links unten) ist die Hauptströmung (als dicke braune Line) durchgezogen und alle Nebenflüsse sind mit ihr verbunden. Ein anderes Bild bietet dagegen der Tegernsee (Abb. links oben). Hier enden alle Zuflüsse am Seeufer und sind nicht über Linienzüge waterway=river miteinander verbunden.

Der Algorithmus berücksichtigt nun diese Situation, indem er auch alle Flächen mit in die Berechnung einbezieht, die durch Linien oder Multipolygone mit dem Attribut natural=water gekennzeichnet sind. Im Bild links oben sind daher alle Zuflüsse des Tegernsees korrekt durch ihre braune Farbe als zugehörig zum Flussgebiet der Donau markiert.

Fazit

Die Karte der Flussgebiete Mitteleuropas entstand ausschließlich unter Verwendung freier Daten und Software. Sie ermöglicht es interessierten Benutzern, interaktiv die Wege des Wassers zu erkunden. Außerdem ist eine visuelle Kontrolle der Qualität der OSM-Daten für Wasserwege möglich. Bestehende Lücken und Fehler in der Datenerfassung lassen sich relativ einfach lokalisieren und mögen hoffentlich den ein oder anderen Mapper dazu inspirieren, weiter an der Verbesserung des großartigen Projekts OpenStreetMap zu arbeiten!