Trovare differenze tra i file di forma usando ArcGIS per desktop?


12

Ogni mese devo QA / QC alcuni dati sulle strade per un'intera contea (oltre 47.000 record). Il primo passo è confrontare i due file. Attualmente sto usando uno strumento che è stato creato internamente tramite VBA circa 5 anni fa. Funziona confronta i due file e riporta le differenze sulla base di alcuni fattori (record aggiunti, record eliminati, cambi di indirizzo, cambiamenti di città, cambiamenti di lunghezza / vertici del segmento). Esporto quindi questi in singoli shapefile. Inoltre, lo strumento funziona ArcGIS 9.3ma non funzionerà piùArcGIS 10.1

Lo strumento funziona alla grande, ma il completamento richiede circa un'ora.

Ho iniziato a lavorare su come sperare di migliorare questo strumento per accelerare le prestazioni. Ho esaminato una varietà di metodi tra cui il Compare Feature Toole Select by Location.

Entrambi questi strumenti funzionano in modo significativamente più veloce, tuttavia, non sembrano catturare tutto ciò di cui ho bisogno. Il grosso problema che ho con il Compare Feature Toolè che non posso scegliere su quale campo confrontare. L'impostazione predefinita è ObjectID quando ho bisogno di confrontare da Segment_ID. Non esiste un'opzione per selezionarlo.

Qualcuno ha una buona soluzione o idee su come ottenere un confronto completo come ho descritto?


Per qualche motivo, ArcGIS non sta riconoscendo il join che sto tentando in base alla risposta di RyanDalton.

Ma

Seguendo il consiglio di un join ho capito come trovare i record aggiunti e le differenze nei record eliminati nei due file:

  1. Unire il file di forma del mese precedente al file di forma del mese corrente tramite il campo Segment_ID
  2. Esecuzione di una query di definizione in cui Segment_ID È NULL
  3. Esportarlo in un nuovo shapefile (funzionalità aggiunte)

Quindi invertire i join e trovare le funzionalità eliminate

Sto ancora lavorando su un modo per trovare le altre differenze elencate e poi metterle tutte insieme in un modello.


Posso trovare tutti i record che sono stati modificati eseguendo una selezione per record di posizione da uno dei set di dati identici all'altro set di dati. Poi cambio la selezione e mi dà tutti i record che non sono identici.

Metterò tutto in un modello e speriamo che funzioni altrettanto bene.

Risposte:


11

Con Compare Feature Tool, dovresti semplicemente scegliere il tuo Segment_IDcampo come campo di ordinamento nella finestra di dialogo.

Il campo o i campi [ordina] [sono] usati per ordinare i record nella tabella di base di input e nella tabella di test di input. I record sono ordinati in ordine crescente. L'ordinamento in base a un campo comune in Funzionalità di base di input e Funzionalità di test di input consente di confrontare la stessa riga da ciascun set di dati di input.

Se si desidera ottenere il campo Segment_ID come parte della tabella di output, provare a unire la Compare Featuretabella di output alla sorgente Test Tablesu cf.Object_ID=tt.Object_ID, quindi esportare la tabella unita con Segment_ID.

Potresti facilmente inserirlo in un modello per semplificare la ripetibilità.


Ho fatto questo, tuttavia, la tabella creata tramite lo strumento di confronto non include il campo Segment_ID (che è l'identificatore univoco). Invece elenca solo il objectID che in realtà non mi fa nulla di buono.
Craig

Aggiornato la mia risposta per riflettere come entrare Segment_IDnella tabella di output.
RyanKDalton,

l'aggiunta del join provoca l'arresto anomalo di ArcMap ogni volta. Torna al tavolo da disegno.
Craig

1

Nelle mie esperienze, Confronto caratteristiche usa sempre FID o ObjectID come base del confronto anche se segment_id è selezionato come campo di ordinamento. Gli FID Shapefile vengono riciclati (riordinati), quindi dopo alcune modifiche molti se non tutti i FID sono diversi per le rispettive aree geografiche. Avranno quindi un errore di confronto "vero". Se si utilizza un ObjectID da GeoDatabase o GISquirrel, gli ID non vengono riciclati e si può fare affidamento su questo strumento. È necessario mantenere i database aggiornati durante il periodo di tempo in modo che gli ObjectId non vengano mai riordinati.

Indipendentemente dalla descrizione del campo di ordinamento nella guida dello strumento GP è MOLTO fuorviante. Questo strumento sarebbe eccezionale se la base del confronto potesse essere il segment_ID.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.