Menghapus tren ketinggian di atas permukaan yang miring?

16

Apakah ada metodologi yang diketahui untuk menghilangkan tren dari permukaan DEM?

Misalnya, jika saya memiliki DEM sungai, sungai itu akan mengalir dari ketinggian tinggi (hulu) ke ketinggian lebih rendah (hilir). Bahkan jika jarak dari atas permukaan air ke dasar dasar sungai adalah sama di seluruh sungai, bagian hilir dari raster masih akan memiliki nilai ketinggian yang lebih rendah dalam DEM. Apakah mungkin untuk meratakan nilai-nilai ini sehingga area dengan kedalaman yang sama juga memiliki ketinggian yang sama?

Saat menghilangkan tren ini, akan ideal untuk mempertahankan karakteristik DEM secara keseluruhan, seperti penurunan di dasar sungai.masukkan deskripsi gambar di sini

Radar
sumber

Jawaban:

9

@ jul benar bahwa "Anda perlu menghitung permukaan tren, dan kemudian kurangi dari DEM awal Anda untuk mendapatkan yang 'detrended'," tapi sepertinya prosedur yang lebih sederhana diperlukan dalam kasus ini untuk "mempertahankan penurunan." Jika "permukaan tren" terlalu dekat mengikuti DEM asli, maka residu tidak akan mempertahankan karakteristik lokal permukaan. Jadi, salah satu teknik yang harus dihindari adalah yang lokal (splines, filter, dan - terutama - kriging) dan yang disukai adalah global.

