Bagaimana mengukur jarak antara titik berdasarkan ketinggian?

10

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.Poin dan ketinggian

Poinnya dari file CSV tapi saya juga punya layer raster dengan data elevasi.

traustid
sumber
1
Saya pikir akan lebih baik untuk menghitung waktu berjalan . Kecepatan berjalan tergantung pada kemiringan, dan ke atas membutuhkan lebih banyak waktu daripada ke bawah.
AndreJ
1
Jarak "3D" dibandingkan dengan jarak peta datar? Perbedaannya mungkin lebih kecil dari yang Anda kira. Peter Guth, pria di belakang MICRODEM berkata, "Jarak atau area akan bertambah dengan garis potong sudut lereng, dan sampai Anda mencapai lereng yang sangat besar, garis potong itu pada dasarnya adalah 1."
nhopton

Jawaban:

6

Mencapai tujuan ini agak merupakan tugas dasar dalam GIS, namun metode dalam QGIS mungkin tidak sepele. Peluang terbaik Anda adalah menggunakan r.walkfungsi 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 dengan r.mapcalculatorrumus: di A*0+1mana 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.walkdengan 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.

Gabor Farkas
sumber
Terima kasih untuk ini, saya mungkin harus mulai belajar cara menggunakan GRASS. Saya juga berpikir bahwa saya mungkin memiliki masalah, dalam ilustrasi yang saya posting saya akan menganggap banyak gunung tidak bisa dilewati, jadi saya harus menambahkan sesuatu seperti "jika gunung lebih tinggi dari x, berkelilinglah" ... Tapi terima kasih untuk jawab, ini mungkin akan membantu saya memulai.
Traustid
Itu kondisi yang mudah di r.walk. Anda dapat menggunakan peta gesekan untuk mengatur sel yang tidak bisa dilewati. Reklasifikasi DEM Anda r.reclassdengan aturan seperti 1 thru 2000 = 1 2000 thru * = 9999dalam 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.
Gabor Farkas
Terima kasih banyak untuk ini! Saya benar-benar tidak memiliki banyak pengetahuan tentang GRASS tetapi ini adalah titik awal yang sangat bagus.
Traustid
Sama-sama. Sejujurnya, saya masih kagum dengan tugas Anda. Ini adalah salah satu contoh terbaik, bagaimana GIS dapat diterapkan pada skala disiplin ilmu terluas.
Gabor Farkas