Cómo solventar la falta del operador logaritmo en el raster calculator de QGIS con gdal_calc.py

El operador logaritmo no se encuentra, por ahora, en las opciones ofrecidas por el raster calculator de QGIS; aunque en el manual del proyecto se anuncian que en éste habrá pronto nuevas inclusiones de operadores. Este es necesario en el álgebra de mapas que involucra, por ejemplo, la transformación de radianzas en temperatura de brillo. Una manera de solventar esta carencia es con la gdal utility denominada gdal_calc.py que permite hacer álgebra de mapas a través de la línea de comandos. Sin embargo, a pesar de tener instalada gdal en mi sistema Ubuntu esta opción no aparece listada.

Después de investigar un poco, encontré el script de python aquí:

http://svn.osgeo.org/gdal/trunk/gdal/swig/python/scripts/gdal_calc.py

el cual debería haber estado en /usr/bin. En ausencia de cualquier otra información de instalación, decidí crearlo en ese directorio como superusuario y probarlo después de asignarle permisos de ejecución con chmod +x gdal_calc.py. Para ello, creé con el raster calculator un raster (raster.tif) con todos sus values iguales a 2 y luego ejecuté el siguiente comando:

.
gdal_calc.py -A raster.tif --calc "log(A)" --type Float32 --outfile raster2.tif
.

El resultado fue un ráster con todos sus valores iguales a 0.6931472, es decir, el logaritmo neperiano de 2. Con este resultado exitoso ahora decidí ejecutar este comando:

.
gdal_calc.py -A b6.rad.tif --calc "1260.56/log((607.76/A)+1)" --type Float32 --outfile temp_brillo.tif
.

que incluye la determinación de la temperatura de brillo a partir de una banda térmica (b6.tif, Landsat 5) cuyos números digitales fueron transformados previamente en radianzas (L; en b6.rad.tif); donde K1= 607.76 y K2 = 1260.56.

temp3

El resultado se encuentra en la siguiente imagen:

temperatura

donde se comparan sus valores (mediante el plugin Value Tool) con los de la misma banda procesada en lenguaje R usando el paquete landsat. Los resultados son prácticamente los mismos para cualquier punto de la imagen.

Esta entrada fue publicada en GDAL, QGIS, SIG, Software Libre. Guarda el enlace permanente.

3 respuestas a Cómo solventar la falta del operador logaritmo en el raster calculator de QGIS con gdal_calc.py

  1. Pingback: Cómo usar el Raster Calculator desde la Python Console | El Blog de José Guerrero

  2. Edgar Mora dijo:

    hola muchas felicidades por tu blog me encanta teno una pregunta acerca de este tema yo precisamente estoy calculando temperatura de brillo en imagenes landsat 8 pero no entiendo como se usa o se instala el script de python que mencionas aqui aquí:

    http://svn.osgeo.org/gdal/trunk/gdal/swig/python/scripts/gdal_calc.py

    ¿solo lo copio y lo pego en la carpeta /usr/bin? ¿que nombre le pongo al archivo de ser así? uso Qgis 2.6.1 corriendo sobre linux mint aun no soy experto en linux ojala me pudieras ayudar

    • Gracias por tu comentario. En ese link, “select all” con el botón derecho del mouse y luego lo copias en /usr/bin con el nombre de gdal_calc.py. Debes ser root para ello así que cuidado. No olvides de darle permisos de ejecución al script (también como root). Sin embargo, lo más probable es que ya esté instalado allí. Tuve que instalarlo manualmente porque la versión de Ubuntu que usaba para ese momento no sé por qué razón no la incluía.

      Saludos

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