Çakışan çokgenler nasıl çözülür?


10

ArcGIS 9.3 çokgen özelliklerinin çözülmesi ile ilgili bir sorgu var. Sadece çıplak kemik lisansına ve son derece temel VB bilgisine sahibim.

Yaklaşık 4500 çokgen içeren büyük bir şekil dosyam var ve üst üste binenleri çözmenin herhangi bir yolu olup olmadığını bilmek istiyorum? Temelde bu katmanı ayrı alanlar içeren bir şekil dosyasına dönüştürmek istiyorum, böylece bir çokgenin kendi başına kaldığı halde birden çok çokgenin üst üste geldiği yerde 1'e çözülür, her bir ayrı alan kendi öznitelik kümesine sahiptir. Shapefile oldukça sık değişiyor ve şimdiye kadar hepsini geçiyor ve editör aracını kullanarak çakışan alanları manuel olarak çözüyorum ama eminim ki bunu yapmanın çok daha hızlı bir yolu var!

Bunun nasıl başarılabileceğine dair bir fikir var mı?


Çözme aracını kullanarak ve dışa aktarılan öznitelik tablosuna katılmadan geçirdim ve bu mükemmel çalışıyor! Çözme aracının yalnızca nitelikler üzerinde çalıştığını ve uzamsal konumda çalışmadığını düşündüm, bu yüzden bilmek son derece yararlı. Ayrıca ModelBuilder kodu


Harika cevaplar. Brad Nesom, orjinal öznitelik tablosu değerini çözünmüş şekil dosyasına nasıl alırsınız?
Gunnar

Yaptığın şeye ihtiyacım var ama çözme aracını çalıştırdığımda sadece şeklimdeki tüm özellikleri birleştirdi, bu yüzden çalışmıyor. Nasıl çalıştırdın?
Federico Gómez

Yanıtlar:


13

Bir şey eksik olabilirim, ancak temel Çözme aracı (veri yönetimi araç kutusunun herhangi bir yerinde) bunu sizin için yapmayacak mı? Artistik21'in cevabı gibi herhangi bir kodla uğraşmanıza gerek yok. Çözme aracını açmanız, özellik sınıfınızı seçmeniz, üzerinde çözülecek alanı seçmemeniz ve ardından 'Çok Parçalı poygons Oluştur' seçeneğinin işaretini kaldırmanız yeterlidir, aksi takdirde tüm polileriniz büyük bir çok parçalı poli haline gelecektir.

Şu anda önümde Arc yok, ancak sorunuzu doğru okuyorsam, bu yöntemi kullanmadan önce bunu yaptım. Buradaki tek endişe, tablodaki özelliklerdir. Verileri biliyorsunuz, bu nedenle aracın İstatistik Alanları bölümündeki her bir alanı nasıl birleştireceğinizi seçmeniz gerekecek.

Bu işlem çok sık yapılıyorsa veya otomatik olarak yapılmasını istiyorsanız, bunu model oluşturucu ile yapın ve bir komut dosyasına aktarın, ancak bu aracın doldurulması 10 saniye sürmelidir.


14

@Tom Parker - MWrenn doğru.
Çözülecek bir öznitelik seçme seçeneğiniz vardır. (Bu, öznitelik erimesi yapar) veya öznitelik yok (bu, uzamsal erime yapar).

istatistikleri ve taşımak istediğiniz özellikleri seçin. (bu istediğiniz gibi çalışmayacak).

seçenekleri

Çözünmeden önce. yeni bir alan oluşturun ve içine FID değerini hesaplayın.
Daha sonra özniteliklerinizin bir dbf'sini dışa aktarın ve daha sonra (çokgenlerle daha sonra tekrar birleştirebilirsiniz).

Bu konuda yardıma ihtiyacınız olursa bana bildirin, daha fazla ekran görüntüsü yayınlayacağım veya arcgis.com kaynak merkezinde yardım bulacağım.

Aşağıdaki ekran görüntüsünde fark ederseniz, ad çokgenlerin hepsinde aynıdır (9.3.1, arcmap'den doğru şekilde çözülmez gibi görünüyor). Arccatalog'dan deneyin.

artçı erimesi

Belki bir başkasının daha iyi bir yöntemi olabilir.

Düşünebildiğim diğer tek yol, konuma göre (birbiriyle kesişen çokgenler) seçmektir.
Bunları ayrı bir dosyaya aktarın ve sonra çözün.
Sonra her dosyayı çözdükten sonra serbest birleştirme katmanlarını kullanabilirsiniz (et-geo-sihirbazlarında)


4

Model Builder içinde bir model oluşturabilir ve komut dosyasını dışa aktarabilir, ardından bu komut dosyasını ArcMap vba içindeki bir UIButtonControl öğesine kopyalayıp yapıştırabilirsiniz. Aşağıdaki komut dosyası örneğine bakın.

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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.