Bagaimana cara melarutkan poligon yang tumpang tindih?

10

Saya punya pertanyaan tentang pembubaran fitur poligon di ArcGIS 9.3. Saya hanya memiliki lisensi tulang kosong dan pengetahuan VB yang sangat mendasar.

Saya memiliki shapefile besar dengan sekitar 4.500 poligon dan saya ingin tahu apakah ada cara membubarkan yang tumpang tindih? Saya pada dasarnya ingin mengubah layer ini menjadi shapefile yang berisi area terpisah, jadi di mana satu poligon itu sendiri akan tetap tetapi di mana beberapa poligon tumpang tindih mereka larut menjadi 1, dengan masing-masing area terpisah memiliki set atribut sendiri. Perubahan shapefile cukup sering dan sampai sekarang saya telah melalui semuanya dan secara manual melarutkan area yang tumpang tindih menggunakan alat editor tapi saya yakin ada cara yang jauh lebih cepat untuk melakukannya!

Adakah wawasan tentang bagaimana hal ini dapat dicapai?


Saya sudah mencoba menggunakan alat bantu dan bergabung dengan tabel atribut yang diekspor dan ini berfungsi dengan baik! Saya pikir alat larut hanya bekerja pada atribut dan bukan lokasi spasial sehingga itu sangat berguna untuk diketahui. Juga kode ModelBuilder

PolyGeo
sumber
Jawaban yang bagus Brad Nesom, bagaimana Anda mendapatkan nilai tabel atribut asli ke shapefile terlarut?
Gunnar
Saya membutuhkan apa yang Anda lakukan tetapi ketika saya menjalankan alat larut itu hanya menggabungkan semua fitur dia dalam bentuk saya sehingga tidak berfungsi. Bagaimana Anda membuatnya berjalan?
Federico Gómez

Jawaban:

13

Saya mungkin melewatkan sesuatu, tetapi bukankah alat dasar Melarutkan (di suatu tempat di kotak alat manajemen data) melakukan ini untuk Anda? Tidak perlu dipusingkan dengan kode apa pun seperti dalam jawaban artwork21. Cukup buka alat bubar, pilih kelas fitur Anda, jangan pilih bidang apa pun untuk dibubarkan, dan hapus centang 'Buat poygon multi-bagian' jika tidak semua poly Anda akan menjadi satu poli multi-bagian besar.

Saya tidak memiliki Arc di depan saya sekarang, tetapi jika saya membaca pertanyaan Anda dengan benar, saya sudah melakukan ini sebelum menggunakan metode ini. Satu-satunya perhatian di sini adalah atribut dalam tabel. Anda tahu datanya, jadi Anda harus memilih cara menggabungkan setiap bidang di bagian Bidang Statistik alat.

Jika proses ini dilakukan sangat sering atau Anda ingin melakukannya secara otomatis, maka lakukan ini dengan pembuat model dan ekspor ke skrip, tetapi alat ini akan membutuhkan waktu 10 detik untuk mengisinya.

MWrenn
sumber
14

@ Tom Parker - MWrenn benar.
Anda memiliki opsi untuk memilih attibute untuk dibubarkan. (Ini akan melakukan pembubaran atribut) atau tidak atribut (ini akan melakukan pembubaran spasial).

pilih statistik dan atribut apa pun yang ingin Anda bawa. (Ini tidak akan bekerja seperti yang Anda inginkan).

pilihan

Sebelum melakukan pembubaran. buat bidang baru dan hitung FID ke dalamnya.
Kemudian ekspor dbf dari atribut Anda dan Anda dapat (bergabung kembali dengan poligon sesudahnya).

Jika Anda butuh bantuan dengan ini, beri tahu saya dan saya akan memposting tangkapan layar lainnya atau mencari bantuan di pusat sumber daya arcgis.com.

Jika Anda perhatikan pada screenshot berikut, namanya sama di semua poligon (9.3.1 tampaknya tidak larut dengan benar dari arcmap). Cobalah dari arccatalog.

setelah larut

Mungkin orang lain akan memiliki metode yang lebih baik.

Satu-satunya cara lain yang bisa saya pikirkan adalah memilih berdasarkan lokasi (poligon yang saling berpotongan).
Ekspor mereka ke file yang terpisah dan kemudian larutkan.
Kemudian setelah Anda mendapatkan setiap file dibubarkan, Anda bisa menggunakan lapisan gabungan gratis (di et-geo-wizards)

Brad Nesom
sumber
4

Anda dapat membuat model dalam Model Builder dan mengekspor skrip, lalu salin dan tempel skrip itu ke UIButtonControl dalam ArcMap vba. Lihat contoh skrip di bawah ini.

Private Sub Dissolve_Click()

' Create the Geoprocessor object
set gp = CreateObject("esriGeoprocessing.GPDispatch.1")

' Load required toolboxes...
gp.AddToolbox "C:/Progra~1/ArcGIS/ArcToolbox/Toolboxes/Data Management Tools.tbx"

' Local variables...

Dim test_shp as string

test_shp = "C:\Temp\test.shp"
Output_Feature_Class = "C:\Temp\test_Dissolve.shp"

' Process: Dissolve...
gp.Dissolve_management test_shp, Output_Feature_Class, "", "", 
  "MULTI_PART", "DISSOLVE_LINES"

End Sub
artwork21
sumber