Come misurare la distanza tra i punti in base all'altitudine?


10

Devo essere in grado di misurare le distanze tra i punti, tuttavia la distanza deve essere calcolata in relazione all'altezza. I punti sono le case dei narratori del XIX secolo e i luoghi citati nelle loro storie. La distanza deve quindi essere "a piedi". Un percorso lungo una valle sarà probabilmente più breve di un percorso sopra una montagna anche se la distanza rettilinea effettiva è più breve. In allegato è uno screenshot che illustra il mio pensiero. Nell'immagine, i percorsi A e C sarebbero quindi calcolati più corti del percorso B.Punti ed elevazione

I punti provengono da un file CSV ma ho anche un livello raster con i dati di elevazione.


1
Penso che sarebbe meglio calcolare il tempo di percorrenza . La velocità della camminata dipende dalla pendenza e verso l'alto richiede più tempo che verso il basso.
AndreJ,

1
Distanza "3D" rispetto alla distanza della mappa piatta? La differenza è probabilmente più piccola di quanto si pensi. Peter Guth, l'uomo dietro MICRODEM, ha dichiarato: "La distanza o l'area sarà aumentata dalla secante dell'angolo di pendenza e fino a quando non si arriva a pendenze molto grandi, la secante è essenzialmente 1".
nhopton,

Risposte:


6

Il raggiungimento di questo obiettivo è in qualche modo un compito fondamentale in GIS, tuttavia il metodo in QGIS potrebbe non essere banale. La tua migliore possibilità è quella di utilizzare la r.walkfunzione di GRASS , che crea una superficie di costo anisotropica (dem + pendenza + altri fattori).

Innanzitutto, è necessario creare una superficie di attrito come input per r.walk. Nel tuo caso può essere un raster a valore singolo (1.0) che corrisponde all'estensione del tuo DEM. Puoi crearlo r.mapcalculatorcon la formula: A*0+1dove A è il tuo DEM.

Successivamente, devi selezionare un set di punti di partenza dal tuo CSV. Questi sono i punti da cui verrà calcolata la superficie di costo accumulata. Devi creare una superficie di costo individuale da ogni punto di partenza. Potrebbe essere intelligente definire i punti finali associati a ogni punto iniziale in questo passaggio (in singoli livelli fuori rotta). Successivamente, è possibile eseguire r.walkcon gli input creati. I punti di partenza possono essere in un singolo livello, è possibile scorrere attraverso di essi con la freccia verde nella finestra di dialogo.

Ora, nel caso ideale, hai le superfici di costo e i punti finali per ogni superficie di costo. In teoria potresti trovare i percorsi meno costosi con r.drain, ma per me è finito con un errore (python non ha potuto importare la libreria QgisRaster). Se si verifica lo stesso problema, è possibile utilizzare l'algoritmo "Percorsi a costo minimo" di SAGA. Creerà un punto e un livello linea per ogni punto finale con la superficie di costo (utilizzare nuovamente il pulsante di iterazione). Dopo aver ottenuto tutte le linee, puoi unirle in un singolo file di forma con lo strumento "Unisci livelli forme" di SAGA.

Questo metodo può essere molto lento con l'incremento dei punti, quindi se ne hai molti, potresti provare ad automatizzare il metodo con Python. Sarà ancora molto tempo per calcolare (in particolare le superfici di costo), ma non è necessario creare manualmente tonnellate di livelli di punti finali.


Grazie per questo, probabilmente dovrò iniziare a imparare come usare GRASS. Penso anche che potrei avere problemi, nell'illustrazione che ho pubblicato assumerei molte montagne impraticabili, quindi dovrei aggiungere qualcosa del tipo "se la montagna è più alta di x, aggirarla" ... Ma grazie per il risposta, questo probabilmente mi aiuterà a iniziare.
traustid

Questa è una condizione facile in r.walk. È possibile utilizzare la mappa degli attriti per impostare le celle impraticabili. Riclassifica il tuo DEM con r.reclassregole come 1 thru 2000 = 1 2000 thru * = 9999in un file di regole (se la soglia è 2000 m). In questo modo l'algoritmo non passerà celle con valori di attrito elevati, ma sarà meno costoso aggirarlo.
Gabor Farkas,

Grazie mille per questo! Non ho molta conoscenza di GRASS, ma questo è un ottimo punto di partenza.
traustid

Prego. Ad essere sincero, sono ancora stupito dal tuo compito. Questo è uno dei migliori esempi di come il GIS può essere applicato sulla più ampia scala di discipline.
Gabor Farkas,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.