Calcolo del limite / impronta delle immagini satellitari usando strumenti open source?


10

Devo creare i contorni poligonali di diverse immagini raster a singolo strato, non la casella di estensione / limite, ma l'area senza i valori dei nodati, come mostrato qui: Creazione di file di forma che mostrano le impronte dei raster? .

Nella risposta alla domanda precedente, è stato menzionato il plug-in Image Boundary , tuttavia non lo trovo nel QGIS 1.8.0 Lisboa, in esecuzione su Ubuntu.

Lo strumento è ancora disponibile?

Altrimenti, c'è un modo per farlo usando strumenti opensource, gdal, R, QGIS, GRASS o simili, non con ArcMap?


Risposte:


4

È possibile aggiungere il vecchio repository in cui sono presenti plug-in nel repository ufficiale.

http://pyqgis.org/repo/contributed

Il plug-in al confine dell'immagine ha un'opzione per calcolare pixel validi, ma l'immagine deve essere la scena completa, come CBERS o Landsat, dove questo processo calcola i primi 4 angoli. L'immagine deve avere nodati con valore ZERO per l'area senza imaging (scansionata dal sensore satellitare).

Autore di Image Boundary


Ciao @lmotta, grazie per il link al repository. Le immagini su cui sto lavorando al momento sono tutte immagini SAR, con valori NA (o -3,4e + 38 secondo lo strumento valore in QGIS). Se uno potesse aggiungere manualmente il valore dei nodati nello strumento, invece di avere ZERO come unica opzione, sarebbe fantastico, altrimenti, potrei prima eseguire uno script in R per dare ai miei valori NA nuovi valori pari a zero. È un ottimo strumento, grazie!
spib

Esiste un nuovo repository per Image Boundary? Il link fornito è 404. Forse il seguente ?: github.com/lmotta/imagefootprint_plugin
Aaron

C'è un posto in cui possiamo trovare la documentazione per Image Boundary?
Loonuh,

11

Finalmente ho trovato un modo per farlo:

passo 1: gdalwarp -dstnodata 0 -dstalpha -of GTiff foo1 foo2

Questo fa due cose importanti: imposta i valori No Data (bordo esterno) di destinazione su 0 e crea una banda alfa.

passo 2: gdal_polygonize.py foo2 -b 2 -f "ESRI Shapefile" foo3

Il secondo passaggio utilizza la banda alfa (banda 2), creata nel passaggio 1, e crea uno shapefile da quella banda.

Questo può quindi essere facilmente copiato in uno script bash, se hai molte immagini, per creare contorni esatti.  


Geniale, questa soluzione non si basa su alcun plug-in o software. La creazione di impronte raster sensibili a NoData è una di quelle attività GIS che non è così semplice come dovrebbe essere.
Charlie Parr,

Quando uso questo metodo finisco con uno shapefile pieno di poligoni che presumo rappresentino colori diversi raggruppati insieme. Come posso evitarlo e finire con pochi poligoni che rappresentano sì-dati ??
Loonuh,

5

Ho usato gdal_translatecome suggerito dal progetto GDAL.

gdal_translate -b mask -of vrt -a_nodata 0 test.tif test.vrt
# Note the  -a_nodata 0 doesn't seem to work when the mask is input, so do another pass
gdal_translate -b 1 -of vrt -a_nodata 0 test.vrt test2.vrt
gdal_polygonize.py -q  -8 test2.vrt -b 1 -f "ESRI Shapefile" testdata.shp

inserisci qui la descrizione dell'immagine


1
Con la versione trunk GDAL è ora possibile utilizzare gdal_polygonize direttamente sull'immagine di origine osgeo-org.1560.x6.nabble.com/… . Tuttavia, è necessario un po 'di pulizia per rimuovere i poligoni senza dati.
user30184

4

Anche il plugin Image Boundary non ha funzionato per me, quindi ho usato lo stesso approccio con GDAL. Tuttavia ha funzionato solo per me dopo aver modificato il primo passo in:

passaggio 1 : gdalwarp -srcnodata 0 -dstalpha -of GTiff foo1 foo2

Sto lavorando con la banda Landsat8 (dove nessun dato = 0) e quando uso la -dstnodatafunzione ottengo:

BAND1 con nessun dato = 'dati'
BAND2 (Alpha banda) = '255' per l'intera scena / misura

mentre con la -srcnodatafunzione ottengo:

BAND1 con nessun dato = 'dati'
BAND2 (alfa banda) con nessun dato = 'no dati' e dati validi = '255', che permette quindi di estrarre poligono solo dati validi.

Non riuscivo a comprendere appieno il motivo di questo comportamento (come viene calcolato l'alfa?), Ma spero che ciò possa aiutare gli altri ad affrontare lo stesso problema.


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.