Bu hedefe ulaşmak, CBS'de temel bir görevdir, ancak QGIS'deki yöntem önemsiz olmayabilir. En iyi şansınız r.walk
anizotropik maliyet yüzeyi (dem + eğim + diğer faktörler) oluşturan GRASS işlevini kullanmaktır .
İlk olarak, girdi olarak bir sürtünme yüzeyi oluşturmanız gerekir r.walk
. Sizin durumunuzda, DEM'inizin boyutuna uyan tek değerli bir raster (1.0) olabilir. Bunu aşağıdaki r.mapcalculator
formülle oluşturabilirsiniz : A*0+1
burada A sizin DEM'inizdir.
Ardından, CSV'nizden bir başlangıç noktası kümesi seçmeniz gerekir. Bunlar nokta, biriken maliyet yüzeyinden hesaplanacaktır. Her başlangıç noktasından ayrı bir maliyet yüzeyi oluşturmanız gerekir. Bu adımdaki her başlangıç noktası ile ilişkili bitiş noktalarını tanımlamak akıllıca olabilir (rota dışı katmanlarda). Sonra, r.walk
oluşturulan girişlerle çalıştırabilirsiniz . Başlangıç noktaları tek bir katmanda olabilir, diyalog kutusundaki yeşil okla bunları tekrarlayabilirsiniz.
Şimdi ideal bir durumda, maliyet yüzeylerine ve her maliyet yüzeyi için bitiş noktalarına sahipsiniz. Teoride en düşük maliyetli yolları bulabilirsiniz r.drain
, ancak benim için bir hatayla sonuçlandı (python QgisRaster kütüphanesini içe aktaramadı). Aynı sayıda çalışırsanız, SAGA'nın "En düşük maliyet yolları" algoritması ile devam edebilirsiniz. Maliyet yüzeyi ile her bitiş noktası için bir nokta ve bir çizgi katmanı oluşturur (yineleme düğmesini tekrar kullanın). Tüm çizgilere sahip olduktan sonra, SAGA'nın "Şekil katmanlarını birleştir" aracıyla bunları tek bir şekil dosyasında birleştirebilirsiniz.
Bu yöntem puanların artmasıyla çok yavaş olabilir, bu nedenle çok fazla varsa, yöntemi python ile otomatikleştirmeyi deneyebilirsiniz. Hesaplamak için hala çok zaman olacak (özellikle maliyet yüzeyleri), ancak elle tonlarca bitiş noktası katmanı oluşturmanız gerekmez.