Senin için neyin işe yarayabileceği hakkında bir fikrim var. Bazı varsayımlara dayanacaktır, ancak olası özdeş özellikler listenizin daraltılmasına yardımcı olacaktır. Bu otomatik bir işlem olmaz, ancak kopyalara manuel olarak bakılması gerekir. Yorumlara dayanarak, otomatik araçlar özellikleri karşılaştırmaz, bu yüzden özellikleri yanlışlıkla silmemenize yardımcı olur.
ArcMap Kullanımı
(1) İşlerin yanlış gitmesi durumunda şekil dosyanızın bir kopyasını oluşturun.
(2) Şekil dosyasına çift olarak bir sütun ekleyin.
(3) Yapabileceğiniz en açıklayıcı (en kesin) biçimi kullanarak her özellik için alan hesaplayın. Yuvarlamanın bir sorun olmayabileceği bir şey.
(4) Bu sütunda bir özet (özetle) çalıştırın. Özetle benzersiz bir tanımlayıcı seçtiğinizden ve hem önce hem de son olarak işaretlediğinizden emin olun.
(5) Çıktı tablonuzda, sayım alanının 1'den yüksek olduğu kayıtları arayın .
(6a) Özellikleri manuel olarak kontrol edin ve tekrarlayana kadar işlemi tekrarlayın.
(6b) Bu benzersiz kimliklerin bir listesini oluşturabilir ve özellikleri arcpy ile silebilirsiniz, ancak aynı alanda muhtemelen iki kimliği olmayan özelliğe sahip olma şansınız vardır.
ArcPy Kullanan Başka Bir Teknik
Yukarıdaki yanıtı oluştururken, bu verilerin birden çok yazarının bir şekilde çoğaltılmış özellikler için aynı benzersiz tanımlayıcıları kullanma olasılığını düşündüm. EĞER Eğer durum, sen arcpy içinde döngü aracılığıyla çiftleri bulmak mümkün olabilir.
Bunu ArcPy kullanarak yapmayı düşündüğüm, sisteminize vergilendirmek ve biraz zaman alabilir.
(1) Şekil dosyanızın bir kopyasını oluşturun (tekrar olması durumunda)
(2) Kopyaları belirtmek için yeni bir sütun ekleyin. 'Y' veya 'n' veya 0 veya 1 gibi bir şey veya işe yarayacak herhangi bir şey.
(3) Benzersiz tanımlayıcıyı saklamak için python'da bir liste oluşturun.
(4) Bir Güncelleme İmleci ( arcpy.UpdateCursor('LAYERNAME')
) çalıştırın . Her kayıt için, bu tanımlayıcıyı içerip içermediğini görmek için listenizi kontrol edin ve varsa sütununuzu kopyalar için işaretleyin.
myList = []
rows = arcpy.UpdateCursor("layername")
for row in rows:
if str(row.UniqueIdentifier) in myList:
#value duplicated
row.DuplicateColumnName = "y"
else:
#not there, add it
myList.append(row.UniqueIdentifier)
rows.updateRow(row)
(5) Ardından, işaretli sütunlarla istediğinizi karşılaştırabilir veya yapabilirsiniz.
Muhtemelen bu karşılaştırmaları yapmanın daha iyi yolları vardır, ancak bunlar işe ya da en azından başlamanız gerektiğine inandığım iki.
Düzenle
Elrobis'in yorumuna dayanarak, yanlış özellikleri kaldırma şansını daha da azaltmak için minimum sınırlayıcı dikdörtgeni kullanabilirsiniz.
ArcMap'i kullanarak Veri Yönetimi'nde Minimum Sınırlayıcı Geometri aracını çalıştırabilirsiniz . Seçenekleri kontrol ettikten sonra, CONVEX_HULL seçeneğini kullanmak muhtemelen en iyi olacağını düşünüyorum .
Eğer karşılaştırırsanız MBG_APodX / Y1 , MBG_APod_X / Y2 birlikte alanlarını MBG_Orientation çiftleri için, çoğaltılmış özellikleri bir fikir edinmek mümkün olmalıdır. Karşılaştırmak için yukarıda tarif ettiğim Özetle yöntemini kullanmanızı öneririm . Yinelenenleri bulmak için sınırlayıcı dikdörtgenin köşelerinden (koordinatlar) birini seçin. Birkaç tesadüfi 'eşleşme' elde edebilirsiniz, ancak diğer köşeleri artı yönlendirmeyi ekledikten sonra, sonuç özelliklerinin yinelenmesi oldukça güvenli bir bahis olacaktır.
Kullanmasam da ve bu araçtaki sonuçlardan tam olarak emin olmasam da, ArcMap'te Özet İstatistikler aracını kullandıysanız ortaya çıkan şekil dosyasını daha kolay inceleyebilirsiniz . Görünüşe göre, tek sütun seçeneğim yerine birden çok sütunu bu şekilde özetleyebilirsiniz.
Yinelenmeyen bir özelliği silme olasılığından endişe etmeden bunu yapmanın tamamen otomatik bir yolu olacağını sanmıyorum. Bu yöntemler, manuel olarak gözden geçirmeniz gereken özellik sayısını sınırlamaya yardımcı olmalıdır.