Menghapus fitur duplikat dengan geometri yang sama di ArcMap?


15

Apakah mungkin untuk mengidentifikasi secara unik setiap geometri dalam lapisan fitur?

Pada dasarnya saya memiliki lapisan fitur poligon dengan banyak baris data yang diwakili oleh geometri yang sama. Saya ingin 1 baris untuk setiap geometri yang unik. Jadi saya mencari beberapa metodologi out-of-box untuk menggabungkan atribut berdasarkan bentuk geometri.

Saya berasal dari dunia Postgres dan dapat memecahkan masalah ini di sana, tetapi saya tidak tahu bagaimana melakukannya (atau jika memungkinkan) untuk melakukannya secara non-programatis dengan alat ESRI.


Jadi Anda mengatakan bahwa ada beberapa rekaman geometri identik dan Anda ingin menggabungkan yang identik? Jika itu masalahnya ... bisakah Anda membubarkan berdasarkan area atau sesuatu seperti itu? Mungkin saya melewatkan pertanyaan Anda di sini.
Clickinaway

Itu benar, mereka adalah geometri identik di mana satu-satunya atribut alami bersama adalah geometri itu sendiri. Area mungkin berfungsi, tetapi tidak ada jaminan bahwa dua geometri yang berbeda tidak memiliki area yang sama.
Dylan Hettinger

Lihat posting saya. Anda dapat menjalankan pembubaran pada beberapa bidang.
Paul

@ Paul .... Saya melihat Anda mengedit respons Anda untuk mencerminkan input saya. Saya harap itu membantu.
Clickinaway

Jawaban:


22

Jika Anda memiliki lisensi lanjutan, Anda dapat menggunakan Find Identical atau Delete Identical .

Keduanya dapat digunakan untuk menemukan / menghapus fitur yang memiliki atribut identik, atau, jika bidang Bentuk ditentukan, geometri identik.

Jika Anda tidak memiliki lisensi lanjutan, posting ini akan bermanfaat.

Singkatnya, Anda menambahkan dua bidang untuk X, Y di tabel atribut Anda dan menjalankan Larutkan pada bidang tersebut.

Jika Anda memiliki poligon yang memiliki pusat massa yang sama, tetapi tidak identik secara geometris, Anda bisa menambahkan dua bidang lainnya (Perimeter dan Area). Itu harus cukup untuk mengidentifikasi geometri yang identik untuk hampir semua kasus normal. Lihat komentar @ whuber di bawah ini.


Itu anggapan data titik benar? Saya telah berpikir untuk menyarankan untuk membuat centroid terlebih dahulu. Dia masih mengatakan ada banyak baris dari geometri yang sama ... Hampir terdengar seperti mengklasifikasikan berdasarkan kelas / rentang acreage? Tetapi ia juga mengatakan bentuk geometri ... itulah sebabnya saya condong ke arah pembubaran berdasarkan luas atau keliling (atau kombinasi keduanya untuk mendapatkan rasio).
Clickinaway

1
Sebenarnya, postingan yang saya tautkan adalah untuk poligon. Anda bisa larut pada area dan centroid, jika Anda memiliki dua poligon tidak identik dengan centroid yang sama.
Paul

+1 Ini adalah jawaban yang tepat. Pada prinsipnya centroid, perimeter, dan area mungkin masih belum secara unik mengidentifikasi poligon, tetapi contoh tandingannya sedikit dibuat-buat. Untuk hashing objek tidak teratur atau alami atau digital ke id unik, keempat nilai harus dapat diandalkan. Jika Anda ingin beberapa nilai yang lebih mudah diperoleh, gunakan koordinat kotak pembatas fitur dan jumlah verteksnya.
whuber

@whuber Akan membandingkan koordinat semua simpul menjadi satu-satunya cara jitu untuk menentukan geometri yang identik? Latar belakang saya dalam geometri cukup lemah, jadi saya menemukan ini semua sangat menarik.
Paul

Jawaban untuk pertanyaan Anda tergantung pada apa yang Anda maksud dengan "identik": misalnya, jika Anda harus memasukkan titik baru di sepanjang tepi poligon, apakah itu poligon "identik" atau tidak? Bisa dibilang itu dalam arti mewakili fitur yang sama di dunia, meskipun simpulnya berbeda. Dari sudut pandang ini tentang satu-satunya tes pasti adalah apakah (set theoretic) perbedaan dari dua poligon kosong atau tidak. Tetapi jika Anda mengambil pandangan yang lebih ketat bahwa identitas berarti pencocokan titik-ke-titik, itu masih rumit, karena satu poligon dapat memulai daftar titik pada titik yang berbeda.
whuber

