Wie messe ich den Abstand zwischen Punkten basierend auf der Höhe?

10

Ich muss in der Lage sein, Entfernungen zwischen Punkten zu messen, aber die Entfernung muss in Bezug auf die Höhe berechnet werden. Die Punkte sind Häuser von Geschichtenerzählern aus dem 19. Jahrhundert und die Orte, die in ihren Geschichten erwähnt werden. Die Entfernung muss daher "zu Fuß" sein. Ein Weg entlang eines Tals ist wahrscheinlich kürzer als ein Weg über einen Berg, obwohl die tatsächliche gerade Strecke kürzer ist. Anbei ein Screenshot, der mein Denken veranschaulicht. In dem Bild würden die Pfade A und C daher kürzer als Pfad B berechnet.Punkte und Höhe

Die Punkte stammen aus einer CSV-Datei, aber ich habe auch eine Rasterebene mit den Höhendaten.

traustid
quelle
1
Ich denke , es wäre besser , zu berechnen Wanderzeit . Die Geschwindigkeit des Gehens hängt von der Steigung ab und dauert nach oben länger als nach unten.
AndreJ
1
"3D" Entfernung im Vergleich zur Flat-Map-Entfernung? Der Unterschied ist wahrscheinlich kleiner als Sie vielleicht denken. Peter Guth, der Mann hinter MICRODEM, sagte: "Die Entfernung oder Fläche wird um die Sekante des Neigungswinkels vergrößert, und bis Sie zu sehr großen Hängen gelangen, ist die Sekante im Wesentlichen 1."
nhopton

Antworten:

6

Das Erreichen dieses Ziels ist eine grundlegende Aufgabe in GIS, die Methode in QGIS ist jedoch möglicherweise nicht trivial. Ihre beste Chance ist die Verwendung der GRASS- r.walkFunktion, die eine anisotrope Kostenfläche erzeugt (dem + Steigung + andere Faktoren).

Zunächst müssen Sie eine Reibfläche als Eingabe für erstellen r.walk. In Ihrem Fall kann es sich um ein einwertiges Raster (1.0) handeln, das dem Umfang Ihres DEM entspricht. Sie können es mit r.mapcalculatorder Formel erstellen : A*0+1wobei A Ihr DEM ist.

Als nächstes müssen Sie eine Reihe von Startpunkten aus Ihrer CSV auswählen. Dies sind die Punkte, aus denen die kumulierte Kostenfläche berechnet wird. Sie müssen von jedem Ausgangspunkt aus eine individuelle Kostenfläche erstellen. Es kann sinnvoll sein, die Endpunkte zu definieren, die jedem Startpunkt in diesem Schritt zugeordnet sind (natürlich in einzelnen Ebenen). Danach können Sie r.walkmit den erstellten Eingaben ausführen . Die Startpunkte können sich in einer einzelnen Ebene befinden. Sie können sie mit dem grünen Pfeil im Dialogfeld durchlaufen.

Im Idealfall haben Sie jetzt die Kostenflächen und die Endpunkte für jede Kostenfläche. Theoretisch konnte man die kostengünstigsten Pfade finden r.drain, aber für mich kam es zu einem Fehler (Python konnte die QgisRaster-Bibliothek nicht importieren). Wenn Sie in derselben Ausgabe arbeiten, können Sie den SAGA-Algorithmus "Least Cost Pathways" verwenden. Es werden für jeden Endpunkt mit der Kostenfläche ein Punkt und eine Linienebene erstellt (verwenden Sie die Iterationsschaltfläche erneut). Nachdem Sie alle Linien erstellt haben, können Sie sie mit dem SAGA-Werkzeug "Formenebenen zusammenführen" zu einem einzigen Shapefile zusammenführen.

Diese Methode kann mit dem Inkrementieren von Punkten sehr langsam sein. Wenn Sie also viele davon haben, können Sie versuchen, die Methode mit Python zu automatisieren. Die Berechnung (insbesondere der Kostenoberflächen) wird noch viel Zeit in Anspruch nehmen, aber Sie müssen nicht Tonnen von Endpunktebenen manuell erstellen.

Gabor Farkas
quelle
Vielen Dank dafür, ich muss wahrscheinlich lernen, wie man GRASS benutzt. Ich denke auch, dass ich Probleme haben könnte. In der Abbildung, die ich gepostet habe, würde ich annehmen, dass viele der Berge unpassierbar sind, also müsste ich etwas hinzufügen wie "Wenn der Berg höher als x ist, gehe darum herum" ... Aber danke für die Antwort, dies wird mir wahrscheinlich helfen, loszulegen.
Traustid
Das ist ein einfacher Zustand in r.walk. Sie können die Reibungskarte verwenden, um die unpassierbaren Zellen einzurichten. Klassifizieren Sie Ihr DEM mit r.reclassRegeln wie 1 thru 2000 = 1 2000 thru * = 9999in einer Regeldatei (wenn Ihr Schwellenwert 2000 m beträgt). Auf diese Weise passiert der Algorithmus keine Zellen mit hohen Reibungswerten, es ist weniger kostspielig, ihn zu umgehen.
Gabor Farkas
Vielen Dank dafür! Ich habe wirklich nicht viel Wissen über GRASS, aber dies ist ein wirklich guter Ausgangspunkt.
Traustid
Bitte. Um ehrlich zu sein, bin ich immer noch erstaunt über Ihre Aufgabe. Dies ist eines der besten Beispiele dafür, wie GIS in den unterschiedlichsten Disziplinen angewendet werden kann.
Gabor Farkas