Bagaimana cara menghitung Lengkungan medan?

29

Saya memiliki raster elevasi dan saya ingin mendapatkan beberapa variabel medan dasar, seperti kemiringan, kekasaran, aspek, atau kelengkungan.

Masalahnya adalah saya sepertinya tidak memiliki kemungkinan untuk menghitung kelengkungan dengan analis medan:

masukkan deskripsi gambar di sini

Adakah yang bisa memberi tahu saya mengapa indikator ini tidak ada dalam daftar? Bagaimana saya bisa menghitungnya?

Damien
sumber

Jawaban:

20

Lengkungan adalah turunan medan yang rumit untuk dihitung, persamaan yang Anda gunakan bergantung pada resolusi data input Anda, karena Anda harus memastikan bahwa hasil lengkungan yang Anda hitung dapat dibedakan dari derau dalam data.

Banyak penelitian yang telah dilakukan baru-baru ini pada perhitungan kelengkungan pada data LiDAR resolusi tinggi yang menunjukkan bahwa penskalaan skala ada pada resolusi sekitar 2 atau 3 meter dan di atas titik ini lebih banyak algoritma yang berbeda (yang saya tidak terbiasa) perlu digunakan . Informasi terbaik tentang perhitungan kelengkungan topografi mungkin berasal dari Hurst et al 2012 dan referensi di dalamnya.

Prinsip dasar perhitungan kelengkungan, seperti halnya kemiringan dan aspek, adalah untuk melewati jendela bergerak di atas permukaan ketinggian dan menyesuaikan nilai ketinggian ke fungsi polinomial 6 jangka, koefisien yang akan menghasilkan kemiringan, aspek dan kelengkungan pusat sel jendela yang bergerak.

ArcGIS menggunakan jendela pencarian 3x3 yang hanya akan menghasilkan hasil yang baik di daerah yang sama sekali tidak memiliki vegetasi, yang membuat alat ini tidak berguna kecuali orang-orang menyadari keterbatasan ini, ini mungkin menunjukkan mengapa itu tidak ada di QGIS.

Matematika awalnya diturunkan (saya pikir) di Evans (1980) dan disederhanakan dalam beberapa halaman dalam Prinsip Sistem Informasi Geografis (tautan Amazon) yang dapat saya rekomendasikan sebagai panduan yang baik untuk analisis medan semacam ini di tingkat dasar.

Salah satu cara untuk menghitung kelengkungan DEM adalah dengan mengubah DEM menjadi raster ascii, membacanya menjadi array numpy dan kemudian melakukan pemasangan polinomial pada jendela bergerak yang melewati data. Ini cukup mudah dilakukan, tetapi sangat lambat untuk dieksekusi dan membutuhkan optimasi yang cukup (operasi semacam ini sering diangkut ke c ++ untuk mempercepatnya).

Untuk melakukan operasi di QGIS, Anda dapat menggunakan plugin GRASS r.slope.aspect yang juga dibatasi oleh jendela tetap 3x3.

Saya menyadari ini bukan jawaban sederhana yang Anda harapkan, tapi saya harap Anda mengerti bahwa kelengkungan itu rumit untuk diturunkan dengan cara yang bermakna. Semua yang terbaik.

Evans, I. S. (1980), An integrated system of terrain analysis and slope mapping, Z. Geomorphol., 36, 274–295.
sgrieve
sumber
Terima kasih atas semua perkembangannya! Namun, saya tertarik dengan fakta bahwa opsi "Kelengkungan" tidak ada dalam daftar di analis medan raster QGIS. Apakah ini normal? Saya menginstal ulang versi QGIS 1.8 saya untuk memastikan, tetapi masih belum ada: - /
Damien
1
Perhatikan bahwa dalam GRASS Anda dapat menggunakan 'r.param.scale' yang menghitung turunan terrain, seperti lengkungan, dengan ukuran yang ditentukan pengguna untuk operator jendela (bukan hanya 3x3 default).
user1013346
12

Versi ESRI tentang Analisis Raster untuk menghitung kelengkungan mungkin bermanfaat untuk mengembangkan plugin untuk QGIS.

Untuk setiap sel, polinomial urutan keempat dari bentuk:

masukkan deskripsi gambar di sini

Z = Ax²y² + Bx²y + Cxy² + Dx² + Ey² + Fxy + Gx + Hy + I

cocok untuk permukaan yang terdiri dari jendela 3x3. Koefisien a, b, c, dan sebagainya, dihitung dari permukaan ini.

Hubungan antara koefisien dan sembilan nilai elevasi untuk setiap sel yang diberi nomor seperti yang ditunjukkan pada diagram adalah sebagai berikut: Curvature values ​​diagram Curvature values ​​diagram

A = [(Z1 + Z3 + Z7 + Z9) / 4 - (Z2 + Z4 + Z6 + Z8) / 2 + Z5] / L4

B = [(Z1 + Z3 - Z7 - Z9) / 4 - (Z2 - Z8) / 2] / L3

C = [(-Z1 + Z3 - Z7 + Z9) / 4 + (Z4 - Z6)] / 2] / L3

D = [(Z4 + Z6) / 2 - Z5] / L2

