Cara mengidentifikasi poligon dengan kesalahan "flag" sliver


12

Bekerja di ArcMap, saya menemukan kesalahan dalam lapisan poligon yang akan saya sebut "flag sliver" (diambil dari bahasa serupa di parsel yang memanggil "flag lots"). Poligon sliver ini (lihat gambar di bawah) biasanya terdiri dari hanya satu simpul tambahan yang sengaja ditambahkan pengguna.

Pada gambar di bawah ini, "bendera" dan "tiang bendera" adalah salah satu fitur bagian tunggal di mana "tiang bendera" hanya tumpang tindih. Gambar di sebelah kiri memiliki total 5 node.

bendera sederhana masukkan deskripsi gambar di sini

Ketika dilihat sendiri kesalahannya sangat jelas, tetapi ketika beberapa poligon berdekatan, mereka hampir tidak mungkin untuk dilihat karena mereka tampaknya menjadi batas antara 2 poligon.

Ini kemungkinan terjadi karena mereka menggunakan editor berbasis shapefile, dan oleh karena itu saya tidak dapat menerapkan aturan pengeditan berbasis topologi untuk mencegah hal ini terjadi di masa depan.

Apakah ada yang punya cara untuk mengidentifikasi dan menyelesaikan jenis kesalahan ini? Saya lebih suka metode otomatis identifikasi dan resolusi karena pengguna lapangan adalah orang-orang yang membuat kesalahan, tetapi saya terjebak membersihkan setelah mereka. Terima kasih.


3
Saya bertanya-tanya mengapa Esri menyediakan aturan berpotongan tidak boleh untuk fitur garis, tetapi tidak untuk poligon.
Kirk Kuykendall

Apakah alat Periksa Geometri menemukannya?
mkennedy

Juga mencari di menjuntai dan melampaui. Keduanya memunculkan beberapa skrip, tapi tidak ada yang mutakhir dan banyak untuk polyline, bukan poligon.
mkennedy

Ryan, apakah mungkin bagi Anda untuk memasok sebagian dari data Anda? Juga, apakah Anda kebetulan menyelidiki komentar mkennedy tentang alat "Periksa Geometri"?
Allan Adair

Apa versi arcmap?
Kirk Kuykendall

Jawaban:


5

jika Anda memiliki akses ke alat Safe Fme Anda akan menemukan berguna transformator yang disebut spikeRemover, coba lihat. Anda dapat mencoba versi terbatas SAFE FME yang dapat diunduh atau memeriksa lisensi ArcGis Anda untuk "Ekstensi FME untuk ArcGIS"

http://docs.safe.com/fme/html/FME_Transformers/Default.htm#Transformers/spikeremover.htm

http://cdn.safe.com/resources/fme/FME-Transformer-Reference-Guide.pdf


Saya berhasil menggunakan SpikeRemover dalam ekstensi Intergis Data ArcGIS untuk membersihkan paku. Ini juga memiliki output yang memungkinkan Anda menentukan fitur yang tidak berubah, diubah, dan ditandai (paku). Semua ini sangat berguna dalam mengidentifikasi fitur yang memiliki lonjakan, dan membuat layer "spikeless" baru sangat mudah hanya dengan memposting output yang tidak berubah dan berubah ke layer yang sama, dan output "ditandai" ke layer QC untuk pemeriksaan lebih lanjut. esri.com/software/arcgis/extensions/datainteroperability/…
RyanKDalton

2

Saya tidak yakin di mana masalah Anda terjadi, atau di mana Anda memiliki kemungkinan untuk menghindari / memperbaikinya. Tapi saya sudah melihat ini banyak di SDE-database kami meskipun geometri di SDE harus selalu benar. Dalam kasus kami itu karena kami mengimpor shapefile menggunakan ArcObjects ke SDE. Ketika geometri disimpan mereka menjentikkan ke grid SDE dan dengan demikian menciptakan geometri yang salah dengan sliver yang Anda gambarkan ketika geometri memiliki lonjakan tipis. Ini karena shapefile memiliki presisi ganda penuh untuk koordinat dan SDE sebagai grid yang lebih kasar.

Solusi kami adalah untuk memperbaiki geometri ketika diimpor oleh:
1. Tetapkan referensi spasial geometri dari shapefile ke referensi spasial kelas fitur SDE yang sesuai
2. Pasang geometri ke referensi spasial (IGeometry.SnapToSpatialReference () )
3. Set ITopologicalOperator2.IsKnownSimple = false (penting, sederhanakan tidak melakukan apa-apa)
4. Lakukan beberapa operasi penyederhanaan. Untuk poligon kami menggunakan IPolygon.SimplifyPreserveFromTo ()


2

Dengan arcmap 9.3.1, saya akan menambahkan bidang yang disebut Bendera (atau mungkin FlagFlag?) Dan menggunakan kode VBA di kalkulator bidang untuk menghitung bidang ini.

