Diberi medan, cara menggambar jalur aliran arus?

23

Dengan asumsi saya memiliki medan, seperti biasa medan memiliki punggung bukit, sungai dan semua karakteristik yang dapat Anda temukan di peta kehidupan nyata. Air mengalir dari puncak gunung ke daerah yang lebih rendah, jalur yang mengalir air disebut jalur aliran arus.

Medan diberikan dalam bentuk triangular irregular network (TIN), yang setiap titik p (x, y) memiliki nilai az. Bagaimana cara menggunakan informasi ini untuk membangun jalur aliran aliran? Apa fisika di balik ini?

Dari apa yang saya tahu, metode keturunan paling curam dapat digunakan untuk memecahkan masalah ini . Saya berpikir untuk menulis algoritma aliran arus saya sendiri, jadi saya tertarik pada latar belakang teoritis daripada menggunakan alat yang ada.

Graviton
sumber

Jawaban:

26

Ada beberapa kemungkinan implementasi yang berbeda, tetapi sebagian besar prosedur akan dimulai dari kisi dan bukan dari TIN.

Yang paling sederhana kemungkinan prosedur D8: Anda menghitung arah di mana air akan mengalir. Ada 8 kemungkinan, 8 sel yang berada di sebelah sel kisi pusat. Anda pertama-tama dapat menghitung arah ini, daripada bagaimana sel-sel terhubung, dan akhirnya Anda dapat menggambar garis). Implementasi yang mudah ditemukan di SAGA, hampir terbaca sebagai pseudocode: http://saga-gis.svn.sourceforge.net/viewvc/saga-gis/trunk/saga-gis/src/modules_terrain_analysis/terrain_analysis/ta_channels/D8_Flow_Analysis. cpp? revisi = 911 & tampilan = markup

Meskipun sangat mudah, ini tidak terlalu realistis: Anda tidak akan memiliki aliran yang dimulai di setiap sel. Algoritma yang lebih maju biasanya pertama menutup lubang (terutama jika Anda memiliki DEM rinci), kemudian menghitung daerah tangkapan per sel, yaitu jumlah sel yang berkontribusi air ke sel tertentu, dan kemudian menggunakan ambang batas untuk menentukan apakah aliran hadir

SAGA GIS mengimplementasikan banyak metode daerah tangkapan air ini, Anda dapat menemukan deskripsi mereka dalam manual ini http://sourceforge.net/settings/mirror_choices?projectname=saga-gis&filename=SAGA%20-%20Documentation/SAGA%20Documents/ SagaManual.pdf

