Trova l'intersezione di due raster


9

Ho due immagini raster, classificate booleane (1 o 2). Si sovrappongono in determinate aree.

Ho bisogno di un raster che sia solo le sezioni sovrapposte.

Utilizzo di Arcinfo 10. Answer può utilizzare solo metodi raster, nessuna conversione in poligoni, punti, ecc.Solo per riferimento ecco una schermata.


Entrambe le risposte sono corrette, la prima è più elegante ma ho deciso di dare il secondo merito in quanto è stato il più utile per me.
Thad

Risposte:


8

Sembra un'operazione di ritaglio piuttosto semplice. Utilizzare lo strumento Clip (Gestione dati) .

Dalla documentazione di aiuto:

Un livello raster o vettoriale esistente può essere utilizzato come estensione della clip. Se si utilizza una classe di caratteristiche come estensione di output, è possibile ritagliare il raster dal rettangolo di delimitazione minimo della classe di caratteristiche o dalla geometria poligonale delle caratteristiche. Se si utilizza la geometria di ritaglio, è possibile promuovere la profondità in pixel dell'output. Pertanto, è necessario assicurarsi che il formato di output possa supportare la profondità dei pixel corretta.

Questo dovrebbe effettivamente essere più semplice del tuo requisito in quanto utilizza le funzioni di base e non dovrebbe nemmeno richiedere l' estensione Analista spaziale , come altri metodi potrebbero.

-------------- Modificare

D'altra parte, se il tuo obiettivo è creare un raster che mostri dove entrambi gli input fossero nulli o che uno avesse un valore o che entrambi avessero un valore, allora dovresti usare la moltiplicazione raster . Questo essenzialmente crea un raster di output che ha valori che sono i multipli dei valori dei raster di input. Si noti che quanto segue richiede l'estensione Analista spaziale.

Un esempio, nel tuo caso, con raster booleani.

Raster 1:  1,2  
Raster 2:  1,2

Output Raster:  Possible combinations:  1x1,1x2,2x1,2x2 with output values: 1,2,4  
Value 1:  Both Boolean False  
Value 2:  1 or the other, Boolean True  
Value 4:  Both Boolean True

Se vuoi essere in grado di determinare quale dei tuoi input ha un valore vero, dovrai riclassificare uno dei raster di input in modo che i tuoi valori moltiplicati siano completamente unici. Entrambi gli input dovranno essere riclassificati in modo che non vi sia alcun valore di "1", in quanto ciò consentirà valori duplicati in un raster moltiplicato.

Esempio:

Raster 1: 1,2 - Use [Raster Addition][4], with a constant of 1 - Output Raster 3  
Raster 2: 1,2 - Use [Multiply Raster][5], with constant of 2 - Output Raster 4  
Raster 3: 2,3  
Raster 4: 2,4

Now, multiply Raster 3 and Raster 4  
Output Raster:  Possible Combinations:  2x2,3x2,4x2,4x3 with output values: 4,6,8,12

Value 4:  Both Boolean False  
Value 6:  Raster 3 True, Raster 4 False  
Value 8:  Raster 4 True, Raster 3 False  
Value 12: both Boolean True

È possibile eseguire una combinazione di queste operazioni in cui si ritaglia uno dei raster dall'altro, per mostrare solo l'area di sovrapposizione. Quindi riclassifica e moltiplica i raster per mostrare dove entrambi sono falsi, l'uno o l'altro sono veri o entrambi sono veri.

Spero che sia di aiuto.


Continuo a ricevere un errore di estensione dell'output. O un errore di maschera. Così frustrante .... Mai incontrato prima.
Thad

NVM. Penso di avere un problema di proiezione. cioè queste funzioni non supportano la proiezione al volo ... quindi non si sovrappongono per quanto riguarda le funzioni interessate.
Thad

@Thad - Proverei quindi a riproiettare uno dei raster in modo che corrisponda alla proiezione dell'altro. Utilizzare lo strumento Project Raster disponibile negli strumenti di gestione dei dati. In alternativa, utilizzare il codice Python per farlo a livello di codice come parte del flusso di lavoro.
Ottieni Spatial

sì l'ho fatto e ha funzionato perfettamente.
Thad

9

Presumo che nei tuoi raster hai un valore 1 per il bianco (in qualche modo area nodata) e 2 per il blu / verde.

Quindi, è necessario ottenere aree in cui entrambi i raster hanno un valore 2.

Questo può essere facilmente eseguito con Raster Calculator in ArcGIS.

L'espressione sarà simile a:

("raster1" == 2) & ("raster2" == 2)

o

Con(("raster1" == 2) & ("raster2" == 2), 1, 0)

PS questo strumento richiede l'estensione Analista spaziale


0

Penso che questo metodo possa aiutarti:

  1. arctoolbox >> Data management tools >> Raster >> Rasterprocessing >> Clip trascina e rilascia il tuo raster in input e output (indipendentemente da quale). Ora hai uno shapefile dalla tua area di sovrapposizione (lo abbiamo chiamato overlap.shp).
  2. usando extract by mask, per entrambi i raster:: arctoolbox >> Spatial analyst tools >> Extraction >> Extract by maskinput: il Raster 1, maschera i dati: overlap.shp. Ora hai un raster di sovrapposizione raster 1 (lo abbiamo chiamato overlap1). arctoolbox >> Spatial analyst tools >> Extraction >> Extract by mask: input: i dati della maschera Raster 2.: overlap.shp. Ora hai un raster di sovrapposizione raster 1 (lo abbiamo chiamato overlap2).
  3. l'ultimo passaggio: arctoolbox >> Spatial analyst tools >> Map algebratrascina e rilascia sovrapposizione e sovrapposizione 1.

Ora puoi fare qualsiasi cosa. Tutte le statistiche di cui hai bisogno.

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.