imagico.de
imagico.de

imagico.de

Geo-Visualisierung

Englische Version

Das Einebnen von Wasserflächen in Höhenmodellen

Bei der Verwendung von automatisch erfassten Höhendaten (insbesondere SRTM and ASTER GDEM) für die Geo-Visualisierung ergeben sich eine ganze Reihe von Problemen, welche man auch weitverbreitet in Landkarten beobachten kann. Die meisten davon entstehen durch Diskrepanzen zwischen den Höhendaten und den übrigen bei der Produktion verwendeten Datensätzen. Ich möchte hier darstellen, wie sich einige dieser Probleme lösen lassen.

Das Problem der Wasserflächen in Höhenmodellen

Wasserflächen haben von Natur aus eine spezielle Beziehung zur Topographie, welche man in einigen einfachen Regeln beschreiben kann:

  • Wasserflächen ohne bedeutenden Wasserfluss (also vor allem Seen) weisen eine nahezu perfekt glatte und horizontale Oberfläche auf.
  • Solche Wasserflächen sind immer vollständig von Land umgeben, dessen Höhenwerte mindestens so groß sind wie die der Wasserfläche - mit Ausnahme der Abfluss-Stellen.
  • Fließendes Wasser fließt an jedem Punkt des Reliefs immer den steilsten Weg nach unten.

In der Realität weden sowohl die Wasserflächen als auch das Relief von den Kräften der Natur so verändert, dass diese Regeln eingehalten werden. Wenn Karten allerdings auf Basis von unabhängigen Datensätzen für das Relief und die Wasserflächen produziert werden, werden diese Regeln oft deutlich erkennbar nicht eingehalten, was zu sichtbaren Fehlern in der Karte führt. Ein paar Beispiele aus aktuellen Internet-Karten:

Cyclemap-Beispiel dianacht topo Beispiel Google Maps Beispiel
See in der Cycle Map See in dianacht topo See und Fluss in Google Maps
OpenTopoMap Beispiel Geofabik Topo Beispiel 4umaps Beispiel
See und Fluss in OpenTopoMap See in Geofabik Topo See in 4umaps

Wie man sieht besteht das häufigste Problem darin, dass Höhenlinien die Seen schneiden (unter Verletzung der ersten Regel oben). Während andere Fehler fast immer mit Genauigkeitsproblemen zu tun haben, ist dieses spezielle Problem bei automatisch erfassten Höhendaten unvermeidbar. Ich werde hier ein Verfahren vorstellen, die Wasserflächen in den Höhendaten so einzuebnen, dass die Höhenlinien diese nicht mehr schneiden.

Einebnen der Wasserflächen

Grundsätzlich ist es erstmal sehr einfach, alle Punkte des Höhenmodells innerhab der Umrisse eines Sees auf dessen bekannten Höhenwert zu setzen. Dies würde jedoch oft die zweite oben genannte Regel verletzen und erzeugt daneben auch oft unnatürliche Steilabfälle an den Ufern des Seen. Für ein brauchbares Ergebnis muss die zweite Regel ebenfalls durch Veränderungen der Höhenwerte garantiert werden und man sollte die Veränderungen allmählich auslaufen lassen um unnatürliche Steilabfälle zu vermeiden. Das hierfür entwickelte Werkzeug findet sich auf github.

Eine weiter Anwendung für dieses Verfahren neben der Produktion besserer 2D-Landkarten und eigentlich die primäre Motivation für die Entwicklung liegt in der ausdrücklichen Darstellung von Wasserflächen in 3D-Ansichten. Ich werde deshalb die Ergebnisse hier anhand von 3D-Bildern der Gegend um den Genfer See vorstellen. Die Wasserflächen-Daten basieren auf Openstreetmap.

Ursprüngliches Höhenmodell ohne Einebnung
Ursprüngliches Höhenmodell ohne Einebnung

Höhenmodell mit eingeebneten Wasserflächen
Höhenmodell mit eingeebneten Wasserflächen

Mit Darstellung der Wasserflächen
Mit Darstellung der Wasserflächen

Detail-Ausschnitt
Detail-Ausschnitt

Das Werkzeug zur Einebnung erzeugt auch ein POV-Ray mesh für die Wasseroberflächen. Dies sind jedoch sehr große Dateien, oftmals größer als das eigentliche Höhenmodell und bei der praktischen Verwendung gibt es auch Genauigkeits-Probleme. Für die Darstellung von flachen Szenen, also ohne korrekte Darstellung der Erdkrümmung, ist ein einfaches Polygon auf Basis der Originaldaten vermutlich die bessere Lösung.

