Analizzare le differenze tra due shapefile per mettere i risultati in un nuovo shapefile?


9

Ho due shapefile poligonali della stessa regione di due anni diversi (1985 e 1997) e ho bisogno di analizzare le differenze tra i due shapefile risultanti in un terzo shapefile poligonale che mostra solo differenze.

Gli shapefile coprono un'area del centro città con edifici, parchi, aree sigillate / non sigillate e aree acquatiche. Devo scoprire, ad esempio, se un edificio è stato demolito / costruito o se un parco è stato spostato o chiuso o cose simili. Eventuali differenze tra le forme.

Ho bisogno che l'output sia in un terzo, nuovo shapefile. Esiste un modo automatizzato per raggiungere questo obiettivo?

Sto lavorando con il geodatabase di file proprietari in ArcGIS 10.1, quindi preferirei soluzioni in ArcGIS. Ma se c'è un modo semplice per farlo in QGIS, lo accetterei anch'io.

Ho pensato che fosse possibile lavorare con l'analisi della topologia in ArcGIS, ma non sono del tutto sicuro, ad esempio, come confrontare le forme in base agli attributi: ogni forma ha un "tipo" di campo nella tabella degli attributi e devo confrontare non solo le forme ma i tipi di poligoni.

Nota: trovare differenze tra i file di forma usando ArcGIS per desktop? sembra simile, ma sto cercando un output in un formato file poligonale.

Si tratta di un processo di rilevamento delle modifiche sui dati vettoriali (nessun problema di telerilevamento). Ci sono alcuni bei commenti in questa risposta, ma nessuna soluzione.


1
Quando dici differenza, intendi la differenza in geometria, attributo o entrambi? È un processo di rilevamento delle modifiche?
Ryan Garnett,

Sì, questo è un processo di rilevamento delle modifiche. Per prima cosa ho bisogno dei cambiamenti nella geometria, in secondo luogo ho bisogno di cambiamenti negli attributi. Ma la geometria è più importante poiché l'output deve essere visualizzato in qualche modo.
Afr

Risposte:


2

Mentre penso che la risposta di Ryan sia la linea d'azione più ragionevole, puoi usare lo strumento di geoprocessing Intersect usando entrambi i tuoi occhiali come input.

L'output ottenuto conterrà gli attributi di entrambi gli input. È possibile verificare la presenza di funzionalità con valori diversi nei due campi "tipo".

Ci sono alcune limitazioni a questo processo:

  • Innanzitutto lo strumento Intersect come tutti gli strumenti eccessivamente può funzionare solo su una quantità limitata di vertici . Se hai troppi vertici nei tuoi dati, dovresti affiancare i tuoi dati ed eseguire il processo in più fasi.

  • Nell'output troverai molti poligoni a nastro.

  • Ciò richiede che le classi di funzioni coprano interamente l'area di interesse e che non vi siano lacune.


Questo fa il lavoro, grazie! È una soluzione abbastanza semplice ma è qualcosa su cui posso lavorare.
Afr

6

Ci sono alcuni modi per farlo. Ho completato questo in passato con grandi risultati usando una combinazione di attributi ed elaborazione raster. La premessa del processo è assegnare ad ogni funzione un valore di n (1, 2, 4, 8, 16, 32, 64, ecc.). L'assegnazione di questi valori assicura che quando si sottrae il livello 1 (1985) dal livello 2 (1997) si ottiene un valore univoco, che identifica a cosa è cambiato. Ad esempio, se 1 = edifici, 2 = parchi, 4 = sigillo / non sigillato e 8 = acqua; sottraendo i valori, non è possibile ottenere lo stesso valore. Quando aggiungi questa colonna di valori, vorrai convertire i poligoni in un raster, usando ArcGIS o QGIS. Vorrei raccomandare di impostare la dimensione del pixel raster su un valore piccolo (ad esempio: se i dati sono stati raccolti dalle immagini Quickbird, quindi impostarli sulla dimensione in pixel delle immagini Quickbird). Utilizzando Raster Calculator (in ArcGIS o QGIS) sottrarre Livello2 da Livello1. Ciò si tradurrà in Layer3, il passaggio a layer. È possibile riconvertire questi dati in un livello poligonale per ulteriori analisi GIS. Se vuoi ulteriori informazioni o dettagli, posso condividere un altro con te.


Questo è un approccio molto carino, ma non ho intenzione di convertire le mie forme in dati raster e viceversa poiché perderò troppe informazioni. Questo è comunque possibile ottenere solo con livelli vettoriali?
Afr

Si potrebbe fare qualcosa di simile con i vettori, ma non utilizza l'approccio del valore. Potresti voler giocare con lo strumento Differenza simmetrica disponibile in ArcGIS e QGIS. Non sono a conoscenza di un approccio basato sul vettore che imita l'approccio che ho delineato.
Ryan Garnett,

il tuo approccio mi ricorda di usare operazioni bit per bit come descritto qui blog.millermedeiros.com/…
geogeek

ARCGIS 9.2 ha lo strumento di differenza simmetrica. Non riesco a trovare Quale versione di ARCGIS può essere utilizzata per analizzare questa differenza simmetrica?
Bandrush Barda,

Credo che tu abbia bisogno di una licenza ArcInfo. Se non si dispone di quel tipo di licenza, è possibile scaricare ETGeoWizards. La differenza simmetrica è uno strumento disponibile nella scheda Geoprocessing. QGIS ha anche la differenza simmetrica negli strumenti vettoriali, che è gratuita.
Ryan Garnett,

0

Per eseguire il rilevamento delle modifiche in ArcGIS, da due file poligonali, utilizzare l'operazione di sovrapposizione (UNION). Questo ti dà la matrice di transizione che mostra i dettagli delle modifiche (potrebbe essere in copertura del suolo).


Penso che questa sia solo una variazione della risposta accettata ma con istruzioni meno dettagliate. Inoltre, mentre sia Union che Intersect sono operazioni di sovrapposizione di poligoni, è Intersect che in questo caso vorrei utilizzare per ridurre al minimo le dimensioni dell'output e tutti i set di dati intermedi.
PolyGeo
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.