Sto scrivendo una semplice utility per ritagliare batch di file raster geotiff multibanda nella stessa area (più piccola). Usando gdalwarp, posso facilmente ritagliare un file usando uno shapefile di ritaglio a singolo poligono:
gdalwarp -cutline clipper.shp -crop_to_cutline input.tif output.tif
Tuttavia, l'area effettiva a cui voglio tagliare sarà sempre inizialmente definita da un altro file raster geotiff, non da uno shapefile. Sarebbe bello se potessi usare l'estensione di quel raster come file di ritaglio, ma non sono sicuro di come farlo. Non sorprende che il seguente non funzioni (non genera un errore, semplicemente non produce nulla):
gdalwarp -cutline clipper.tif-crop_to_cutline input.tif output.tif
Quindi, la mia domanda è: c'è un modo per fornire un raster a gdalwarp -cutline
? In alternativa, esiste un'altra funzione gdal che può tagliare un raster usando un altro raster? Se nessuno di questi è possibile, esiste un modo molto semplice per produrre un file di forma con un singolo poligono definito dall'estensione di un raster?
Questo codice sarà racchiuso in uno script Python più esteso, quindi posso usare le utility gdal della riga di comando o qualsiasi bind python per gdal.
Come nota a margine, so che potrei facilmente creare un file di forma di ritaglio che copra l'estensione del mio raster in QGIS. Potrei finire per farlo se non trovo una soluzione semplice, ma alla fine finirò per usare questa utility su dozzine se non centinaia di aree come parte di una grande analisi automatizzata, quindi preferirei non avere un noioso passaggio manuale anche se è molto semplice.
gdaltindex clipper.shp clipper.tif
, seguito dagdalwarp -cutline clipper.shp -crop_to_cutline input.tif output.tif