Hier ein Beipiel aus der selben Gegend unter Verwendung des modifizierten Höhenmodells und der Wasserflächen-Meshes als 3D-Ansicht mit korrekten Relexionen auf den Wasserflächen.

3D-Ansicht des Genfer Sees als Beipiel

Und die selbe Perspektive mit nur den Seen:

Zum Abschluss noch ein Beispiel von Höhenlinien-Darstellungen auf Basis des modifizierten Höhenmodells (erzeugt mit Hilfe von gdal_contour):

Vor der Bearbeitung Nach der Bearbeitung

Die Höhenlinien können hierbei immernoch die Wasserflächen schneiden, bedingt durch die begrenzte Auflösung des Höhenmodells. Um dies sicher zu vermeiden müsste man die Wasserflächen anpassen. In Kombination mit Schattierung und Beschriftung der Höhenliniens sieht das dann so aus (der Link auf dem Bild führt zum selben Ausschnitt in der OpenCycleMap):

Ein Beispiel-Datensatz der Gegend um den Genfer See ist zum Download verfügbar. Die Datengrundlage hierfür ist eine Kombination von SRTM und ASTER GDEM-Daten und ist nicht für die Höhenlinien-Berechnung optimiert.

Konsistenzüberprüfung als Nebenprodukt

Beim Ändern der Höhendaten auf Grundlage der Wasserflächen-Geometrien wird natürlich angenommen, dass die Wasserflächendaten korrekt sind, die Höhendaten jedoch nicht. In Wirklichkeit sind jedoch beide Datensätze von begrenzter Genauigkeit. Bei den Höhendaten ist die Größe der auftetenden Fehler sogar meist wesentlich genauer bekannt als bei den Wasserflächen. Die bei der Einebnung der Wasserflächen notwendige Höhenänderung im Höhenmodell stellt also auch eine Anhaltspunkt für mögliche Fehler in den Wasserflächen-Daten dar. Mein Werkzeug produziert deshalb zusätzlich eine Liste der Punkte, an denen die Höhenunterschiede einen gewissen Schwellenwert überschreiten. Die Ergebnisse dieser Überprüfung kann man für Teile Europas auf dieser Karte sehen.

Und die Flüsse?

Es könnte aufgefallen sein, dass ich noch kein Wort über die dritte Regel in der Liste oben verloren habe. Bei den Seen wissen wir, dass diese eine konstante Höhe aufweisen, was den ganzen Prozess stark vereinfacht. Bei den Flüssen ist das Höhenprofil jedoch nicht bekannt. Ohne ein konsistentes Fluss-Netzwerk mit überall bekannter Flussrichtung ist die durchgehend konsistente Berücksichtigung der Flüsse sehr schwierig. Ich habe bereits anderswo über das Problem geschrieben, solche Informationen auf Basis der Openstreetmap-Daten zu erzeugen.

Christoph Hormann, September 2013

Kommentare:

noch keine Kommentare.

Kommentar schreiben
Sie müssen Javascript aktivieren, um Kommentare schreiben zu können.
Verifikation Bitte geben Sie die Buchstabenfolge im Bild links in das Eingabefeld ein, damit ich Sie einfacher von Spam-Programmen unterscheiden kann.
* * Erforderliches Feld
Informationen über Sie
*
wird nicht veröffentlicht
wird mit ihrem Kommentar angezeigt
Ihr Kommentar (kein HTML)

*

Wenn Sie mir, dem Autor dieser Seite, eine private Nachricht senden möchten, können Sie dies per Email tun.

Die Kommentare werden erst nach einer Überprüfung freigeschaltet. Er kann somit einige Zeit dauern, bis Ihr Beitrag auftaucht.

Bitte beachten Sie, dass die Kommentarfunktion zum Kommentieren der Bilder und Texte und nicht zur Diskussion politischer oder religiöser Ansichten dient. Kommentare ohne Bezug zum Inhalt dieser Seite werden nicht freigeschaltet.

Durch das Abschicken Ihres Kommentars stimmen Sie der Datenschutzrichtlinie zu und erlauben, dass die eingegebenen Informationen (mit Ausnahme der eMail-Adresse) in diesem Blog veröffentlicht werden.