Wie zeichnet man in einem gegebenen Gelände den Strömungsweg des Baches?

23

Angenommen, ich habe ein Gelände, das wie üblich Grate, Bäche und alle Eigenschaften aufweist, die Sie auf einer realen Karte finden können. Das Wasser fließt vom Gipfel des Berges in den unteren Bereich. Der Pfad, auf dem das Wasser fließt, wird als Bachlaufpfad bezeichnet.

Das Gelände wird als dreieckiges unregelmäßiges Netzwerk (TIN) angegeben, wobei jeder Punkt p (x, y) einen az-Wert hat. Wie verwende ich diese Informationen, um den Stream-Flow-Pfad zu erstellen? Was ist die Physik dahinter?

Soweit mir bekannt ist, kann dieses Problem mit der steilsten Abstiegsmethode gelöst werden . Ich denke darüber nach, meinen eigenen Streamflow-Algorithmus zu schreiben, daher interessiere ich mich eher für den theoretischen Hintergrund als für die Verwendung der vorhandenen Tools.

Graviton
quelle

Antworten:

26

Es gibt verschiedene mögliche Implementierungen, aber die meisten Verfahren beginnen mit einem Raster und nicht mit einem TIN.

Das einfachste ist wahrscheinlich das D8-Verfahren: Sie berechnen die Richtung, in die das Wasser fließen würde. Es gibt 8 Möglichkeiten, die 8 Zellen, die sich neben einer zentralen Gitterzelle befinden. Sie können zuerst diese Richtungen berechnen und anschließend die Linien zeichnen. Eine einfache Implementierung ist in SAGA zu finden. Sie lautet fast wie Pseudocode: http://saga-gis.svn.sourceforge.net/viewvc/saga-gis/trunk/saga-gis/src/modules_terrain_analysis/terrain_analysis/ta_channels/D8_Flow_Analysis. cpp? revision = 911 & view = markup

Dies ist zwar sehr einfach, aber nicht sehr realistisch: Es wird nicht in jeder Zelle ein Stream gestartet. Fortgeschrittenere Algorithmen schließen in der Regel zuerst die Gruben (insbesondere, wenn Sie ein detailliertes DEM haben), berechnen dann das Einzugsgebiet pro Zelle, dh die Anzahl der Zellen, die einer bestimmten Zelle Wasser zuführen, und verwenden dann einen Schwellenwert, um festzustellen, ob ein Strom vorhanden ist ist anwesend.

SAGA GIS implementiert viele dieser Einzugsgebietsmethoden. Eine Beschreibung finden Sie in diesem Handbuch unter http://sourceforge.net/settings/mirror_choices?projectname=saga-gis&filename=SAGA%20-%20Documentation/SAGA%20Documents/. SagaManual.pdf

