Cambio de formato de imágenes con gdal_translate (GDAL/OGR)

En el artículo anterior se había tratado la manera de cómo escalar una imagen de 16 a 8 bits usando gdal_translate. En esta oportunidad se va a considerar como transformar la imagen de 8 bits obtenida (*.tif) en *.jpg (en realidad JPEG) usando el mismo comando. Las imágenes *.jpg pesan alrededor de un 10 % de su equivalente *.tif (GeoTiff) pero tienen varios inconvenientes. Uno de ellos es que su multiespectralidad no va más allá de las cuatro bandas, por ejemplo, aunque pueden ser “retocadas” por programas de manejo de imágenes no usados en teledetección sin perder su georreferenciación.

Para averiguar detalles acerca de los drivers (formatos) que se manejan en las imágenes soportadas por la librería GDAL se tiene el comando gdalinfo –formats y si se quiere averiguar algo con relación a un formato específico gdalinfo –format NOMBRE_CORTO_FORMATO. El comando gdalinfo permite establecer información valiosa de la imagen que es necesaria pasarle como parámetro para la adecuada operación de gdal_translate.

La sintaxis del comando usada aquí (para más opciones usar man gdal_translate) fue:

gdal_translate -a_srs EPSG:numero_ID -of JPEG imagen_fuente_TIF imagen_salida_JPEG

Para la automatización del proceso se realizó este pequeño script de bash:

#!/bin/bash
clear;ls *.tif;echo
read -p "imagen fuente = ? " input_file;echo
raiz=`echo ${input_file/.tif/""}`
output_file=$raiz".jpg" 
echo "imagen destino = "$output_file
var_tmp=`gdalinfo $input_file | grep -i authority | grep -oE '[0-9]*'`
EPSG_ID=`echo $var_tmp | awk '{print $5}'`
echo
gdal_translate -a_srs EPSG:$EPSG_ID -of JPEG $input_file $output_file

que produce este resultado por consola (en mi sistema):

b12345script_esc.tif  b1_esc.tif  b321script_esc.tif  b3_esc.tif  b4_esc.tif
b1234.tif	      b2_esc.tif  b321.tif	      b432.tif	  b5_esc.tif

imagen fuente = ? b321script_esc.tif

imagen destino = b321script_esc.jpg

Input file size is 5055, 5158
0...10...20...30...40...50...60...70...80...90...100 - done.
zeito@Debian:~/Desktop/CALABOZO-P4R54/escalados$ 

El uso de gdalinfo es para filtrar con grep y awk el ID de EPSG que se encuentra en el quinto campo de la variable temporal asumida y que se requiere para volcar la proyección WGS84 zona 19 que tiene la imagen original en la imagen destino.

Se pueden automatizar otros parámetros pero, en principio, esta vez sólo me interesa para transformar la imagen de GeoTiff (*.tif) a JPEG (*.jpg). Como la imagen sale un poco oscura, le aumenté el brillo y el contraste con gimp y la visualicé, conjuntamente con su contraparte *.tif, en QGIS; tal como se encuentra en la siguiente imagen:

A pesar del “retoque” la imagen *.jpg no perdió su georreferenciación. Esto se debe a que la proyección la almacena (a diferencia del *.tif) en un archivo adjunto auxiliar de formato xml (*.jpg.aux.xml). Distinto hubiese sido si la imagen, por ejemplo, es cortada. No obstante, ahora puedo usar en un proyecto una imagen *.jpg georreferenciada sin necesidad de tomarla de GoogleEarth ahorrándome, de paso, la georreferenciación de esta última.

Esta entrada fue publicada en GDAL/OGR, SIG, Teledetección. Guarda el enlace permanente.

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s