Salah satu tugas saya untuk bekerja adalah membagi paket menjadi beberapa kelompok. Grup-grup ini akan digunakan oleh agen untuk berbicara dengan pemilik properti. Tujuannya adalah untuk memudahkan pekerjaan agen dengan mengelompokkan paket yang berdekatan satu sama lain, serta membagi paket menjadi jumlah yang sama sehingga pekerjaan didistribusikan secara merata. Jumlah agen dapat berfluktuasi dari pasangan menjadi 10+.
Saat ini saya melakukan tugas ini secara manual, tetapi ingin mengotomatiskan proses jika memungkinkan. Saya telah menjelajahi berbagai alat ArcGIS, tetapi sepertinya tidak ada yang sesuai dengan kebutuhan saya. Saya mencoba skrip (dalam python) yang menggunakan near_analysis
dan memilih poligon, tetapi ini agak acak dan membutuhkan selamanya untuk mencapai hasil semi-benar yang kemudian membutuhkan saya lebih lama untuk memperbaikinya daripada jika saya hanya melakukan semuanya secara manual dari awal.
Apakah ada metode yang dapat diandalkan untuk mengotomatisasi tugas ini?
Contoh hasil (semoga tanpa pembagian yang kita lihat berwarna kuning):
sumber
Jawaban:
Set asli:
Buat pseudo-copy (seret CNTRL di TOC) dari itu dan buat spasial satu dengan banyak orang dengan klon. Dalam hal ini saya menggunakan jarak 500m. Tabel output:
Hapus catatan dari tabel ini tempat PAR_ID = PAR_ID_1 - mudah.
Iterasi melalui tabel dan hapus rekaman di mana (PAR_ID, PAR_ID_1) = (PAR_ID_1, PAR_ID) dari semua catatan di atasnya. Tidak mudah, gunakan acrpy.
Hitung centroid tangkapan (UniqID = PAR_ID). Mereka adalah node atau jaringan. Hubungkan mereka dengan garis menggunakan tabel bergabung spasial. Ini adalah topik terpisah yang pasti dibahas di suatu tempat di forum ini.
Script di bawah ini menganggap bahwa tabel node terlihat seperti itu:
di mana MUID berasal dari bidang, P2013 adalah bidang untuk diringkas. Dalam hal ini = 1 untuk penghitungan saja. [rcvnode] - output skrip untuk menyimpan ID grup sama dengan NODEREC dari node pertama dalam grup / cluster yang ditentukan.
Tautan struktur tabel dengan bidang-bidang penting yang disorot
Times menyimpan link / edge weight, yaitu biaya perjalanan dari node ke node. Sama dengan 1 dalam hal ini sehingga biaya perjalanan ke semua tetangga adalah sama. [fi] dan [ti] adalah nomor urut dari node yang terhubung. Untuk mengisi tabel ini, cari di forum ini tentang cara menetapkan dari dan ke simpul yang akan ditautkan.
Script disesuaikan untuk meja kerja saya sendiri mxd. Harus dimodifikasi, hardcoded dengan penamaan bidang dan sumber Anda:
TEMUKAN LAPANG NODES
DAPATKAN LAPIS LINKS
Contoh output untuk 6 grup:
Anda akan memerlukan paket situs NETWORKX http://networkx.github.io/documentation/development/install.html
Script mengambil jumlah cluster yang diperlukan sebagai parameter (6 pada contoh di atas). Ia menggunakan tabel simpul dan tautan untuk membuat grafik dengan bobot / jarak tepi perjalanan yang sama (Times = 1). Itu mempertimbangkan kombinasi semua node dengan 2 dan menghitung total [P2013] dalam dua kelompok tetangga. Ketika rasio yang diperlukan tercapai, misalnya (6-1) / 1 pada iterasi pertama, dilanjutkan dengan target rasio yang dikurangi, yaitu 4, dll. Hingga 1. Titik awal sangat penting, jadi pastikan simpul 'ujung' Anda berada di atas dari tabel node Anda (pengurutan?) Lihat 3 grup pertama dalam contoh output. Ini membantu untuk menghindari 'pemotongan cabang' di setiap iterasi berikutnya.
Kustomisasi skrip untuk bekerja dari mxd:
sumber
Anda harus menggunakan alat "Analisis Kelompok" untuk mencapai tujuan Anda. Alat ini adalah alat yang hebat dari kotak alat "statistik spasial" seperti yang ditunjukkan oleh @ phloem. Namun Anda harus menyesuaikan alat untuk beradaptasi dengan data dan masalah Anda. Saya membuat skenario serupa seperti yang Anda posting dan mendapatkan respons yang dekat dengan tujuan Anda.
Petunjuk: Menggunakan ArcGIS 10.2, ketika saya menjalankan alat, ia mengeluh tentang paket python yang hilang, "enam". Jadi, pastikan Anda memilikinya diinstal terlebih dahulu Tautan
Langkah:
Anda kalkulator bidang untuk menetapkan 1 ke bidang ini untuk semua baris. ubah saja satu baris menjadi 2.
Tetapkan parameter alat "Analisis Kelompok" seperti ini:
coba ubah parameter "Jumlah Tetangga" sesuai kebutuhan Anda.
Snapshots Hasil:
sumber
pada dasarnya Anda menginginkan metode pengelompokan ukuran yang sama, sehingga Anda dapat mencari dengan kata-kata kunci ini di web. Bagi saya, ada jawaban yang bagus pada stats.SE dengan implementasi Python di salah satu jawaban. Jika Anda terbiasa dengan arcpy Anda harus dapat menggunakannya dengan data Anda.
Pertama-tama Anda perlu menghitung X dan Y dari centroid poligon Anda, kemudian Anda dapat memasukkan koordinat ini dalam skrip dan memperbarui tabel atribut mereka menggunakan kursor .da.
sumber
Hai, di sana saya punya masalah yang sama seperti ini sebelumnya, jadi saya sudah memberikannya, tidak pernah memulai lagi, tetapi hanya di sisi pencuri yang saya pikirkan
BENTUK INPUT
Saya berpikir Anda bisa membuat jala pada bentuk input
jala dengan irisan bentuk input Anda akan
Anda kemudian dapat menghitung luas bidang-bidang ini di dalam poligon yang baru diproses
Di awal skrip Anda, area memasukkan poligon / jumlah yang sama dengan ukuran yang diinginkan
Anda kemudian akan membutuhkan cara untuk menghubungkan paket sehingga mereka menyadari yang berbatasan.
Kemudian Anda bisa pergi melalui kursor baris dari menyimpulkan paket
Peraturan sedang
* Ini berbagi perbatasan ke satu musim panas yang lalu * Itu belum dijumlahkan * Setelah melampaui nilai yang dihitung sebagai area yang sama, itu akan mundur dan ini akan menjadi grup * Proses akan mulai lagi * grup terakhir bisa menjadi jumlah paket yang tersisa
Saya pikir membangun hubungan antara paket mungkin menjadi hal yang rumit tetapi setelah ini selesai saya pikir itu mungkin untuk mengotomatiskannya
sumber
Saya percaya ekstensi yang Anda cari adalah Districting. Ini biasanya digunakan untuk pemilihan umum tetapi juga untuk wilayah waralaba dengan ukuran yang sama. (Ukuran tidak selalu berarti untuk area, itu bisa berupa demografi apa pun)
http://www.esri.com/software/arcgis/extensions/districting
http://help.arcgis.com/en/redistricting/pdf/Districting_for_ArcGIS_Help.pdf
sumber
Ini adalah solusi saya untuk event point. Tidak ada jaminan itu akan selalu berhasil ...
sumber
Anda harus membuat Network Dataset terlebih dahulu menggunakan jalan-jalan Anda. Saya telah mencoba metode yang diusulkan ini dan sejauh ini lebih beruntung melakukan hal yang sama dengan Pengelompokan (langkah 3) dengan sendirinya, menggunakan koordinat X, Y dan k-means untuk bidang input (tidak sempurna, tetapi lebih cepat dan lebih dekat dengan apa yang saya lakukan) membutuhkan). Saya terbuka untuk komentar dan umpan balik orang lain.
sumber