Saya harus bisa mengukur jarak antara titik, namun jarak perlu dihitung dalam kaitannya dengan ketinggian. Poinnya adalah rumah pendongeng dari abad ke-19 dan tempat-tempat yang disebutkan dalam cerita mereka. Karena itu jaraknya harus "jarak berjalan". Jalur di sepanjang lembah kemungkinan akan lebih pendek dari jalur di atas gunung meskipun jarak lurus yang sebenarnya lebih pendek. Terlampir adalah tangkapan layar yang menggambarkan pemikiran saya. Dalam gambar, jalur A dan C karenanya akan dihitung lebih pendek dari jalur B.
Poinnya dari file CSV tapi saya juga punya layer raster dengan data elevasi.
Jawaban:
Mencapai tujuan ini agak merupakan tugas dasar dalam GIS, namun metode dalam QGIS mungkin tidak sepele. Peluang terbaik Anda adalah menggunakan
r.walk
fungsi GRASS , yang menciptakan permukaan biaya anisotropik (kemiringan + kemiringan + faktor-faktor lain).Pertama, Anda harus membuat permukaan gesekan sebagai masukan
r.walk
. Dalam kasus Anda, ini bisa berupa raster bernilai tunggal (1,0) yang cocok dengan luas DEM Anda. Anda dapat membuatnya denganr.mapcalculator
rumus: diA*0+1
mana A adalah DEM Anda.Selanjutnya, Anda harus memilih satu set titik awal dari CSV Anda. Ini adalah poin, permukaan biaya yang terakumulasi akan dihitung dari. Anda harus membuat permukaan biaya individual dari setiap titik awal. Mungkin pintar untuk menentukan titik akhir yang terkait dengan setiap titik awal dalam langkah ini (dalam lapisan individual tentunya). Setelah itu, Anda dapat menjalankan
r.walk
dengan input yang dibuat. Titik awal dapat berada dalam satu lapisan, Anda dapat mengulanginya dengan panah hijau di kotak dialog.Sekarang dalam kasus ideal, Anda memiliki permukaan biaya dan titik akhir untuk setiap permukaan biaya. Secara teori Anda dapat menemukan jalur biaya paling murah
r.drain
, tetapi bagi saya, itu berakhir dengan kesalahan (python tidak dapat mengimpor perpustakaan QgisRaster). Jika Anda menjalankan masalah yang sama, Anda bisa menggunakan algoritme "Least cost paths" SAGA. Ini akan membuat titik dan layer garis untuk setiap titik akhir dengan permukaan biaya (gunakan tombol iterasi lagi). Setelah Anda memiliki semua garis, Anda dapat menggabungkannya menjadi satu shapefile dengan alat "Gabung bentuk lapisan" SAGA.Metode ini bisa sangat lambat dengan penambahan poin, jadi jika Anda memiliki banyak poin, Anda dapat mencoba mengotomatiskan metode ini dengan python. Masih banyak waktu untuk menghitung (terutama permukaan biaya), tetapi Anda tidak harus membuat banyak lapisan titik akhir secara manual.
sumber
r.walk
. Anda dapat menggunakan peta gesekan untuk mengatur sel yang tidak bisa dilewati. Reklasifikasi DEM Andar.reclass
dengan aturan seperti1 thru 2000 = 1
2000 thru * = 9999
dalam file aturan (jika ambang Anda adalah 2000m). Dengan cara ini algoritma tidak akan melewatkan sel dengan nilai gesekan yang tinggi, akan lebih murah untuk memutarnya.