Bagaimana cara menerapkan perhitungan viewshed?

11

Saya mencari cara untuk mengimplementasikan visibilitas (alias viewshed). Saya menemukan pertanyaan GIS SE sebelumnya yang menyarankan beberapa aplikasi GIS (bukan yang saya butuhkan - saya mencoba menyematkan perhitungan), dan juga SAGA. SAGA lebih mirip apa yang saya cari (kelas C ++, Java, C #), tapi saya tidak bisa cukup memahami dokumentasi API untuk mencari tahu kelas apa yang saya perlu instantiate (atau subclass).

Saya tidak terikat dengan ide SAGA - Saya hanya mencari perpustakaan / mesin yang dapat melakukan calvis intervisibilitas.

Kendala adalah bahwa itu harus:

  • cukup "ringan" (karena saya ingin dapat menutupi tertanam / ponsel)
  • open source yang wajar (karena aplikasi saya akan open source, meskipun saya fleksibel pada lisensi yang mana asalkan (L) kompatibel dengan GPL).

Adakah yang bisa merekomendasikan perpustakaan atau mesin semacam itu, dan memberikan deskripsi atau tautan ke bit perpustakaan atau mesin mana yang perlu saya gunakan untuk perhitungan tampilan jendela?

Sebagai alternatif / tambahan, saya juga menghargai referensi makalah atau tutorial yang menjelaskan cara melakukan perhitungan ini dengan cara yang efisien (sebagaimana berlaku untuk perangkat tertanam / seluler, sehingga implementasi berbasis GPU mungkin tidak berguna seperti sesuatu yang lebih umum, dan menangani perangkat berdaya rendah)

Preferensi saya adalah implementasi yang sudah ada, daripada membuat sesuatu sendiri (yang merupakan opsi cadangan).

Sunting: C ++ bukan persyaratan perusahaan - apa pun yang cukup portabel (C #, C ++, Java) akan dilakukan. Saya mencoba pustaka atau templat daripada menyematkan aplikasi besar.

BradHards
sumber
2
Apakah Anda benar-benar membutuhkan algoritma ZTV lengkap? Mungkin memodelkan medan di OpenGL dan menganalisis hasil dari itu? Smartphone memiliki akselerasi grafik yang semakin baik yang dapat Anda manfaatkan. OpenGL bahkan mendukung proyeksi ortografis.
Matthew Snape
Saya senang selama ini menghasilkan jawaban yang "benar", jadi OpenGL patut dicoba. Apakah Anda memiliki contoh / penunjuk yang melakukan ini dari data tipe GIS?
BradHards

Jawaban:

8

Seperti yang akan Anda lihat dari pertanyaan GIS SE yang direferensikan , tampaknya tidak ada banyak hal yang menghalangi paket tampilan mandiri setidaknya di pasar Open Source di luar SAGA dan GRASS GIS. Selain menulis pembungkus di sekitar kode untuk algorthim ini, Anda mungkin akhirnya mengimplementasikan viewshed sendiri. (Meskipun saya ingin dikoreksi atas hal ini.)

Jika Anda membaca dokumentasi untuk fungsi GRASS r.viewshed, ia menyediakan deskripsi luas tentang algoritma dan referensi ke makalah berikut yang membahas secara menyeluruh satu algoritma viewshed:

Komputasi Visibilitas pada Medan di Memori Eksternal . Herman Haverkort, Laura Toma dan Yi Zhuang. Dalam Prosiding Lokakarya ke-9 tentang Teknik Algoritma dan Eksperimen / Lokakarya tentang Algoritma Analitik dan Combinatorics (ALENEX / ANALCO 2007).

Bergantian artikel Wikipedia di Viewshed memberikan referensi:

Wu, H., Pan, M., Yao, L., & Luo, B. (2007). Algoritma Serial Berbasis Partisi untuk Menghasilkan Viewshed pada DEM besar-besaran . Jurnal Internasional Ilmu Informasi Geografis, 21 (9), 955-964.

om_henners
sumber
Bukan jawaban yang saya harapkan, tapi jawaban terbaik yang diberikan. Terima kasih banyak atas kerja keras Anda dalam hal ini.
BradHards
Jangan khawatir. Semoga berhasil!
om_henners
4

Ada paket freeware yang disebut RadioMobile yang dirancang untuk studi komunikasi radio yang menghasilkan tampilan gudang. Outputnya didasarkan pada input DEM dan dapat berupa vektor (file titik) atau Raster. Saya telah dapat menggunakan file titik vektor untuk membuat poligon melalui beberapa skrip yang akan saya bagikan dengan senang hati kepada Anda. Karena Anda dapat mengatur palet pada output raster, Anda juga dapat mengubah raster menjadi vektor menggunakan gdal.

Program ini memiliki gui tetapi juga dapat dijalankan dalam mode batch sehingga Anda dapat dengan mudah memasukkannya ke dalam program. Meskipun ada lebih banyak opsi daripada yang diperlukan untuk tampilan jendela tradisional, Anda dapat mengatur ini menjadi nol sehingga efek seperti daya pemancar tidak termasuk - lihat http://www.g3tvu.co.uk/RM_Batch_Files.htm

Program ini ada di http://www.cplus.org/rmw/rme.html Penulis juga sangat membantu.

Semoga ini membantu,

GeorgeC
sumber
Menarik, tetapi tampaknya bukan open source, dan hanya windows-nya. Jadi itu tidak akan berfungsi di lingkungan seluler.
BradHards