ArcGIS for Desktop kullanarak şekil dosyaları arasındaki farkları mı buldunuz?


12

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.3ancak 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 Toolve 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:

  1. Segment_ID alanı aracılığıyla Önceki Ay şekil dosyasına Geçerli Ay şekil dosyasına katılma
  2. Segment_ID IS NULL olduğunda bir tanım sorgusu gerçekleştirme
  3. 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.

Yanıtlar:


11

İle, Compare Feature Toolsadece iletişim kutusunda sıralama alanıSegment_ID olarak alanınızı seçmelisiniz .

Girdi Tablosu ve Giriş Sınama Tablosundaki kayıtları sıralamak için [sıralama] alanı veya alanları [kullanılır]. Kayıtlar artan sırada sıralanır. Hem Giriş Tabanı Özelliklerinde hem de Giriş Testi Özelliklerinde ortak bir alana göre sıralama, her bir giriş veri kümesinde aynı satırı karşılaştırmanızı sağlar.

Eğer çıkış tablosunun bir parçası olarak SEGMENT_ID alanını elde etmek isteyen vardır, çıkış katılmayı dene Compare Featurekaynağınla tablo Test Tableüzerinde cf.Object_ID=tt.Object_ID, ardından SEGMENT_ID katıldı tabloyu dışarı ihracat.

Daha kolay tekrarlanabilirlik için bunu kolayca bir modele koyabilirsiniz.


Bunu yaptım, ancak karşılaştırma aracı ile oluşturulan tablo Segment_ID alanı (ki benzersiz tanımlayıcı) içermez. Bunun yerine, bana gerçekten iyi gelmeyen objectID'yi listeliyor.
Craig

Cevabım Segment_ID, çıktı tablonuza girmeyi yansıtacak şekilde güncellendi .
RyanKDalton

birleştirme eklemek ArcMap'in her seferinde çökmesine neden olur. Çizim tahtasına geri dön.
Craig

1

Deneyimlerime göre Feature Compare, segment_id Sıralama Alanı olarak seçilse bile karşılaştırmanın temeli olarak her zaman FID veya ObjectID kullanır. Shapefile FID'leri geri dönüştürülür (yeniden sıralanır), bu nedenle birkaç düzenlemeden sonra, tüm FID'ler karşılık gelen coğrafyaları için farklı olmasa bile birçoğu düzenlenir. Böylece "gerçek" özellik karşılaştırma hatası olacaktır. GeoDatabase veya GISquirrel'den bir ObjectID kullanıyorsanız, kimlikler geri dönüştürülmez ve bu araca güvenebilirsiniz. Veritabanlarını belirli bir süre boyunca tacklenmiş halde tutmalısınız, böylece ObjectIds hiçbir zaman yeniden sıralanmaz.

GP aracı yardımındaki Alanı Sırala açıklaması ne olursa olsun ÇOK yanıltıcıdır. Karşılaştırma temeli segment_ID olabilirse bu araç çok büyük olur.

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.