1

Saya memiliki dataset berdasarkan data survei. Masalah saya adalah bahwa fitur lama tidak selalu dihapus sebelum cuplikan survei baru diimpor. Oleh karena itu kami memiliki 'duplikat' dengan geometri yang berbeda: Yaitu, hasil survei mungkin terpisah 1/4 kaki satu sama lain. Pada set data 12.000 fitur ini sulit untuk memperbesar masing-masing dan mengidentifikasinya. Menggunakan ArcMap Basic 10.2: inilah model peretasan yang saya buat.

  1. Buffer (w / input radius) setiap fitur di layer asli (Dipilih atau Tidak)
  2. Ulangi setiap fitur dalam lapisan buffer
  3. Pilih dari lapisan asli berdasarkan hubungan (fitur Centroid w / in)
  4. "Jumlah baris" fitur yang dipilih
  5. Bidang Hitung Nilai penghitungan baris ke lapisan penyangga = Berapa banyak fitur dalam radius fitur asli

Saya menemukan kembali roda. Juga, saya merasa frustrasi dengan pembangun Model dan pada dasarnya bulldogged semuanya. Harus ada solusi yang lebih elegan. Saya dengan senang hati akan menerima kritik dan saran.

Selain itu, ini tampaknya hanya berjalan dengan benar dari dalam Model Builder, saya menjalankan dari kotak peralatan dan tidak menyimpan lapisan buffer.

Temukan Duplicate Featuers


1

Saya telah mencari jawaban untuk pertanyaan yang sama untuk beberapa waktu untuk mengatasi perataan masalah buffer poligon yang tumpang tindih dan berpikir menemukan solusi yang kuat untuk itu. Sebenarnya @ komentar Whuber,

Pada prinsipnya centroid, perimeter, dan area mungkin masih belum secara unik mengidentifikasi poligon, tetapi contoh tandingannya sedikit dibuat-buat.

pada @ jawaban Paul adalah dorongan utama bagi saya untuk terus berusaha. Ini menggunakan operator ARE_IDENTICAL_TO alat Spatial Join alat karena ini adalah yang paling efisien di antara detektor identik lainnya. Berikut langkah-langkahnya:

  • Menyatukan input Anda untuk menjaga semua bentuk berbeda dari satu sama lain;
  • Buat bidang boneka untuk menyimpan / menyalin baris asli OBJECTID (yaitu, jenis bidang OID), katakan EX_OID ;
    • Jalankan Spasial Gabung pada kelas fitur yang ingin diproses sebagai parameter fitur target dan gabung. Pastikan pemetaan bidang bidang boneka (muncul dua kali) yang sebelumnya dibuat memiliki aturan penggabungan FIRST (yang merupakan default atau pilih TERAKHIR, yang lain mungkin tidak memberikan output yang diinginkan karena mereka menggunakan ringkasan tumpang tindih). Langkah ini memilih bentuk umum OBJECTID yang duduk di atas semua yang tumpang tindih (yaitu, PERTAMA);

Langkah-langkah berikut dapat dilakukan dengan dua cara, DENGAN Python atau TANPA:

DENGAN PYTHON

  • Gunakan kode di bawah ini untuk mengekstrak ID unik yang ingin kami temukan:

print tuple(set([row.getValue("EX_OID_1") for row in arcpy.SearchCursor("Output_of_the_Spatial_Join_Operation")])).

Ketahuilah bahwa saya menggunakan salinan kedua bidang OID dummy, yaitu EX_OID_1 dalam kasus saya;

  • Salin output dari kode ini dan tempel ini ke dalam Query Definisi dari kelas fitur asli yang diproses sebagai OBJECTID IN (<PASTE_COPIED_VALUES_HERE>). Hasilnya akan menunjukkan kepada Anda fitur terpadu dari bagian yang tumpang tindih. Ada batasan ukuran di sini, 30.000 karakter. Untuk mengatasi masalah ini, Anda harus mengikuti langkah "tanpa python".

TANPA PYTHON

  • Gunakan alat Frekuensi untuk mencantumkan nilai unik di salinan kedua bidang OID dummy, yaitu EX_OID_1 dalam kasus saya;

  • Terakhir, Gabung bidang OBJECTID dari kelas fitur asli dengan output dari EX_OID_1 alat Frekuensi dengan memilih opsi "Simpan hanya catatan yang cocok".

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.