Höhenverlauf über geneigten Flächen entfernen?

16

Gibt es eine bekannte Methode zum Entfernen des Trends von einer DEM-Oberfläche?

Wenn ich zum Beispiel einen DEM eines Flusses hätte, würde dieser Fluss von einer hohen Höhe (stromaufwärts) zu einer niedrigeren Höhe (stromabwärts) fließen. Selbst wenn der Abstand von der Oberseite der Wasseroberfläche zum Boden des Flussbetts über den gesamten Fluss gleich wäre, hätte der stromabwärtige Teil des Rasters im DEM immer noch niedrigere Höhenwerte. Ist es möglich, diese Werte auszugleichen, damit Bereiche gleicher Tiefe auch gleiche Erhebungen besitzen?

Wenn dieser Trend beseitigt wird, ist es ideal, die allgemeinen Merkmale des DEM, wie zum Beispiel Einbrüche im Flussbett, beizubehalten.Bildbeschreibung hier eingeben

Radar
quelle

Antworten:

9

@jul ist korrekt: "Sie müssen eine Trendoberfläche berechnen und dann von Ihrem anfänglichen DEM subtrahieren, um die 'verminderte' zu erhalten." In diesem Fall sind jedoch einfachere Verfahren erforderlich, um "die Einbrüche zu bewahren". Wenn die "Trendoberfläche" dem ursprünglichen DEM zu genau folgt, behalten die Residuen nicht die lokalen Eigenschaften der Oberfläche bei. Zu den zu vermeidenden Techniken zählen daher alle lokalen (Splines, Filter und insbesondere Kriging) und die zu favorisierenden Techniken sind global.

