Her ay tüm ilçe için QA / QC bazı sokak verilerine ihtiyacım var (47.000'den fazla kayıt). İlk adım, iki dosyayı karşılaştırmaktır. Şu anda, yaklaşık 5 yıl önce VBA aracılığıyla evde oluşturulan bir araç kullanıyorum. Çalışmalar iki dosyayı karşılaştırır ve birkaç faktöre (eklenen kayıtlar, silinen kayıtlar, adres değişiklikleri, şehir değişiklikleri, segment uzunluğu / köşe değişiklikleri) dayalı olarak farklılıkları geri raporlar. Daha sonra bunları tek tek şekil dosyalarına aktarıyorum. Ayrıca, araç çalışır, ArcGIS 9.3
ancak artık çalışmazArcGIS 10.1
Araç harika çalışıyor, ancak tamamlanması yaklaşık bir saat sürüyor.
Performansı hızlandırmak için bu aracı umutla geliştirmeye çalıştım. Ben de dahil olmak üzere çeşitli yöntemlerle inceledik Compare Feature Tool
ve Select by Location
.
Bu araçların her ikisi de çok daha hızlı çalışıyor, ancak ihtiyacım olan her şeyi yakalamıyorlar. Karşılaştığım en büyük sorun Compare Feature Tool
, karşılaştırılacak alanı seçemem. Segment_ID ile karşılaştırmam gerektiğinde varsayılan olarak ObjectID olur. Bunu seçmek için bir seçenek yok.
Açıkladığım gibi tam bir karşılaştırmaya nasıl ulaşılacağı konusunda iyi bir çözüm veya fikir var mı?
Nedense, ArcGIS RyanDalton'un yanıtı için denediğim birleşimi tanımıyor.
Fakat
Bir birleştirmenin tavsiyesini alarak, iki dosyaya eklenen kayıtları ve silinen kayıt farklarını nasıl bulacağımı anladım:
- Segment_ID alanı aracılığıyla Önceki Ay şekil dosyasına Geçerli Ay şekil dosyasına katılma
- Segment_ID IS NULL olduğunda bir tanım sorgusu gerçekleştirme
- Bunu yeni bir şekil dosyasına aktarma (Eklenen Özellikler)
Sonra birleşimleri tersine çevirir ve Silinmiş Özellikleri bulurum
Hala listelenen diğer farklılıkları bulmak için bir yol üzerinde çalışıyor ve daha sonra hepsini bir modelde diziyor.
Değişen tüm kayıtları, diğer veri kümesiyle aynı olan veri kümelerinden birinden konumlara göre seçim yaparak gerçekleştirebilirim. Daha sonra seçimi değiştiririm ve bana aynı olmayan tüm kayıtları verir.
Hepsini bir modele koyacağım ve umarım iyi de çalışır.