Melakukan ekstraksi tanggul dari DEM?

14

Saya punya DEM 1x1 meter dan cloud titik LiDAR asli di .las, yang terbuat dari DEM. Saya perlu mengekstrak tanggul sungai (titik tertinggi tanggul) ke fitur vektor (titik, polyline).

Adakah gagasan untuk algoritme atau alat yang ada?

Tanggul berwarna abu-abu terang pada gambar 1 dan di bawah ini adalah citra cloud titik untuk area contoh dengan tanggul. Garis tengah sungai berwarna biru.

Tanggul berwarna abu-abu terang

Arahkan cloud dengan tanggul

Adakah alat untuk ekstraksi fitur linear dari DEM?

Saya percaya saya perlu sesuatu seperti Modul Ekstraksi Fitur Spasial ENVI (halaman 7), tetapi tanpa bagian ENVI, karena saya tidak mampu membelinya :)

Tomek
sumber
1
Sistem gis apa yang Anda gunakan?
Hornbydd
Komersial - ArcInfo 10 (SA, 3D, ekstensi Geostatistic). Sumber terbuka - apa saja.
Tomek
1
Saya sedang memikirkan beberapa ide, dengan asumsi Anda memiliki garis tengah vektor untuk sungai Anda bahwa Anda dapat buffer ini dan menggunakannya untuk menutupi DEM dan ambang nilai. Ini mengasumsikan tanggul berjalan sejajar dengan saluran sungai. Jadi, apa pun logika yang Anda gunakan harus cukup pintar untuk menangkap tanggul saat mereka menjadi "mundur" dari sungai.
Hornbydd
Sayangnya tanggul tidak selalu berjalan sejajar dengan saluran sungai dan cukup sering jauh dari saluran sungai. Saya berpikir bahwa akan ada beberapa kerangka kerja sebagai kerangka kerja? Untuk ekstraksi fitur linear dari DEM, dengan fitur seperti itu saya bisa mendapatkan poin tertinggi di cloud point.
Tomek
2
Saya menemukan makalah ini, mungkin bisa membantu? asprs.org/a/publications/pers/2004journal/december/…
Hornbydd

Jawaban:

8

Itu semua tergantung di mana Anda menggambar garis. Apapun, masalah ini sepertinya dapat diatasi dengan menggunakan fungsi morfologis yang tersedia di Spatial Analyst, terutama thresholding (dilakukan dengan "<" dan ">" operasi lokal) dan "RegionGroup" untuk mengidentifikasi dan mengekstrak komponen.

Meskipun saya tidak memiliki akses ke DEM untuk diilustrasikan, gambar pertama hampir cukup baik untuk melakukan pekerjaan itu. Sebagai contoh, berikut adalah urutan versi regional dari grup pita merah (dengan nilai diskalakan dari 0,0 = hitam menjadi 1,0 = putih), mulai dari ambang 0 dan bergerak dari kiri ke kanan, atas ke bawah, dengan peningkatan 0,02:

Tanggul

(Gambar-gambar ini menyusut untuk reproduksi di sini: semua analisis dilakukan pada resolusi gambar asli.)

Tanggul muncul di sekitar batas wilayah hitam pada awal baris kedua (ambang = 0,08). Pada awal baris ketiga (ambang = 0,16) tanggul membentuk komponen mereka sendiri (berwarna biru gelap) dan pada saat itu dapat dengan mudah diekstraksi sebagai kisi atau poligon terpisah (dan batasnya dapat diekstraksi sebagai polyline setelah langkah deteksi tepi) ). Hanya tanggul terluas yang tersisa di baris terakhir (ambang = 0,24 dan lebih tinggi). Anda harus memilih ambang yang sesuai untuk mendapatkan apa yang Anda inginkan.

Dalam DEM asli, peningkatan memainkan peran intensitas, sehingga prosedur ini harus sama efektifnya dengan DEM itu sendiri. Jika DEM memiliki jangkauan yang luas (termasuk fitur yang jauh dari sungai atau tanggul), fitur yang relevan dapat dipilih sebagai yang berdekatan dengan komponen di mana fitur sungai berada.

Daerah tipis yang tidak diinginkan yang ditemukan oleh RegionGroup dapat dihilangkan dengan menerapkan erosi kecil (penyangga negatif) diikuti dengan pelebaran setara (penyangga positif). Wilayah kecil yang tidak diinginkan dapat dikecualikan pada kriteria ukuran (jumlah sel total atau area). Poin tertinggi pada setiap tanggul (jika itu yang benar-benar dibutuhkan) dapat ditemukan dengan membandingkan DEM dengan zonal grid maksimum (menggunakan tanggul sebagai zona).


Kebetulan, urutan gambar ini diproduksi di Mathematica 8. Berikut adalah perintah untuk mereka yang mungkin ingin mengejar opsi ini.

