L’utility gdal_translate può essere utilizzata per la conversione di dati raster tra formati diversi e contemporaneamente svolgere alcune operazioni come ricampionamento e ridimensionamento dei pixel.
La sintassi però non è così semplice come può sembrare.
Concettualmente, basta fare:
gdal_translate OPTIONS input output
Vediamo insieme alcuni esempi.
Cambiare il formato raster
Questa è l’opzione più comune.
Le immagini raster sono disponibili in molti formati diversi, il più comunemente usato è GeoTIFF. Tramite il flag –of è infatti possibile specificare il formato di output desiderato.
Se abbiamo ad esempio un set di file raster in formato JPG + world e vogliamo tradurlo in formato GeoTIFF, il comando da eseguire sarà:
gdal_translate -of GTiff input.jpg output.tif
Altre opzioni possono essere:
-
-of PNG
-
-of JPEG
-
-of BMP
-
-of PDF
-
-of JPEG2000 (necessita di plugin)
Ricordarsi sempre di specificare il flag -of, in caso venga omesso potrebbe portare a risultati imprvedibili.
Opzioni di creazione
Per fornire opzioni specifiche del formato, gdal_translate ci offre il flag –co, che può essere ripetuto più volte, una per ogni opzione che vogliamo inserire. Le opzioni vanno specificate con il formato chiave-valore, usando “=” come separatore tra i due.
Ad esempio se vogliamo un file raster in formato tiled GeoTIFF, che utilizzi DEFLATE come algoritmo di compressione è necessario lanciare il comando:
gdal_translate -co TILED=YES -co COMPRESS=DEFLATE input.tif output.tif
Ridurre o incrementare la risoluzione dei pixel del raster
A volte i dati dei raster sono troppo dettagliati per cui si può decidere di ridurre la densità dei pixel aumentandone la risoluzione.
La risoluzione dei pixel è la dimensione di un pixel nel mondo reale.
Per esempio un singolo pixel di un’immagine può essere un quadrato di 8x8cm nel mondo reale.
Per risolvere questa necessità, gdal_translate offre un filtro chiamato –outsize. Richiede due valori: larghezza e altezza, che possono essere percentuali o assoluti. Tramite le proporzioni dell’immagine, impostando il valore di input a 0, uno dei due valori può essere derivato dall’altro.
Ecco qualche esempio:
-
ridimensionare al 25%
-
gdal_translate -outsize 25% 25% input.tif output.tif
-
-
ridimensionare al 50%
-
gdal_translate -outsize 50% 0 input.tif output.tif
-
-
ridimensionare a 100px x 100px
-
gdal_translate -outsize 100 100 input.tif output.tif
-
-
ridimensionare a 150%
-
gdal_translate -outsize 150% 0 input.tif output.tif
-
Possiamo anche impostare le opzioni di ricampionamento tramite il flag –r. Per le opzioni da utilizzare con questo flag, fare riferimenteo alla manpage.