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.walk
funzione 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.mapcalculator
con la formula: A*0+1
dove 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.walk
con 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.