original = Import["http://i.stack.imgur.com/gV7Du.jpg"];
{r, g, b} = ColorSeparate[original];
frames = ParallelTable[Colorize[MorphologicalComponents[Binarize[r, t/100]], 
                       ColorFunction -> "ThermometerColors"], {t, 0, 30, 2}];
Rasterize @ TableForm[Partition[frames, 4]]

Total waktu jam (setelah mengimpor gambar) adalah 0,94 detik, di mana setengahnya diperlukan untuk mengecilkan dan mengekspor semua 16 gambar: operasi morfologis cenderung cepat (yang baik, karena DEM LIDAR bisa sangat besar).

whuber
sumber
Konsep keseluruhan kedengarannya ok, tapi saya tidak mengerti bagian "... thresholding (dilakukan dengan bagian" <"dan"> "operasi lokal)". Bagaimana Anda mencapai ini dengan set alat Generalisasi (SA)?
Tomek
@ Tom One tidak. Lihat toolset logis .
whuber
9

Saya membaca tentang berbagai algoritma untuk pekerjaan (mis. Sesuai tautan @Hornbydds ).

Saya mencoba beberapa aplikasi, dan hasil terbaik dalam kasus saya menghasilkan Analisis Terrain Standar dari SAGA. Inilah yang saya lakukan dan mengapa:

Tanggul biasanya merupakan fitur tertinggi di sekitar saluran sungai, jadi saya mengubahnya menjadi saluran dengan membalik DEM (MapAlgebra DEM * -1 atau untuk kemiringan berlebih -10). Dari titik ini saya bisa menggunakan set alat hidrologi (ArcHydro, HEC-GeoRas atau SAGA hydro tools). Saya memilih SAGA / Analisis Medan-analisis senyawa / Analisis Terrain Standar karena menghasilkan Jaringan Sungai dengan beberapa klik. Sungai Jaringan adalah apa yang ingin saya capai, karena menghasilkan polyline, yang menunjukkan rute terbaik untuk aliran air, yang dalam kasus tanggul terbalik - memberikan titik tertinggi mereka.

File bentuk yang dihasilkan sedikit berantakan (banyak polyline yang lebih kecil), tetapi setelah beberapa hasil penyesuaian memuaskan. Gangguan lain adalah bahwa 1 tanggul terbuat dari 300 polyline pendek, tapi saya pikir saya akan menemukan cara untuk menangani ini.

Berikut ini contoh hasil:

masukkan deskripsi gambar di sini

Tentu saja ini solusi yang cukup kasar dan saya mungkin akan menyelidiki masalah ini lebih lanjut, tetapi saya pikir nilainya untuk dibagikan.

Tomek
sumber
5

Beberapa kombinasi berikut ini dengan DEM asli akan membantu menyoroti informasi raster yang Anda inginkan, dan membuang sisanya. Ini dapat dilakukan pada skala yang berbeda dan ukuran lingkungan untuk menyempurnakan efeknya.

  • Resample, lalu Lingkungan -> Filter: High Pass
  • Permukaan -> Lengkungan
  • Lingkungan -> Focal Statistics: Deviasi Standar
  • "Relative Height" = (Pixel) - (Sekitar -> Statistik Fokus: Median)
  • Balikkan, Resample, lalu Tetangga -> Focal Flow

Setelah melakukan ini, reklasifikasi dan kontur harus memberikan garis besar tanggul itu sendiri dengan cukup baik. Jika tanggul miring datar dan Anda menginginkan cakupan yang lebih luas, Anda juga dapat mencoba sesuatu seperti jumlah kelengkungan dan kemiringan, diskalakan dengan jumlah tertentu, atau bahkan melakukan kontur kemiringan secara terpisah dan menyatukannya bersama.

Berikut adalah tutorial tentang mengekstraksi ridgeline vektor dari DEM raster menggunakan Spatial Analyst, yang seharusnya sangat dapat diterapkan:

Memetakan Besok
sumber
Saya akan melihat kombinasi alat-mungkin memberikan hasil yang bagus. Terima kasih. Seperti yang saya lihat, tutorial ESRI menggambarkan proses +/- seperti yang saya lakukan :) Keren. Terima kasih.
Tomek
0

Saya pikir ini mungkin hanya menjadi bagian dari jawaban tetapi mungkin Anda bisa mulai dengan membuat kontur / poligon dari gambar Anda pada interval yang diberikan / berdasarkan nilai ketinggian. Saya berpikir bahwa tanggul harus memiliki nilai ketinggian yang lebih tinggi dan karenanya jika dikonversi Anda DEM menjadi poligon Anda mungkin menemukan bahwa area yang Anda minati diwakili oleh poligon centain. Anda juga bisa mulai dengan hanya mengklasifikasi ulang DEM dan melihat apakah itu menghasilkan hasil yang Anda inginkan. Jika Anda memiliki data gambar lain yang mencakup area yang Anda tertarik coba tambahkan ke klasifikasi gambar Anda dan lihat apakah itu membantu. Semoga berhasil!!

dango
sumber