Mencari algoritma pertumbuhan wilayah

8

Saya bekerja dengan set raster yang mewakili nilai tanah dan saya ingin secara otomatis membuat poligon dengan bentuk acak tetapi dengan ukuran dan / atau nilai tanah tertentu diberi titik sentroid setiap poligon. Titik centroid akan bertindak sebagai sel raster awal (piksel yang disebut sebagai sel benih) yang akan menjadi bagian dari poligon tertentu dan kemudian algoritma pertumbuhan wilayah akan mulai menambahkan piksel di sekitar piksel sentroid hingga kendala ukuran dan / atau nilai tanah dari poligon akan terpenuhi.

Adakah yang tahu tentang algoritma pertumbuhan wilayah yang ada? atau setidaknya kelas ArcObjects atau Antarmuka mana yang bisa saya gunakan, sehingga untuk membaca nilai setiap piksel, buat poligon baru dengan menambahkan piksel baru ke dalamnya?

Saya berharap hal di atas masuk akal dan seseorang dapat membantu saya.

Edit

Pada dasarnya saya bermaksud untuk secara otomatis membuat poligon dengan bentuk reguler dan serangkaian kendala seperti ukuran, nilai tanah, dll menggunakan algoritma genetika (GA). Tapi pertama-tama saya harus membuat satu set solusi acak untuk memberi makan GA. Jadi, misalnya pada blok tanah yang merupakan area yang tertutup oleh jalan, saya sudah mengatakan 4 titik pusat massa. Setiap titik centroid mewakili perkiraan lokasi masing-masing bidang tanah baru. Selain itu, setiap centroid dikaitkan dengan atribut dari setiap paket yaitu ukuran dan nilai tanah. Jadi, saya ingin memulai dengan setiap centroid sebagai titik awal dari algoritma pertumbuhan wilayah untuk mulai membuat bentuk acak untuk setiap paket berdasarkan setiap centroid.

Saya harap hal di atas masuk akal. Saya menantikan bagaimana saya bisa membuat algoritma pertumbuhan wilayah ini atau jika sudah ada satu di VBA dan ArcObjects.

Demetris
sumber
Bisakah Anda mengatakan sesuatu tentang tujuan membuat poligon acak? Bagaimanapun, ada banyak, banyak jenis keacakan. Cukup banyak dari mereka (seperti metode sederhana untuk membuat poligon fraktal acak) tidak mungkin menarik bagi Anda. Jika Anda mencoba mensimulasikan sesuatu yang realistis, prosedur harus memasukkan aspek fenomena yang sebenarnya membuat poligon yang Anda minati.
whuber
Ketika Anda menambahkan sel ke suatu wilayah, apakah Anda ingin menambahkan sel yang berbatasan dengan biaya terendah, atau sel yang paling dekat dengan centroid poligon?
Kirk Kuykendall
Saya minta maaf atas keterlambatan ini. Saya belum memperhatikan komentar ini. Setiap kali saya ingin menambahkan sel yang berdekatan di wilayah saat ini sampai beberapa kendala terpenuhi.
Demetris

Jawaban:

1

Sebuah biaya jarak analisis adalah salah satu pendekatan: mengklasifikasikan raster berdasarkan nilai tanah mulai dari titik benih, maka thresholding hasil yang akan memberikan area biaya kumulatif sebagai raster. Cukup terjemahkan raster rahasia itu ke dalam poligon, dan Anda akan mendapatkan hasilnya. Bergantung pada spesifikasi dari apa yang Anda coba lakukan, Anda mungkin bisa lolos dengan menggunakan fungsi Alokasi Biaya dengan lokasi benih dan raster nilai tanah untuk mencapai hasil yang diinginkan.

scw
sumber
Idenya bagus karena sebenarnya menghubungkan poligon dengan sesuatu yang nyata (nilai tanah). Tetapi bagaimana "menetapkan hasil itu" (yang mungkin berarti memilih semua poin dengan biaya kurang dari nilai tetap) menerjemahkan ke biaya kumulatif yang ditargetkan ? Selain itu, prosedurnya tidak "acak," tapi itu tidak masalah: orang dapat mengacak aspek-aspek dari kisi biaya sebelumnya sehingga hasilnya akan agak acak.
whuber
1

Jika Anda ingin menyelidiki opsi di luar ArcGIS, open source / SAGA GIS gratis berisi algoritma pertumbuhan wilayah, yang dijelaskan dalam makalah ini: http://downloads.sourceforge.net/saga-gis/gga115_03.pdf

http://www.saga-gis.org

johanvdw
sumber
Terima kasih banyak untuk ini. Sastra sangat berguna tetapi saya bertanya-tanya apakah sudah ada kode seperti itu di VBA dan ArcObjects.
Demetris
0

Anda dapat mencoba gdal_fillnodata .

EvilInside
sumber
Jawaban Anda ditandai dalam antrian ulasan sebagai berkualitas rendah karena panjang dan kontennya. Jika Anda menyarankan agar penanya pertanyaan ini harus menyelidiki perangkat lunak alternatif maka saya sarankan Anda mengedit jawaban Anda untuk memberikan rincian lebih lanjut tentang mengapa apa yang ia coba lakukan tidak akan berhasil dan mengapa apa yang Anda sarankan akan.
PolyGeo