L'immagine raster di ritaglio aumenta le dimensioni del file


9

Lavorando con QGIS 2.4.0 Chugiak ho una domanda relativa al ritaglio di immagini raster. Ho un'immagine aerea che voglio ritagliare usando l'estensione di un file di forma. Fin qui tutto bene, ho usato lo strumento raster / extract / clipper per fare questo. Il problema è che la dimensione del file del mio output raster è quasi tre volte più grande del file originale (rispettivamente 725.283 e 249.693 kb), mentre copre una superficie più piccola.

Perché il mio file è più grande? E c'è un modo per 'impostare' la dimensione del file di output?

La funzione di aiuto di clipper si riferisce alla seguente pagina: http://www.gdal.org/gdal_translate.html Anche se non riesco a ricavarne molto.

Sono relativamente nuovo in QGIS.


Di solito significa che l'originale è compresso ma la tiff ritagliata non è compressa. Devi leggere informazioni sul driver GDAL GeoTIFF e le opzioni di compressione.
user30184,

Se si desidera utilizzare la compressione nel set di dati di output, è necessario modificare il comando, come mostrato nella parte inferiore dell'interfaccia del clipper, e incorporare le opzioni di creazione con il -coflag. Ad esempio, per un GeoTiff potresti includere l'utilizzo della -co compress=lzwcompressione LZW senza perdita di dati. Dovremmo sapere di più sul tuo set di dati per essere in grado di aiutarti (ad esempio tramite gdlainfo).
Kersten,

Le immagini TIFF non compresse sono in genere più veloci.
Zoltan,

Grazie a tutti per le risposte. Questo potrebbe davvero essere un problema di compressione, non ci avevo pensato. Sì, Kersten Ho notato la console nell'interfaccia del clipper, anche se non ho capito come usarlo. Sto cercando di eseguire gdalinfo dalla console Python in QGIS ma non ho esperienza con questo. Qualcuno sa di un tutorial adeguato per familiarizzare? Saluti
Mathijs,

Si può andare a Raster > Miscellaneous > Informationessere gdalinfoeseguito sul file raster. Non è possibile eseguirlo direttamente dalla console Python perché non è uno script Python.
bosth,

Risposte:


6

Quando si esegue lo strumento di clip raster in QGIS, viene mostrato il comando GDAL esatto che verrà eseguito nella sezione inferiore della finestra di dialogo.

Strumento clip raster

Facendo clic sul pulsante della penna a destra del comando, è possibile modificarlo direttamente e aggiungere un'opzione di configurazione della compressione. Nel mio esempio, questo è il comando di partenza:

gdalwarp -q -cutline /tmp/mask.shp -crop_to_cutline -of GTiff /tmp/453A.tif /tmp/output.tif

Puoi cambiarlo per essere:

gdalwarp -q -cutline /tmp/mask.shp -crop_to_cutline -of GTiff -co "COMPRESS=LZW" /tmp/453A.tif /tmp/output.tif

Il extra -co "COMPRESS=LZW"è solo una delle molte possibili opzioni di compressione che è possibile utilizzare con i file GeoTIFF. La documentazione GDAL contiene ulteriori informazioni su tutte le opzioni.


Mille grazie, era esattamente quello di cui avevo bisogno. Il file è ancora 409,019 kb, quindi quasi il doppio dell'originale, ma il rendering è molto più veloce. Quel sito Web che avevo visto ma non riuscivo a capirlo molto. Gdalinfo ha mostrato che la compressione è stata effettivamente "spuntata" per la prima clip, quindi questo era davvero il problema.
Mathijs,

Quando corri gdalinfo, cosa segnala per la compressione? Dovremmo essere in grado di replicarlo nel secondo file una volta che lo sappiamo. La mia ipotesi è che potrebbe essere JPEG-lossy se è considerevolmente più piccolo di LZW.
bosth,

Questo è ciò che dice per l'immagine originale: 'Pixel Size = (0.000738433000001, -0.000738432999949) Metadata: AREA_OR_POINT = Area Immagine Struttura Metadata: COMPRESSION = LZW INTERLEAVE = PIXEL' e questo è ciò che dice per l'immagine ritagliata: 'Pixel Size = (0.000738423955088, -0.000738437979722) Metadati: AREA_OR_POINT = Area Immagine Struttura Metadati: COMPRESSION = LZW INTERLEAVE = PIXEL '
Mathijs

È possibile che tu abbia accidentalmente ottenuto i metadati per la stessa immagine due volte poiché entrambi sono uguali?
bosth,

Non lo sono, guarda le dimensioni dei pixel;)
Mathijs,

0

Aggiornamento per QGIS versioni 3 e successive: l'opzione di compressione è ora integrata nel plugin Raster-> Extraction-> Clip raster by mask layere nella maggior parte degli altri plugin che producono file raster.

Sotto Advanced parameters-> Profile, selezionando Low compressiono si High compressionotterrà un file più piccolo.

Queste opzioni di compressione sono senza perdita, ma puoi scegliere anche opzioni con perdita:

  • Low compression -> -co PACKBITS(senza perdita di dati)
  • High compression-> -co DEFLATE(senza perdita di dati)
  • JPEG compression-> -co JPEG_QUALITY=75(smarrito: attenzione!)

Clip raster per livello maschera

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.