Es wurde für eine ältere Version von SAGA GIS geschrieben, aber die Beschreibung der Algorithmen ist immer noch ziemlich genau, und ich kopiere es hier zum schnellen Nachschlagen (das ist ungefähr Seite 120), da es Open Source ist, können Sie das überprüfen Implementierungsdetails anhand des Codes.

  • Deterministic 8 (D8): Das Klassische. Der Fluss geht vom Zentrum einer Zelle zum Zentrum einer (und nur einer) der umgebenden Zellen. Die Strömungsrichtungen sind daher auf ein Vielfaches von 45º beschränkt, was der Hauptgrund für die meisten Nachteile des Verfahrens ist. (O'Callaghan & Mark 1984).
  • Rho8: Wie oben, aber mit einer stochastischen Komponente, die es verbessern sollte. Die Flussrichtung wird durch ein zufälliges Argument bestimmt, das vom Unterschied zwischen Aspekt und Richtung der beiden benachbarten Nachbarzellen abhängt. Nicht sehr nützlich. . . (Fairfield & Leymarie 1991).
  • Deterministische Unendlichkeit (D∞): Der Fluss geht von einer Zelle zu zwei benachbarten umgebenden Zellen, berücksichtigt also einen zweidimensionalen Fluss und überwindet die Nachteile der D8-Methode. (Tarboton 1998).
  • Braunschweiger Digitales Reliefmodell: Ein weiterer Algorithmus für mehrere Flussrichtungen. Der Fluss wird zwischen der umgebenden Zelle, deren Ausrichtung dem Aspekt der mittleren Zelle am nächsten kommt, und ihren zwei benachbarten Zellen aufgeteilt. (Bauer, Bork & Rohdenburg 1985).
  • FD8 (in SAGA einfach als Multiple Flow Direction zu finden): Ein von D8 abgeleiteter zweidimensionaler Flow Routing-Algorithmus. (Quinn et al. 1991).
  • Kinematischer Routing-Algorithmus (KRA). Ein eindimensionaler Flow-Tracing-Algorithmus. Flow verhält sich wie eine Kugel, die den DEM hinunterrollt, ohne seine Position auf das Zentrum der Zellen zu beschränken. (Lea 1992).
  • Digital Elevation Model Network (DEMON): Das komplexeste. Ein zweidimensionaler Flow-Tracing-Algorithmus. Ziemlich zeitaufwändig. (Costa-Cabral & amp; Burgess 1994).

Kürzlich wurden noch weitere Modelle hinzugefügt:

  • Dreieckige Mehrfachströmungsrichtung - Seibert, J. / McGlynn, B. (2007): 'Ein neuer Algorithmus für dreieckige Mehrfachströmungsrichtung zur Berechnung von Steigungsflächen aus gerasterten digitalen Höhenmodellen', Water Resources Research, Vol. 43, W04501. Dies kann für Sie interessant sein, da es möglicherweise auch direkt auf einem TIN funktioniert
  • Die von Gruber und Peckham (2008) vorgeschlagene Mass-Flux-Methode (MFM) zur DEM-basierten Berechnung der Durchflussakkumulation. Gruber, S., Peckham, S. (2008): Landoberflächenparameter und Objekte in der Hydrologie. In: Hengl, T. und Reuter, HI [Hrsg.]: Geomorphometrie: Konzepte, Software, Anwendungen. Entwicklungen in der Bodenkunde, Elsevier, Bd.33, S.293-308.
  • Der Seitenalgorithmus: http://watershed.montana.edu/Hydrology/Home_files/2010WR009296.pdf und sein Code sind auch auf seiner Website zu finden: http://thomasgrabs.com/side-algorithm/
johanvdw
quelle
5

Ein origineller Ansatz ist der in diesem Papier vorgeschlagene :

Fisher, P., J. Wood und T. Cheng (2004). Wo ist Helvellyn? Unschärfe der Multiskalen-Landschaftsmorphometrie. Transaktionen des Institute of British Geographers 29, 106-128.

Es wird eine Methode vorgeschlagen, die auf Fuzzy- und Multiskalendarstellung basiert. Ich bin nicht sicher, aber diese Methode ist möglicherweise in LandSerf implementiert .

Bildbeschreibung hier eingeben

julien
quelle
Der obige Papierlink ist nicht mehr zugänglich
Graviton
@Graviton: Der Link wurde korrigiert!
Julien
4

Wenn Sie in ArcGIS auf Spatial Analyst zugreifen können, stehen Ihnen eine Reihe von Tools zum Berechnen von Stream-Pfaden zur Verfügung. Ein vollständiger Workflow wird in der ESRI-Referenz bereitgestellt, der typische Workflow umfasst jedoch Folgendes:

  1. Konvertieren Sie Ihr TIN in ein Höhenraster.
  2. Berechnen Sie die Durchflussrichtung.
  3. Füllen Sie kleine Waschbecken.
  4. Durchflussakkumulation berechnen
  5. Wählen Sie unter Verwendung eines Schwellenwerts nur die Zellen mit einer bestimmten Durchflussmenge aus.
  6. Verwenden Sie das Werkzeug Stream to Feature, um die Streams in ein Vektor-Shapefile zu exportieren.

Natürlich gibt es zahlreiche wissenschaftliche Arbeiten, die verschiedene Methoden beschreiben, aber diese Methode ist für alle, die Zugang zu Spatial Analyst haben, einfach.

Patrick
quelle
Ich müsste den Code von Grund auf neu schreiben, damit ich dieses Softwarepaket nicht verwenden kann.
Graviton
Nun, dies scheint das Verfahren zu sein, das von den meisten GIS-Paketen verwendet wird. TerraFlow ist eine Open Source-Option, die ich jedoch noch nie verwendet habe. Was haben Sie vor, um die TIN zu handhaben?
Patrick
1
Ich denke darüber nach, meinen eigenen Stream-Flow-Algorithmus zu schreiben, weshalb die von Ihnen erwähnten Softwarepakete nicht auf mich zutreffen
Graviton
2
Okay. Als Sie sagten "Ich bin mir nicht so sicher, wie ich das ausführen soll", ging ich davon aus, dass Sie praktische Ratschläge dazu wünschen. Vermutlich könnte der von diesen Softwarepaketen verwendete Workflow einen Leitfaden für die Gesamtstruktur Ihres Algorithmus liefern. Ich schlage vor, Sie konsultieren die akademische Literatur über Besonderheiten. Zum Beispiel wurde Tarboton, 1997 bei meiner Suche nach Strömungsrichtungsalgorithmen mehrmals erwähnt.
Patrick
3

In gitterbasierten digitalen Höhenmodellen liefert die D8-LTD-Methode zuverlässige Bestimmungen der Steigungslinien:

Orlandini, S. und G. Moretti (2009), Bestimmung von Oberflächenströmungspfaden aus gerasterten Höhendaten, Water Resour. Res., 45 (3), W03417, doi: 10.1029 / 2008WR007099.

Orlandini, S., G. Moretti, M. Franchini, B. Aldighieri und B. Testa (2003), Pfadbasierte Methoden zur Bestimmung nichtdispersiver Entwässerungsrichtungen in gitterbasierten digitalen Höhenmodellen, Water Resour. Res., 39 (6), 1144, doi: 10.1029 / 2002WR001639.

In konturbasierten digitalen Höhenmodellen können Neigungslinien automatisch bestimmt werden, indem komplexe topografische Strukturen mithilfe des (komplexen) Modells gelöst werden, das in der folgenden Veröffentlichung beschrieben wird:

Moretti, G. und S. Orlandini (2008), Automatische Abgrenzung von Entwässerungsbecken aus Höhenkonturdaten unter Verwendung von Skelettbautechniken, Water Resour. Res., 44 (5), WO5403, doi: 10.1029 / 2007WR006309.

Stefano Orlandini
quelle
1

Scheint so, als wäre es an der Zeit, ein Tool von Grund auf neu zu schreiben. ESRI ist seit Jahrzehnten dabei und sie haben immer noch kein Recht.

AutoCAD (Civil 3D) kann dies mit einem TIN. Ich weiß nicht, was sich hinter den Kulissen abspielt, aber in ArcGIS wird die Identifizierung von Stream-Netzwerken über eine Rasteranalyse durchgeführt.

Kurz gesagt, wird ein Eingabe-DEM-Raster (wobei jede Zelle X-, Y-, Z-Werte aufweist) als Eingabe verwendet, und ein Algorithmus berechnet die Angabe "akkumulierter Fluss (als akkumuliertes Gewicht) aller Zellen, die in jede Downslope-Zelle im Eingabe-Raster fließen. " Das Produkt ist ein Raster, in dem jede Zelle einen Durchflussakkumulationswert aufweist. Um das Stromnetzwerk zu identifizieren, isolieren Sie dann die Zellen mit hohem Durchfluss, die Bereiche mit "konzentriertem Durchfluss" sind. Es gibt andere Überlegungen, wie z. B. optionalen Gewichtsfaktor, hydrologisch korrekte Eingabe-DEM usw.

Ich werde nur ein paar Ideen einbringen: In Bezug auf die "Mechanik" eines solchen Algorithmus denke ich, dass es ziemlich einfach sein könnte; Bestimmen Sie rekursiv und für jede Zelle die Position und Höhe aller umgebenden Zellen und addieren Sie auf der Grundlage ihrer Höhe die Anzahl der Zellen, die in sie fließen. Was TIN betrifft, könnten Sie wahrscheinlich eine Linie aus zwei Punkten auf jedem Dreieck (höchster und niedrigster Scheitelpunkt) konstruieren und diese dann zu einem Netzwerk zusammenfügen.

Jakub Sisak GeoGraphics
quelle
1
Komplikationen ergeben sich im Umgang mit Senken und ebenen Flächen. Stellen Sie sich als extremes Beispiel ein DEM vor, das einen Bergsee darstellt, sodass der größte Teil des DEM vollkommen flach ist. Wie genau würde eine rekursive Implementierung den gesamten Zufluss in den See zu seinen Abflusspunkten leiten?
whuber