Pendekatan yang sederhana, kuat, dan langsung adalah memasangkan sebuah pesawat ke DEM di sekitar sungai. Ini tidak memerlukan teknologi canggih atau perhitungan berat, karena (menurut Euclid) sebuah pesawat ditentukan oleh tiga titik (non-collinear) di ruang angkasa. Dengan demikian, pilih satu titik (x1 ', y1', z1 ') = (koordinat, ketinggian) di kepala sungai, titik lain (x2', y2 ', z2') di ujung hilir, dan titik ketiga di (x0 ', y0', z0 ') yang Anda pilih dari segmen garis yang menghubungkan dua poin pertama. (Koordinat ini ditandai dengan bilangan prima karena kita akan segera mengubahnya.) Poin terakhir ini tidakharus sesuai dengan titik di atau bahkan di dekat permukaan tanah! Bahkan, pilihan awal yang baik mungkin untuk mengatur ketinggiannya ke rata-rata ketinggian hulu dan hilir, z0 '= (z1' + z2 ') / 2.

Perhitungan dipermudah dengan mengadopsi titik (x0 ', y0', z0 ') sebagai asal dari sistem koordinat lokal. Dalam koordinat ini dua titik lainnya berada di

(x1,y1,z1) = (x1'-x0',y1'-y0',z1'-z0') 
(x2,y2,z2) = (x2'-x0',y2'-y0',z2'-z0'). 

Setiap lokasi arbitrer, pada (x ', y') dalam sistem koordinat asli, memiliki koordinat (x, y) = (x'-x0 ', y'-y0') dalam sistem baru ini. Karena setiap bidang yang melewati titik asal (0,0,0) harus memiliki persamaan bentuk z = a * x + b * y, ini mengurangi masalah sebagai berikut:

Temukan persamaan dalam bentuk z = a * x + b * y untuk bidang yang melewati titik-titik (0,0,0), (x1, y1, z1), dan (x2, y2, z2).

Solusi unik adalah menghitung

u = z1 y2 - z2 y1
v = x1 z2 - x2 z1
w = x1 y2 - x2 y1

dalam hal mana

a = u/w, b = v/w.

Setelah menemukan dua angka ini a dan b, dan mengingat dua koordinat asli x0 'dan y0', perhitungan raster dari formulir

[DEM] - a * ([X'] - x0') - b * ([Y'] - y0')

menghapus "tilt" dari DEM . Dalam ungkapan ini [X '] merujuk ke koordinat x-koordinat dalam koordinat asli dan [Y'] mengacu pada koordinat asli y-koordinat. DEM yang dihasilkan dijamin memiliki ketinggian yang sama (yaitu, z0 ') di masing-masing dari tiga titik yang Anda pilih; apa yang dilakukannya di tempat lain tergantung pada DEM itu sendiri!


(Saya harap beberapa pembaca menghargai bagaimana pendekatan ini menghindari semua referensi ke trigonometri atau mesin kuadrat. :-)

whuber
sumber
Jangan lupa untuk menambahkan referensi Anda untuk memiringkan raster di forums.arcgis.com/threads/22904-Trouble-with-Hillshading
@Dan Good point: posting sebelumnya di gis.stackexchange.com/questions/10959/… terlihat sangat terkait dengan yang ini.
whuber
Pertanyaan sebelumnya juga milik saya - saya merasa bahwa saya harus memperbaikinya agar dapat mengajukan pertanyaan dengan lebih ringkas (mis. Perlu mempertahankan penurunan). Saya telah mencari-cari kode yang akan melakukan jenis analisis ini, tetapi saya tidak berhasil. Apakah Anda mengetahui sesuatu yang menggunakan ArcObjects yang akan berguna, atau haruskah saya mulai dari awal? Terima kasih atas bantuannya - ini sangat berharga.
Radar
@ Radar Pertama, coba analisis ini dengan tangan. Ini membutuhkan penilaian (Anda harus memilih tiga poin dengan hati-hati) dan, seringkali, beberapa iterasi untuk melakukan yang benar. Pengalaman itu akan memberi Anda pengertian yang lebih baik tentang bagaimana perhitungan bekerja. Anda juga dapat membandingkan pendekatan ini dengan pemasangan permukaan tren linier yang ditawarkan dalam ArcGIS.
whuber
Cukup adil - Saya sudah mengotomatiskan penurunan titik hulu dan hilir. Saya membayangkan bagian tersulit akan mendapatkan poin ke-3. Terima kasih lagi!
Radar
3

Saya mendapati tren tren dengan analisis tren tidak memuaskan untuk sungai. Ini dapat bekerja di daerah seperti midwest tetapi di barat permukaan linear atau polinom tunggal tampaknya tidak pernah mendekati gradien sungai dengan sangat baik karena topografi yang kompleks. Yang saya gunakan adalah rata-rata tertimbang di mana saya membandingkan ketinggian piksel dataran tinggi dengan rata-rata tertimbang sungai menggunakan kepadatan kernel (lihat artikel di Winter 2010 ArcUser). Ini menghasilkan hasil yang lebih "terlokalisasi". Masih mungkin untuk mendapatkan beberapa nilai negatif, tetapi saya telah menemukan bahwa nilai-nilai itu tampaknya terbatas pada saluran sungai dan paling umum di daerah gradien yang curam. Baru-baru ini saya telah bereksperimen dengan pendekatan pathdistance untuk memetakan "ketinggian banjir" tetapi ini tidak menang '

Tom Dilts
sumber
Terima kasih atas komentar Anda, Tom. Selamat datang di situs kami - senang melihat Anda di sini!
whuber
2

Anda perlu menghitung permukaan tren, dan kemudian kurangi dari DEM awal Anda untuk mendapatkan yang "detrended".

Untuk menghitung permukaan tren, fungsi penyederhanaan permukaan apa pun dapat digunakan (penyaringan, spline smoothing, kriging, dll.). Pilihan ini tergantung pada bagaimana Anda ingin permukaan tren ini terlihat.

Berikut adalah contoh tentang cara menggunakan kriging di arcGIS 10.0 untuk itu.

Julien
sumber
1
Sebagai contoh saya, apakah ada metode yang disukai untuk mendapatkan permukaan tren (misalnya jenis penyederhanaan permukaan)?
Radar
Itu pertanyaannya! Itu tergantung pada variasi medan mana yang ingin Anda pertimbangkan sebagai "tren" dan dihapus, dan yang mana yang ingin Anda pertahankan. Semakin kuat penyederhanaan, semakin sedikit Anda menyimpan variasi lokal di medan Anda. Seperti yang dikatakan oleh Whuber, permukaan tren yang terdiri dari pesawat lokal bahkan mungkin memuaskan.
julien