Il conteggio e la rasterizzazione del poligono si sovrappongono in ArcGIS Desktop?


17

Come si prende un livello vettoriale con poligoni sovrapposti e lo si trasforma in un raster in cui ogni cella conta il numero di poligoni che contengono quella cella?

Stiamo osservando i poligoni delle aree bruciate dal fuoco tra il 1976 e il 2000 e vogliamo vedere quanti incendi sarebbero contenuti in ciascuna cella raster.

Risposte:


22

Fallo in tre passaggi: spezza i poligoni nelle loro parti componenti, conta le sovrapposizioni e converti in raster. Questo evita il costo computazionale potenzialmente enorme di convertire separatamente ogni poligono in un raster e combinare quei raster.

  1. Union(nel Geoprocessingmenu) suddivide i poligoni nelle loro parti.

    Sfortunatamente, ogni sovrapposizione è duplicata nell'output: ha una copia identica per ogni poligono originale che la copre. Perciò

  2. Dissolve(di nuovo nel Geoprocessingmenu) uniranno le parti sovrapposte, a condizione che sia possibile trovare un modo per identificarle in modo univoco. Leggi la finestra di dialogo: verso la fine, avrai la possibilità di calcolare "statistiche". Scegli un campo che potrebbe aver identificato l' originale poligoni e richiedi un conteggio.

    In molti casi la combinazione dell'area poligonale e del perimetro identificherà in modo univoco le parti. In caso contrario, puoi aggiungere più proprietà geometriche in campi aggiuntivi, come le coordinate del centroide, fino a quando non hai accumulato abbastanza informazioni per distinguere ogni caratteristica.

    Il livello risultante ha una funzione per ogni sovrapposizione di poligoni e una sorta di campo "conta" che conta il numero di sovrapposizioni.

  3. Converti quello in un raster, usando il campo "count" per gli attributi.


Ad esempio, ecco alcuni poligoni sovrapposti e i loro identificatori con la tabella degli attributi mostrata:

inserisci qui la descrizione dell'immagine

Dopo il secondo passaggio abbiamo un record per ogni regione sovrapposta insieme a un conteggio che può già essere usato per simboleggiare la quantità di sovrapposizione:

inserisci qui la descrizione dell'immagine

Il resto è facile - ed è solo una singola operazione di rasterizzazione.


Anche questo metodo vettoriale funziona alla grande, tranne quando applicato a centinaia di migliaia di poligoni con molte sovrapposizioni su un computer con memoria limitata ...
ccn

@ccn Quando sono presenti più poligoni di quanti ArcGIS sia in grado di gestire, suddividere il set di dati in parti che è in grado di elaborare. L'output sarà costituito da diversi raster - ma non migliaia o milioni di essi - che saranno quindi semplici da sommare. Un altro vantaggio dell'utilizzo Unionè che con quasi lo stesso flusso di lavoro può affrontare la situazione in cui i poligoni risiedono in più set di dati (che di solito è una cattiva progettazione del database ma purtroppo comune): si uniscono semplicemente tutti i set di dati di input contemporaneamente.
whuber

@ccn (Continua) il punto che porti in primo piano si riduce a questo: quando è meglio rasterizzare i poligoni e usare le operazioni raster per unirle rispetto all'utilizzo delle operazioni vettoriali ( union) seguite dalla rasterizzazione? Le operazioni vettoriali si impantaneranno quando le caratteristiche saranno digitalizzate con più dettagli del necessario, dotandole di troppi vertici. In queste circostanze estreme, l'approccio raster potrebbe essere migliore (sebbene prima semplificare i poligoni potrebbe essere un'opzione superiore). In tutte le altre situazioni, tuttavia, rasterizzare ogni poligono separatamente è un enorme spreco di tempo per computer e umani.
whuber

1
+1 per una soluzione basata su vettori. Per mettere le cose in prospettiva qui, masterizzare i dati perimetrali non è mai molto grande. Ad esempio, l'intero set di dati del perimetro di masterizzazione MTBS (USA, Alaska incluso) per il periodo 1984-2010 contiene circa 19000 poligoni. Un approccio vettoriale o basato su raster funzionerà perfettamente.
Aaron

@Aaron Grazie per la prospettiva. Per fare gli Stati Uniti terrificanti in una sola volta a qualsiasi ragionevole risoluzione (ad esempio, 100 m) avresti bisogno, per esempio, di un raster di 50000 colonne e 30000 file contenenti 1.500.000.000 di celle. Generare 19.000 di questi raster - anche tenendo conto della compressione integrata - e quindi eseguire 19.000 * 1500000000 = circa 30000 miliardi di aggiunte - richiederebbe un po 'di tempo! Se invece ogni poligono utilizzato, diciamo, 100 vertici (che è molto dettagliato), l'unione coinvolge 1.900.000 vertici ed è un'operazione O (n log (n)); in linea di principio (ma non in ArcGIS :-) che richiede meno di 1 secondo.
whuber

1

Il seguente post ha una domanda in qualche modo simile che potresti trovare una soluzione correlata: Creare una superficie raster di sovrapposizioni da shapefile poligonali vettoriali? .

Per questo approccio raster semplice e computazionalmente rapido, dovrai (1) separare i poligoni sovrapposti in strati separati (presumibilmente per anno per i poligoni del fuoco) usando Seleziona per attributi in ModelBuilder con un iteratore o uno strumento di script, (2) convertirli ciascuno Poligono a raster con l'assegnazione di cella MAXIMUM_COMBINED_AREA (garantendo la stessa dimensione di cella , snap raster e che l' estensione rimanga uguale all'intero set di poligoni) - utilizzando un valore di campo costante (ad esempio, utilizzare il campo o le righe dell'anno che hanno tutti 1) per convertire (utilizzare nuovamente ModelBuilder con un iteratore o uno script Python per automatizzare), quindi (3) applicare il seguente strumento Analista spaziale: Statistiche cella - usa il parametro statistics_type VARIETY se ogni raster ha un valore univoco come l'anno o SUM se tutti i valori delle celle raster sono 1s - assicurati di controllare per ignorare NoData.

I raster intermedi (dalla conversione precedente) possono essere eliminati o sono pronti per essere utilizzati nelle successive analisi raster.


(Vedi il mio commento alla risposta di Aaron .)
whuber
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.