Convertir binarios (*.bil) en imágenes *.tif con las librerías GDAL/OGR (GNU/Linux)

Con gdalinfo archivo.bil, encontré que el driver de la imagen en formato *.bil es EHdr y con un gdalinfo –formats|grep -i EHdr comprobé que estaba soportado en las librerías GDAL/OGR (ésta fue la respuesta al request: EHdr (rw+v): ESRI .hdr Labelled). Ahora sólo se tenía que buscar el comando candidato para hacer esa labor. Después de algunas pruebas encontré que era gdal_translate con esta sintaxis (las opciones se averiguan con un man gdal_translate):

gdal_translate -ot $ot_data -outsize $width $height -a_srs EPSG:$EPSG_ID -a_ullr $upper_left_east $upper_left_north $lower_right_east $lower_right_north $input_file $output_file

Como la información requerida es extensa, entonces programé un script de bash para que la obtuviera del propio archivo *.bil. El *.bil, cuando se descomprime el (*.zip), viene acompañado de una serie de archivos (*.blw, *.hdr, *.prj, *.stx) que son imprescindibles a la hora de ejecutar gdal_translate (del *.blw toma el tamaño del pixel y por eso no es necesario pasárselo como parámetro). Este fue el script:

!#/bin/bash
clear;echo;ls *bil;echo
read -p "archivo (*.bil) = ? " input_file
tmp1=$input_file
salida1=`echo ${tmp1/.bil/''}`
output_file=$salida1".tif"

echo "Archivo entrada = "$input_file
echo "Archivo salida = " $output_file

tmp2=`gdal_list_corners $input_file | grep -i 'datatype'`

ot_data=`echo ${tmp2/datatype:/''}`

width=`gdal_list_corners $input_file | grep -i 'width'|grep -oE [0-9]*`
height=`gdal_list_corners $input_file | grep -i 'height'|grep -oE [0-9]*`

tmp3=`gdalinfo $input_file | grep -i authority | grep -oE '[0-9]*'`
EPSG_ID=`echo $tmp3 | awk '{print $5}'`

upper_left_east=`gdal_list_corners $input_file | grep -i 'upper_left_east'|grep -oE [0-9.\-]*`
upper_left_north=`gdal_list_corners $input_file | grep -i 'upper_left_north'|grep -oE [0-9.\-]*`
lower_right_east=`gdal_list_corners $input_file | grep -i 'lower_right_east'|grep -oE [0-9.\-]*`
lower_right_north=`gdal_list_corners $input_file | grep -i 'lower_right_north'|grep -oE [0-9.\-]*`

echo "tipo de dato = " $ot_data
echo "ancho = " $width
echo "alto = " $height
echo "upper_left_east = " $upper_left_east
echo "upper_left_north = " $upper_left_north
echo "lower_right_east = " $lower_right_east
echo "lower_right_north = " $lower_right_north
echo "EPSG_ID = " $EPSG_ID

echo

gdal_translate -ot $ot_data -outsize $width $height  -a_srs EPSG:$EPSG_ID -a_ullr $upper_left_east $upper_left_north $lower_right_east $lower_right_north $input_file $output_file

Funcionó bien la automatización y produjo resultados de manera expedita. Ahora ya no dependo de ERDAS para esa labor. La puedo hacer en Linux. Esta es una imagen (desplegada con QGIS) de las cuadrículas bajadas en formato *.bil, transformadas en *.tif y luego convertidas a imágenes “hillshaded”; también en *.tif.

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

3 respuestas a Convertir binarios (*.bil) en imágenes *.tif con las librerías GDAL/OGR (GNU/Linux)

  1. Pingback: Obtención de mapas de contorno (shapefiles) a partir de raster tipo DEM (Digital Elevation Model) |

  2. Hola amigo, gracias por tan excelente aporte, si me puedes ayudar con esto: tengo un archivo de reflectancia que visualizo en “Freelook viewer 4.3 (ENVI); El archivo de reflectancia consta de 2 partes uno que no tiene extención y otro con extención .hdr. No he hallado la forma de visualizar este archivo en arcgis sin convertirlo a geotiff. Intente con la herramienta para convertir puntos flotantes a raster de arcgis pero no. al hacer el procedimiento para obtener reflectancia obtengo esto, los cuarles son los que deso visualizar en arcgis.

    refl……………………Archivo…………688594KB
    refl.hdr……………..Archivo HDR….1KB

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