Menghitung dan meraster tumpang tindih poligon di ArcGIS Desktop?


17

Bagaimana Anda mengambil layer vektor dengan poligon yang tumpang tindih dan mengubahnya menjadi raster di mana setiap sel menghitung jumlah poligon yang mengandung sel itu?

Kami sedang melihat poligon area kebakaran antara tahun 1976 hingga 2000 dan ingin melihat berapa banyak api yang terkandung dalam setiap sel raster.

Jawaban:


22

Lakukan ini dalam tiga langkah: pisahkan poligon menjadi bagian-bagian komponennya, hitung tumpang tindih, dan ubah menjadi raster. Ini menghindari potensi biaya komputasi yang besar untuk mengubah setiap poligon menjadi raster secara terpisah dan menggabungkan raster-raster tersebut.

  1. Union(dalam Geoprocessingmenu) memecah poligon menjadi bagian-bagiannya.

    Sayangnya, setiap tumpang tindih digandakan dalam output: ia memiliki satu salinan identik untuk setiap poligon asli yang menutupinya. Karena itu

  2. Dissolve(lagi di Geoprocessingmenu) akan menggabungkan bagian yang tumpang tindih, asalkan Anda dapat menemukan cara untuk mengidentifikasi mereka secara unik. Baca melalui dialog: menjelang akhir, Anda akan memiliki opsi untuk menghitung "statistik." Pilih bidang apa saja yang mungkin telah mengidentifikasi poligon asli dan minta hitungan.

    Dalam banyak kasus, kombinasi area poligon dan perimeter akan secara unik mengidentifikasi bagian-bagiannya. Jika tidak, Anda dapat menambahkan lebih banyak properti geometris di bidang tambahan, seperti koordinat centroid, hingga Anda memiliki akumulasi informasi yang cukup untuk membedakan setiap fitur.

    Lapisan yang dihasilkan memiliki satu fitur untuk setiap tumpang tindih poligon dan beberapa jenis "menghitung" bidang menghitung jumlah tumpang tindih.

  3. Konversikan ke raster, menggunakan bidang "count" untuk atribut.


Misalnya, berikut adalah beberapa poligon yang tumpang tindih dan pengenalnya dengan tabel atribut yang ditunjukkan:

masukkan deskripsi gambar di sini

Setelah langkah kedua kami memiliki satu catatan untuk setiap wilayah yang tumpang tindih bersama dengan hitungan yang sudah dapat digunakan untuk melambangkan jumlah tumpang tindih:

masukkan deskripsi gambar di sini

Sisanya mudah - dan itu hanya operasi rasterisasi tunggal .


Metode vektor ini bekerja sangat baik juga, kecuali bila diterapkan pada ratusan ribu poligon dengan banyak tumpang tindih pada komputer dengan memori terbatas ...
ccn

@ccn Ketika ada lebih banyak poligon daripada yang bisa ditangani ArcGIS, pisahkan dataset menjadi beberapa bagian yang bisa diproses. Hasilnya akan menjadi beberapa raster - tetapi tidak ribuan atau jutaan dari mereka - yang kemudian langsung dijumlahkan. Keuntungan lain dari penggunaan Unionadalah bahwa dengan alur kerja yang hampir sama dapat mengatasi situasi di mana poligon berada dalam beberapa dataset (yang biasanya merupakan desain basis data yang buruk tetapi sayangnya umum): seseorang hanya menyatukan semua set data input sekaligus.
whuber

@ccn (Lanjutan) poin yang Anda bawa turun ke ini: kapan lebih baik untuk meraster poligon dan menggunakan operasi raster untuk menggabungkannya dibandingkan dengan menggunakan operasi vektor ( union) diikuti oleh rasterisasi? Pengoperasian vektor akan macet ketika fitur-fitur tersebut didigitalkan dengan lebih detail daripada yang dibutuhkan, sehingga mereka memiliki terlalu banyak simpul. Dalam keadaan yang ekstrem ini pendekatan raster bisa lebih baik (walaupun pertama-tama menyederhanakan poligon mungkin merupakan opsi yang unggul). Namun, dalam semua situasi lain, meraster setiap poligon secara terpisah adalah pemborosan besar waktu komputer dan manusia.
whuber

1
+1 untuk solusi berbasis vektor. Untuk menempatkan hal-hal dalam perspektif di sini, membakar data perimeter tidak pernah sangat besar. Misalnya, seluruh dataset membakar perimeter MTBS (AS termasuk Alaska) untuk 1984 - 2010 berisi ~ 19.000 poligon. Entah pendekatan berbasis vektor atau raster akan berfungsi dengan baik.
Aaron

@ Harun Terima kasih atas perspektifnya. Untuk melakukan USA kontroversial sekaligus pada resolusi yang masuk akal (misalnya, 100m) Anda akan perlu, katakanlah, raster 50000 kolom dan 30000 baris yang mengandung 1.500.000.000 sel. Menghasilkan 19.000 raster seperti itu - bahkan terhitung untuk kompresi bawaan - dan kemudian melakukan 19.000 * 1500000000 = sekitar 30000 miliar penambahan - akan membutuhkan waktu yang cukup lama! Jika sebaliknya setiap poligon yang digunakan, katakanlah, 100 simpul (yang sangat rinci), serikat pekerja melibatkan 1.900.000 simpul dan merupakan operasi O (n log (n)); pada prinsipnya (tetapi tidak dalam ArcGIS :-) yang membutuhkan waktu kurang dari 1 detik.
whuber

1

Posting berikut memiliki pertanyaan yang agak mirip sehingga Anda dapat menemukan solusi terkait: Membuat permukaan raster yang tumpang tindih dari vektor poligon shapefile? .

Untuk pendekatan raster yang cepat secara komputasional dan sederhana ini, Anda perlu (1) memisahkan poligon yang tumpang tindih menjadi beberapa layer terpisah (mungkin berdasarkan tahun untuk poligon api) menggunakan Select By Attributes di ModelBuilder dengan iterator atau alat skrip, (2) mengkonversi masing-masing Polygon to Raster dengan penetapan sel MAXIMUM_COMBINED_AREA (memastikan ukuran sel yang sama , snap raster , dan sejauh mana tetap sama dengan seluruh rangkaian poligon) - menggunakan nilai bidang konstan (misalnya menggunakan bidang tahun atau baris yang memiliki semua 1s) untuk mengonversi (lagi gunakan ModelBuilder dengan iterator atau skrip Python untuk membantu mengotomatisasi), dan kemudian (3) menerapkan alat Analis Tata Ruang berikut: Statistik Sel - gunakan VARIETT statistik_type jika setiap raster memiliki nilai unik seperti tahun atau SUM jika semua nilai sel raster adalah 1s - pastikan untuk memeriksa untuk mengabaikan NoData.

Raster perantara (dari konversi sebelumnya) dapat dihapus atau siap digunakan dalam analisis raster berikutnya.


(Silakan lihat komentar saya untuk jawaban Harun .)
whuber
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.