Saya memiliki beberapa segmen aliran sepanjang 1000 Km. Saya perlu menemukan perbedaan ketinggian antara dua titik jarak 1 Km berturut-turut mulai dari hulu ke hilir. Bagaimana saya bisa mendapatkan perbedaan ketinggian dari DEM? Saya memiliki segmen aliran dalam format raster dan juga dalam format vektor. Akan lebih baik jika saya mendapat ide tentang skrip Python.
10
Jawaban:
Sebagai seorang ahli geologi, saya sering menggunakan teknik ini untuk membuat penampang geologis dengan Python murni. Saya menghadirkan solusi lengkap dalam Python: Menggunakan vektor dan layer raster dalam perspektif geologis, tanpa perangkat lunak GIS (dalam bahasa Prancis)
Saya menyajikan ringkasan dalam bahasa Inggris di sini:
Jika Anda membuka DEM dengan modul GDAL / OGR Python:
Akibatnya, Anda memiliki jumlah pita dan parameter geotransform. Jika Anda ingin mengekstrak nilai raster di bawah titik xy:
Karena DEM, Anda mendapatkan nilai elevasi di bawah titik. Dengan 3 band raster dengan titik xy yang sama Anda mendapatkan 3 nilai (R, G, B). Jadi Anda bisa membuat fungsi yang memungkinkan untuk mendapatkan nilai dari beberapa raster di bawah titik xy:
aplikasi
Setelah itu, Anda memproses profil garis (yang mungkin memiliki segmen):
Untuk menghasilkan poin berjarak sama di telepon, Anda dapat menggunakan Shapely modul dengan interpolasi (lebih mudah daripada OGR)
dan hasilnya (dengan juga nilai RGB dari peta geologis) dengan nilai x, y, z, jarak dari daftar Dalam 3D dengan matplotlib dan Visvis (nilai x, y, z)
Potongan melintang (x, ketinggian dari jarak saat ini (daftar dista)) dengan matplotlib :
sumber