E = [(Z2 + Z8) / 2 - Z5] / L2

F = (-Z1 + Z3 + Z7 - Z9) / 4L2

G = (-Z4 + Z6) / 2L

H = (Z2 - Z8) / 2L

I = Z5

Keluaran alat Lengkungan adalah turunan kedua dari permukaan — misalnya, kemiringan lereng — sedemikian rupa sehingga:

Kelengkungan = -2 (D + E) * 100

Informasi dan sumber lengkap:

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//00q90000000t000000

Mapperz
sumber
2
Ini adalah ringkasan matematika yang hebat, tetapi dapat disederhanakan untuk menggunakan polinomial 6 istilah tanpa kehilangan kualitas yang dapat dilihat, jika data Anda memiliki resolusi di bawah 3 meter.
bersyukurlah
5
Karena "lengkungan" ESRI hanya bergantung pada D + E, semua sisanya tidak perlu. Komputasi -2(D+E)*100sebagai (100/L2)*(3*Z5 - [Z2+Z4+Z6+Z8+Z5])menunjukkan cara mendapatkan nilai ini tiga kali lipat dari nilai aslinya Z5,, minus jumlah lingkungan Z2+Z4+Z6+Z8+Z5(menggunakan lingkaran jari-jari 1), semua dihitung ulang oleh 100/L2. Itu hanya tiga operasi grid sederhana.
whuber
@whuber: Adakah yang bisa memberi tahu saya apa itu x dan y? dan apakah Z mewakili nilai kelengkungan? lalu apa -2 (D + E) * 100? Apakah mungkin jika saya memiliki file vektor yang memiliki begitu banyak poligon dan saya ingin mengetahui apakah area di dalam poligon itu cekung atau cembung (kelengkungan rencana dan profil)?
Hardik
Z = Nilai Ketinggian dan -2 (D + E) * 100 = Nilai Kelengkungan en.wikipedia.org/wiki/Curvature (Osculating_Circle)
Mapperz
6

Kelengkungan dapat dihitung menggunakan modul SAGA 'Analisis medan - Morfometri ---> Kemiringan, Aspek, Kelengkungan'

Perhitungan dapat dilakukan berdasarkan salah satu dari algoritma ini:

  • Kemiringan Maksimum (Travis et al. 1975)
  • Kemiringan Segitiga Maksimum (Tarboton 1997)
  • Kotak Terkecil Dipasang Pesawat (Horn 1981, Costa-Cabral & Burgess 1996)
  • Fit 2.Degree Polynom (Bauer, Rohdenburg, Bork 1985)
  • Fit 2.Degree Polynom (Heerdegen & Beran 1982)
  • Fit 2.Degree Polynom (Zevenbergen & Thorne 1987)
  • Fit 3.Degree Polynom (Haralick 1983)
Vladimir
sumber
3

LandSerf dapat melakukan ini. Anda dapat menentukan ukuran windows (3 * 3, 5 * 5, 7 * 7, 11 * 11, ...) tetapi harus berupa angka ganjil. analisis multiskala. Anda dapat mempertimbangkan skala ketergantungan kemiringan, Aspek dan kelengkungan. http://www.landserf.org/ LandSerf akan cocok dengan persamaan polinomial kuadratik untuk jendela yang telah ditentukan sebelumnya, tetapi jika Anda menentukan ukuran jendela besar seperti 50 * 50 itu membutuhkan waktu lama. Itu tergantung pada ukuran raster dan ukuran windows yang Anda tentukan. Jo Wood menulis Landserf untuk tesis PhD-nya. Itu ditulis dalam Java.

  • Kelengkungan profil
  • Rencanakan Kelengkungan
  • Lengkungan Bujur
  • Kelengkungan Cross Sectional
  • Kelengkungan berarti
  • Kelengkungan Min
  • Kelengkungan Max

Dapat dihitung dalam skala berbeda di LandSerf

ramin orkide
sumber
2

Anda juga dapat mencoba SAGA GIS gratis (http://sourceforge.net/apps/trac/saga-gis/wiki) atau TAS (http://www.uoguelph.ca/~hydrogeo/TAS/index.html).

Rok
sumber
Bisakah Anda memberikan detail lebih lanjut tentang bagaimana paket ini beroperasi untuk menghitung kelengkungan? Tautan yang Anda poskan adalah tautan umum ke dua paket GIS, dan tidak memiliki relevansi langsung dengan pertanyaan yang diajukan.
sgrieve
1
Maaf untuk jawaban yang sangat singkat. Di SAGA Anda dapat menemukan modul Analisis Terrain - Analisis Senyawa -> Analisis Terrain Standar. Di sana Anda dapat menghitung kelengkungan, kelengkungan profil, kelengkungan rencana (tidak ada deskripsi terperinci di dalam bantuan perangkat lunak). Anda dapat mengimpor data ke SAGA dengan mudah dari asc, flt, ...
Rok
@sgrieve Di TAS Anda dapat menghitung profil, rencana, dan kelengkungan tangensial (menu: Analisis Terrain -> Atribut Terrain Primer -> Derivatif Permukaan). Sekali lagi, ada sedikit deskripsi cara kerjanya.
Rok