gdalmerge produce file troppo grandi


12

Sto cercando di unire 60 file di geotiff in un unico file enorme per essere in grado di produrre riquadri da quel file geotiff enorme risultante utilizzando gdal2tiles.

Il processo di unione ha funzionato, ma per qualche motivo produce un file che ha una dimensione di 78 GB anziché i 19 GB previsti. Non sono sicuro di cosa sia andato storto lì.

La ragione per provarlo è perché piastrellare i 60 geotiff uno per uno mi dà spazi bianchi sul bordo della mappa.

Risposte:


16

Di solito, i GeoTIFF vengono compressi per l'archiviazione. L'esecuzione di gdal_merge con le impostazioni predefinite non comprime il file. Aggiungi l'opzione

-co COMPRESS=DEFLATE

(o una qualsiasi delle altre opzioni elencate nella documentazione ) al tuo comando per ottenere file di output più piccoli.


1
Per riferimento futuro - il mio, se nessun altro - gdal.org/frmt_gtiff.html ha il set di opzioni specifiche di GeoTiff che dovresti essere in grado di usare per qualsiasi comando gdal. A seconda del tipo di immagini che hai, potresti voler COMPRESS = LZQ o anche JPEG; varrebbe la pena il tempo di verificare il tipo di compressione utilizzato sulle immagini di origine.
Herb,

Grazie Herb, ho aggiornato la risposta per contenere il tuo link.
underdark

5

Come sottolineato da Underdark, la soluzione migliore è comprimere le tue immagini per evitare che l'ampio volume di spazio vuoto venga archiviato direttamente (l'immagine TIFF nativa è come una bitmap: ogni valore occupa la stessa quantità di spazio). Un'altra utile opzione di compressione è:

-co COMPRESS=LZW

Raramente ha lo stesso rapporto di compressione DEFLATE, ma ha il vantaggio di lavorare con la maggior parte dei software, dove DEFLATEnon è supportato in molti ambienti come ArcGIS 9.x.

Puoi provare una compressione lossless ancora più aggressiva utilizzando una delle trasformazioni wavelet, come ECW , MrSID o una delle varie implementazioni JPEG2000. Tieni presente che avrai bisogno di strumenti che utilizzano GDAL o implementano in altro modo le librerie per accedere ai dati in questi formati.


3

Puoi evitare di unire i tuoi file geotiff scrivendo un file vrt che li unisca "virtualmente".

È un file XML che descrive come devono essere assemblati i file. Tutte le utility gdal accettano questo file vrt come mappa di input. gdal2tiles o MapTiler sono entrambi basati su gdal, quindi dovrebbero essere in grado di usare un file vrt (non ho ancora provato con un file vrt ma ho già provato con un file gdal_wms e ha funzionato abbastanza bene).

Scrivere il file VRT da zero non è facile. Converti semplicemente uno dei tuoi geotiff in vrt per fare un esempio:

gdal_tranlate -of vrt one_of_your_geotiff.tif one_of_your_geotiff.vrt

C'è anche uno strumento chiamato gdalbuildvrt ma non l'ho provato.


1
Matt Perry ha una bella descrizione di alcuni dei vantaggi dell'utilizzo dei VRT qui: perrygeo.net/wordpress/?p=141
scw,
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.