Ein einfacher, robuster und direkter Ansatz besteht darin, ein Flugzeug in der Nähe des Flusses an den DEM anzupassen. Dies erfordert keine ausgefallene Technologie oder schwere Berechnungen, da (nach Euklid) eine Ebene durch drei (nicht kollineare) Punkte im Raum bestimmt wird. Wählen Sie dementsprechend einen Punkt (x1 ', y1', z1 ') = (Koordinaten, Höhe) am Flusskopf, einen anderen Punkt (x2', y2 ', z2') am stromabwärtigen Ende und einen dritten Punkt bei (x0 ', y0', z0 ') Ihrer Wahl entfernt von dem Liniensegment, das die ersten beiden Punkte verbindet. (Diese Koordinaten sind mit Primzahlen angegeben, da wir sie bald ändern werden.) Dieser letzte Punkt ist nicht der Fallmüssen einem Punkt auf oder sogar in Bodennähe entsprechen! Tatsächlich könnte eine gute anfängliche Wahl darin bestehen, die Höhe auf den Durchschnitt der stromaufwärtigen und stromabwärtigen Höhen zu setzen, z0 '= (z1' + z2 ') / 2.

Die Berechnungen werden vereinfacht, indem der Punkt (x0 ', y0', z0 ') als Ursprung eines lokalen Koordinatensystems übernommen wird. In diesen Koordinaten liegen die beiden anderen Punkte bei

(x1,y1,z1) = (x1'-x0',y1'-y0',z1'-z0') 
(x2,y2,z2) = (x2'-x0',y2'-y0',z2'-z0'). 

Jeder beliebige Ort an (x ', y') im ursprünglichen Koordinatensystem hat die Koordinaten (x, y) = (x'-x0 ', y'-y0') in diesem neuen System. Da jede Ebene, die durch den Ursprung (0,0,0) verläuft, eine Gleichung der Form z = a * x + b * y haben muss, reduziert dies das Problem auf Folgendes:

Suchen Sie eine Gleichung in der Form z = a * x + b * y für die Ebene, die durch die Punkte (0,0,0), (x1, y1, z1) und (x2, y2, z2) verläuft.

Die einzigartige Lösung ist zu berechnen

u = z1 y2 - z2 y1
v = x1 z2 - x2 z1
w = x1 y2 - x2 y1

in welchen Begriffen

a = u/w, b = v/w.

Nachdem diese beiden Zahlen a und b gefunden wurden und die beiden ursprünglichen Koordinaten x0 'und y0' abgerufen wurden, erfolgt eine Rasterberechnung der Form

[DEM] - a * ([X'] - x0') - b * ([Y'] - y0')

Entfernt die "Neigung" vom DEM . In diesem Ausdruck bezieht sich [X '] auf das x-Koordinatengitter in den ursprünglichen Koordinaten und [Y'] auf das ursprüngliche y-Koordinatengitter. Es wird garantiert, dass das resultierende DEM an jedem der drei Punkte, die Sie ursprünglich ausgewählt haben, dieselbe Höhe (nämlich z0 ') aufweist. was es anderswo macht, hängt vom DEM selbst ab!


(Ich hoffe, einige Leser wissen zu schätzen, wie dieser Ansatz alle Verweise auf Trigonometrie oder Maschinen mit kleinsten Quadraten vermeidet. :-)

whuber
quelle
@ Dan Guter Punkt: Der vorherige Beitrag unter gis.stackexchange.com/questions/10959/… sieht eng mit diesem verwandt aus.
whuber
Die vorherige Frage war auch meine - ich hatte das Gefühl, ich hätte sie verfeinern müssen, um die Fragen präziser zu stellen (z. B. die Notwendigkeit, Dips aufzubewahren). Ich habe mich nach Code umgesehen, der diese Art von Analyse durchführen kann, aber ich war erfolglos. Kennen Sie irgendetwas, das von ArcObjects Gebrauch macht, das nützlich wäre, oder sollte ich bei Null anfangen? Vielen Dank für die Hilfe - es war von unschätzbarem Wert.
Radar
@Radar Versuchen Sie zuerst diese Analyse von Hand. Es erfordert ein gewisses Urteilsvermögen (Sie müssen diese drei Punkte sorgfältig auswählen) und oft eine gewisse Iteration, um das Richtige zu tun. Diese Erfahrung gibt Ihnen einen besseren Einblick in die Funktionsweise der Berechnungen. Sie können diesen Ansatz auch mit der in ArcGIS angebotenen linearen Trendoberflächenanpassung vergleichen.
Whuber
Fair genug - Ich habe die Ableitung der Upstream- und Downstream-Punkte bereits automatisiert. Ich kann mir vorstellen, dass der schwierigste Teil darin besteht, diesen dritten Punkt zu erreichen. Danke noch einmal!
Radar
3

Ich habe festgestellt, dass die Trendanalyse für Flüsse unbefriedigend ist. Es mag in Regionen wie dem Mittleren Westen funktionieren, aber im Westen scheint eine einzelne lineare oder polynomische Oberfläche den Flussgradienten aufgrund der komplexen Topographie niemals sehr gut zu approximieren. Ich habe stattdessen eine gewichtete Mittelung verwendet, bei der ich die Höhe eines Hochlandpixels mit einem gewichteten Durchschnitt des Flusses unter Verwendung einer Kerneldichte vergleiche (siehe Artikel in Winter 2010 ArcUser). Dies erzeugt ein "lokalisierteres" Ergebnis. Es ist immer noch möglich, negative Werte zu erhalten, aber ich habe festgestellt, dass diese Werte auf den Flusskanal beschränkt zu sein scheinen und am häufigsten in Gebieten mit steilen Gefällen auftreten. In jüngerer Zeit habe ich mit Pathdistance-Ansätzen experimentiert, um "Hochwasserhöhe" abzubilden, aber das hat nicht gewonnen. '

Tom Dilts
quelle
Vielen Dank für Ihre Bemerkungen, Tom. Willkommen auf unserer Seite - schön, Sie hier zu sehen!
Whuber
2

Sie müssen eine Trendoberfläche berechnen und dann von Ihrem anfänglichen DEM subtrahieren, um die "verminderte" zu erhalten.

Zur Berechnung einer Trendoberfläche kann eine beliebige Oberflächenvereinfachungsfunktion verwendet werden (Filtern, Spline-Glätten, Kriging usw.). Diese Auswahl hängt davon ab, wie diese Trendoberfläche aussehen soll.

Hier finden Sie ein Beispiel für die Verwendung von Kriging in arcGIS 10.0 .

julien
quelle
1
Gibt es für mein Beispiel eine bevorzugte Methode zum Erhalten der Trendoberfläche (z. B. Art der Oberflächenvereinfachung)?
Radar
Das ist hier die Frage! Es hängt davon ab, welche Geländevariationen Sie als "Trend" betrachten und entfernen möchten und welche Sie beibehalten möchten. Je stärker die Vereinfachung, desto weniger lokale Variationen Ihres Geländes werden beibehalten. Wie von whuber gesagt, kann eine aus lokalen Ebenen zusammengesetzte Trendoberfläche sogar zufriedenstellend sein.
Julien