Kode VBA akan meredupkan variabel sebagai ITopologicalOperator3 dan mengaturnya ke bidang Bentuk.

Itu kemudian akan memanggil metode IsSimpleEx tidak begitu sederhana .

Tetapkan nilai bidang Bendera ke esriNonSimpleEnum . Agaknya kesalahan yang Anda khawatirkan akan kembali esriNonSimpleSelfIntersections.

Dengan 10.0 mungkin ada cara untuk melakukan ini dengan python di kalkulator (?) ... Saya tidak yakin. Saya akan menggunakan perintah add-in. IMO Esri harus menyediakan dukungan untuk c # dalam bidang kalkulator. Lagi pula, kompiler c # diinstal sebagai bagian dari framework .NET.

Memperbarui

Kode yang saya poskan di sini mungkin menemukan kutub bendera jika Anda menerapkan ekspresi Definisi "Left_OID" = "Right_OID"ke polyeline yang dihasilkan.


1

Skrip Python ini adalah alat yang berguna

Hilangkan poligon sliver dari shapefile

"EliminateSlivers.py siklus melalui semua fitur dalam bentuk poligon dan menghapus yang dari bentuk keluaran yang jatuh di bawah batas area yang diberikan.

Operasi geoproses dan toleransi cluster dapat menghasilkan penumpukan poligon sliver ekstra kecil. Ini mungkin tidak ada artinya dan dapat merusak keandalan data spasial. "

Catatan: Anda harus menguji dengan toleransi yang berbeda dengan data Anda (mengambil salinan data Anda terlebih dahulu)

http://arcscripts.esri.com/details.asp?dbid=14672


1
Itu mudah dengan Cakupan ArcInfo> Clean Arcs> Build
Polygons

Saya tidak yakin alat ini akan menghilangkan kesalahan yang saya gambarkan. Soalnya, sliver (tiang bendera) dan badan utama poligon (bendera) sebenarnya adalah satu fitur. Karenanya skrip ini HANYA tidak akan menghapus bagian "tiang bendera" poligon tanpa menghapus seluruh fitur "bendera" pada saat yang sama.
RyanKDalton

1

Ryan,

Saya bekerja dengan kantor Survei Tanah, dan saya secara berkala memeriksa poligon tanah mereka. Apa yang saya lakukan diperiksa untuk sliver. Saya akan mengirim Featureeclass ke cakupan dan kemudian membangunnya untuk memberi label untuk mengidentifikasi kesalahan. Jika Anda melihat 2 label dalam satu poligon, itu adalah kesalahan. Jika satu label per poligon, Anda tahu itu benar. Saya akan membuat sebuah Featureeclass sebagai titik untuk menandai kesalahan. Atau Anda dapat memilih satu atau banyak label ke dalam kelas fitur baru. Dengan cara ini Anda dapat kembali dan memperbaiki kesalahan. Ini bekerja dengan baik untuk saya dengan poligon tanah. Saya menggunakannya untuk menginformasikan para ilmuwan tanah untuk memperbaiki masalah.

Itu hanya cara saya untuk mengidentifikasi masalah. Hanya berbagi itu denganmu.


1

Jika identifikasi bukan poin utama dan hanya perbaikan otomatis coba ini. Tambahkan data ke Dokumen Peta kosong baru, lalu;

  • Buat Topologi Peta
  • pilih semua fitur
  • gunakan fitur konstruk untuk membagi fitur yang ada

Saya telah menguji ini dan tampaknya berhasil tetapi saya tidak yakin apakah saya telah mereplikasi sumber data Anda secara tepat

Bersenang-senanglah, CDB


1

Di sini kita pergi ada beberapa cara untuk mengatasi hal ini dan menurut saya yang paling elegan adalah menggunakan Extension yang disebut GIS Data Reviewer . Peninjau data GIS memungkinkan Anda untuk membuat pemeriksaan yang disesuaikan dan disederhanakan pada akurasi spasial dan atribut selain Topologi inti. Di dalam Topologi ada hal-hal yang tidak tersedia yang merupakan bagian dari pemeriksaan standar untuk Data Reviewer Like

  • Penutupan 3D
  • Lubang Tidak Valid
  • Ekspresi SQL
  • Area kurang dari Referensi Spasial
  • Fitur pada Fitur
  • dan masih banyak lagi

Saya akan menggunakan ini untuk menginterogasi data Anda. Cara lain adalah membuat kelas fitur baru berdasarkan kelas fitur poligon yang ada. dan kemudian membuat kelas fitur Polygon baru dan mengisinya dengan garis menggunakan alat fitur konstruk di Topology Toolbar. Ini kemudian akan berarti bahwa sliver kemudian akan ditampilkan seperti itu dan alat topologi lainnya harus mengambil kesalahan. Maka itu adalah masalah memilih, menghapus dan mengganti fitur di kelas fitur yang ada.

Semoga ini bisa membantu, CDB

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.