Itu ditulis untuk versi SAGA GIS yang lebih lama, tetapi deskripsi algoritmenya masih agak akurat, dan saya akan menyalinnya di sini untuk referensi cepat (ini sekitar halaman 120), karena ini adalah open source, Anda dapat memeriksa detail implementasi dengan melihat kode.

  • Deterministic 8 (D8): Klasik. Aliran mengalir dari pusat sel ke pusat satu (dan hanya satu) sel di sekitarnya. Oleh karena itu, arah aliran dibatasi hingga kelipatan 45o, yang merupakan alasan utama sebagian besar kelemahan metode ini. (O'Callaghan & Mark 1984).
  • Rho8: Sama seperti di atas tetapi dengan komponen stokastik yang harus memperbaikinya. Arah aliran ditentukan oleh argumen acak yang bergantung pada perbedaan antara aspek dan arah dua sel tetangga yang berdekatan. Sangat tidak berguna. . . (Fairfield & Leymarie 1991).
  • Deterministic infinity (D∞): Aliran bergerak dari satu sel ke dua sel sekitarnya yang berdekatan, sehingga mempertimbangkan aliran bidimensional dan mengatasi kelemahan metode D8. (Tarboton 1998).
  • Braunschweiger Digitales Reliefmodell: Algoritma Multiple Flow Direction Lainnya. Aliran terbagi antara sel di sekitarnya yang orientasinya paling dekat dengan aspek sel pusat dan dua sel yang berdekatan. (Bauer, Bork & Rohdenburg 1985).
  • FD8 (ditemukan dalam SAGA hanya sebagai Multiple Flow Direction): Algoritma routing routing dua dimensi yang diturunkan dari D8. (Quinn et al 1991).
  • Algoritma Routing Kinematik (KRA). Algoritma penelusuran aliran unidimensional. Aliran berperilaku seperti bola yang menggelindingkan DEM, tanpa membatasi posisinya ke pusat sel. (Lea 1992).
  • Digital Elevation Model Network (DEMON): Yang paling kompleks. Algoritma penelusuran aliran bidimensional. Agak memakan waktu. (Costa-Cabral & Burgess 1994).

Bahkan lebih banyak model telah ditambahkan baru-baru ini:

  • Triangular Multiple Flow Direction- Seibert, J. / McGlynn, B. (2007): 'Algoritma beberapa arah aliran triangular baru untuk menghitung daerah ketinggian dari model elevasi digital gridded', Water Resources Research, Vol. 43, W04501. Ini mungkin menarik bagi Anda karena mungkin juga bekerja langsung pada TIN
  • Metode Mass-Flux (MFM) untuk perhitungan akumulasi aliran berdasarkan DEM seperti yang diusulkan oleh Gruber dan Peckham (2008). Gruber, S., Peckham, S. (2008): Parameter dan Objek Permukaan Tanah dalam Hidrologi. Dalam: Hengl, T. dan Reuter, HI [Eds.]: Geomorfometri: Konsep, Perangkat Lunak, Aplikasi. Perkembangan dalam Ilmu Tanah, Elsevier, Bd.33, S.293-308.
  • Algoritma sisi: http://watershed.montana.edu/Hydrology/Home_files/2010WR009296.pdf dan kodenya ada di situs webnya juga: http://thomasgrabs.com/side-algorithm/
johanvdw
sumber
5

Pendekatan asli adalah yang diusulkan dalam makalah ini :

Fisher, P., J. Wood, dan T. Cheng (2004). Dimanakah Helvellyn? Kekaburan morfometri lanskap multiskala. Transaksi dari Institute of British Geographers 29, 106-128.

Ini mengusulkan metode berdasarkan representasi fuzzy dan multi skala. Saya tidak yakin tetapi metode ini mungkin yang diterapkan di LandSerf .

masukkan deskripsi gambar di sini

Julien
sumber
Tautan kertas di atas tidak lagi dapat diakses
Graviton
@Graviton: Tautan telah diperbaiki!
julien
4

Jika Anda memiliki akses ke Analis Tata Ruang di ArcGIS, maka Anda memiliki serangkaian alat untuk menghitung jalur aliran. Sebuah alur kerja penuh disediakan dalam referensi ESRI, tetapi alur kerja umum meliputi:

  1. Ubah TIN Anda menjadi raster elevasi.
  2. Hitung Arah Aliran.
  3. Isi Sink kecil.
  4. Hitung Akumulasi Aliran
  5. Menggunakan ambang, pilih hanya sel dengan jumlah aliran yang diberikan.
  6. Gunakan alat Stream to Feature untuk mengekspor aliran ke shapefile vektor.

Tentu saja, ada banyak makalah akademis yang menjelaskan metode yang berbeda, tetapi metode ini mudah bagi semua yang memiliki akses ke Analis Tata Ruang.

Patrick
sumber
Saya harus menulis kode dari awal, jadi saya tidak dapat menggunakan paket perangkat lunak ini.
Graviton
Nah, ini sepertinya prosedur yang digunakan oleh sebagian besar paket GIS. TerraFlow adalah opsi sumber terbuka, tetapi saya belum pernah menggunakannya. Apa yang Anda rencanakan untuk menangani TIN?
Patrick
1
Saya sedang berpikir untuk menulis algoritma aliran arus saya sendiri, itulah sebabnya paket perangkat lunak yang Anda sebutkan tidak berlaku untuk saya
Graviton
2
Baik. Ketika Anda mengatakan "Saya kurang jelas tentang bagaimana melakukan ini", saya berasumsi Anda menginginkan saran praktis tentang cara melakukan ini. Agaknya alur kerja yang digunakan oleh paket perangkat lunak ini dapat memberikan panduan untuk struktur keseluruhan algoritma Anda. Dari sana saya sarankan Anda berkonsultasi dengan literatur akademik tentang spesifik. Sebagai contoh, Tarboton, 1997 direferensikan beberapa kali dalam pencarian saya untuk algoritma arah aliran.
Patrick
3

Dalam model elevasi digital berbasis grid, penentuan garis kemiringan yang andal disediakan oleh metode D8-LTD:

Orlandini, S., dan G. Moretti (2009), Penentuan jalur aliran permukaan dari data ketinggian grid, Water Resour. Res., 45 (3), W03417, doi: 10.1029 / 2008WR007099.

Orlandini, S., G. Moretti, M. Franchini, B. Aldighieri, dan B. Testa (2003), metode berbasis jalur untuk penentuan arah drainase nondispersif dalam model elevasi digital berbasis grid, Water Resour. Res., 39 (6), 1144, doi: 10.1029 / 2002WR001639.

Dalam model elevasi digital berbasis kontur, garis kemiringan dapat ditentukan secara otomatis dengan menyelesaikan struktur topografi kompleks menggunakan model (kompleks) yang dijelaskan dalam makalah berikut:

Moretti, G., dan S. Orlandini (2008), penggambaran otomatis cekungan drainase dari data ketinggian kontur menggunakan teknik konstruksi kerangka, Water Resour. Res., 44 (5), W05403, doi: 10.1029 / 2007WR006309.

Stefano Orlandini
sumber
1

Tampaknya ini akan menjadi pekerjaan yang cukup untuk menulis alat dari awal. ESRI telah melakukannya selama beberapa dekade dan mereka masih belum memiliki hak.

AutoCAD (3D Sipil) dapat ini menggunakan TIN. Saya tidak mengetahui apa yang terjadi di balik layar di sana tetapi di ArcGIS mengidentifikasi jaringan aliran ditangani melalui analisis raster.

Singkatnya input DEM raster (di mana setiap sel memiliki nilai X, Y, Z) digunakan sebagai input dan suatu algoritma menghitung mengutip "akumulasi aliran (sebagai akumulasi berat) dari semua sel yang mengalir ke setiap sel downslope dalam input raster. " Produk adalah raster di mana setiap sel memiliki nilai akumulasi aliran. Untuk mengidentifikasi jaringan aliran Anda kemudian mengisolasi sel-sel aliran tinggi yang merupakan area "aliran terkonsentrasi". Ada pertimbangan lain seperti faktor berat opsional, DEM masukan hidrologi yang benar, dll.

Saya hanya akan melemparkan beberapa ide: Dalam hal "mekanika" dari algoritma seperti itu saya kira itu bisa sangat lurus ke depan; secara rekursif dan untuk setiap sel, tentukan lokasi dan ketinggian semua sel di sekitarnya dan berdasarkan ketinggiannya jumlah sel bertambah ke dalamnya. Adapun TIN Anda mungkin bisa membangun garis dari dua titik pada setiap segitiga (puncak tertinggi dan terendah) kemudian menggabungkan semua ini bersama-sama ke dalam jaringan.

Jakub Sisak GeoGraphics
sumber
1
Komplikasi muncul dalam berurusan dengan wastafel dan daerah datar. Sebagai contoh ekstrem, pertimbangkan DEM yang mewakili danau gunung, sehingga sebagian besar DEM rata. Bagaimana tepatnya implementasi rekursif merutekan semua aliran masuk ke danau ke titik keluarnya?
whuber