lunes, 8 de diciembre de 2014

Teledetección con ORFEO Toolbox y QGIS Parte I













Introducción


En esta oportunidad y luego de un buen tiempo voy a tratar algunos de los procesos más comunes de la Teledetección, empleando como siempre herramientas de software libre, para ello emplearé al menos tres entradas de mi blog, debido a lo amplio del tema. Por lo general cuando me dedico a enseñar sobre teledetección uso el software MultiSpec©, el cual considero que es una potente herramienta y con la capacidad de realizar múltiples procesos empleando imágenes multiespectrales, quizá en algún momento publicaré los trabajos que pude realizar con dicho software; pero ahora me voy a referir al ORFEO Toolbox (OTB) y a su herramienta ejecutable denominada Monteverdi, en sus dos versiones, asimismo a pesar que esta herramienta se integra dentro del QGIS, en lo particular prefiero trabajarlo independientemente, por lo tanto, ahora solo mostraré la facilidad de trabajar con los algoritmos dedicados a la Teledetección que presenta el GRASS dentro del QGIS.

Nacimiento del OTB

En el marco de la preparación de la parte metodológica del ORFEO Accompaniment Program,  para acompañar y promover el uso y la explotación de las imágenes derivadas de los satélites Pléiades (PHR) y Cosmo-Skymed (CSK), la Agencia Espacial Francesa (French Space Agency-CNES) decidió desarrollar el Orfeo Toolbox (OTB): un conjunto de componentes algorítmicos, adaptado para imágenes de teledetección de gran volumen, que permiten capitalizar el conocimiento metodológico, y por lo tanto utilizar un enfoque gradual para beneficiarse de los resultados de la investigación metodológica.

El OTB se distribuye como una biblioteca de código abierto de algoritmos de procesamiento de imágenes. Su lema es "Orfeo Toolbox no es una caja negra", OTB alienta el acceso total a los detalles de todos los algoritmos. Algoritmos selectivos para imágenes de alta resolución óptica (Pléiades, SPOT, QuickBird, WorldView, Landsat, Ikonos), sensores hiperespectrales (Hyperion) o SAR (TerraSarX, ERS, PALSAR) están disponibles. 

OTB se distribuye bajo una licencia de software libre CeCILL (similar a la GPL), para fomentar la contribución de los usuarios y promover la investigación reproducible. La biblioteca es probado intensamente en varias plataformas como Linux, Unix y Windows. La mayoría de las funcionalidades también están adaptados para procesar enormes imágenes sin la necesidad de un superordenador usando streaming y multi-threading tan a menudo como sea posible.

¿Qué puede hacer el OTB?

Entre otros, OTB ofrece una serie de funcionalidades muy documentados como:
  • Acceso de imágenes: Acceso  lectura/escritura optimizado para la mayoría de los formatos de imagen de teledetección, acceso a metadatos, visualización;
  • Preprocesamiento estándar de teledetección: correcciones radiométricas, ortorrectificación;
  • Filtrado: Eliminación de ruido, mejoramiento;
  • Extracción de características: Puntos de interés(ROI);
  • Segmentación de la imagen: Región de cultivo, cuencas hidrográficas;
  • Clasificación: K-means, SVM (Máquinas de Soporte Vectorial), Campos aleatorios de Markov;
  • Detección de cambios;
  • Extracción de información para la integración en los sistemas de información geográfica (SIG) y cartografía.

Conociendo a Monteverdi 1&2

Monteverdi viene hacer "el compositor OTB", el cual permite la construcción de cadenas de procesamiento mediante la selección de módulos de un conjunto de menús. Es compatible con los datos raster y vectoriales y da acceso a funcionalidades OTB en una arquitectura modular. Fue desarrollado en 2009 para actividades de creación de capacidades (la enseñanza, la manipulación de imágenes simples, etc.). La aplicación se llama Monteverdi, debido al compositor de Orfeo, Claudio Monteverdi.

Monteverdi 1, presenta una ventana principal, donde los menús están disponibles (Figura 1) y donde se pueden ver los diferentes módulos que se han establecido para el procesamiento. Los datos de entrada son obtenidos de los lectores (Readers).Cuando usted elige utilizar un nuevo módulo, selecciona sus datos de entrada, y por lo tanto, se genera una secuencia canalización del procesamiento.

Figura 1: Ventana principal del Monteverdi 1.22

Con el Monteverdi 2, los creadores volvieron a trabajar el concepto de Monteverdi en un nuevo software, el cual desde 2012 empezó con un lanzamiento regular y un proceso de desarrollo iterativo cortos principalmente por la evaluación de los usuarios (feedback). 
En esta versión se ha renovado la interfaz gráfica de usuario (GUI), para ello se usó el kit de herramientas Qt (Figura 2); además presenta un visor moderno (navegación en las resoluciones, múltiples modos dinámicos de color ...); con un gestor de sesiones,  se puedo almacenar todos los conjuntos de datos y parámetros de visualización, esto ayuda mucho para retomar un trabajo iniciado y para temas de procesamiento, existe un acceso interactivo a las herramientas de aplicación OTB.


Figura 2: GUI de Monteverdi 2


1) Composición de Bandas


Vamos a realizar un procedimiento común cuando tenemos un grupo de bandas espectrales, para nuestro ejemplo usaremos imágenes del Landsat 8, los cuales están disponibles para su descarga desde EarthExplorer.

Datos: Para este ejercicio y todos los que vamos a realizar pueden descargar las siguientes imágenes desde aquí.

Figura 3: Lista de Bandas del Landsat 8

Para realizar este primer ejercicio vamos a emplear las dos versiones del Monteverdi.

  • Empleando Monteverdi 2


Paso 1: Dentro de la GUI del Monteverdi 2.08, nos vamos donde el botón de import image,  con el cual buscamos todas las bandas que se encuentran en la carpeta compartida (L8_AGOST_2014) y procedemos a importarlas. Con fines de trabajar ordenadamente, se ha creado dentro del panel de Datasets, un grupo específico denominado Datos_L8_Agosto_2014, tal como se aprecia en la Figura 4. 

Figura 4: Importando imágenes con el Monteverdi



Paso 2: Ahora dentro panel del buscador de aplicaciones (OTB Applications browser), buscar "Images Concatenation", una vez que hacemos doble clic sobre el mismo, nos aparece una pestaña al costado de la vista de imagen (Image view), al activar la pestaña nos aparece una ventana que nos permite arrastar las imágenes que deseamos concatenar, para nuestro caso vamos a considerar las seis bandas, indicándole también que lo llamaremos "concat_b2_b7_L8.tif", para finalizar solo hacemos clic en el botón "Execute".

Figura 5: Ejecutando la concatenación de imágenes

Paso 3: Con el resultado obtenido podemos visualizar varias composiciones de bandas, simplemente asignamos las bandas en los canales RGB, para ello, en la parte derecha hay un panel denominado "Color setup", en donde verificamos que están presentes las seis bandas del imagen, hay que tener en cuenta que el software inicia su numeración como bandas desde cero (BAND 0, BAND 1..BAND 5), es decir como nuestra primera banda es la B2, para el software sería la BAND 0. Ahora si deseamos mostrar la combinación del color verdadero, si estuviéramos trabajando con el Landsat 7, sería RGB 3-2-1, pero en el Landsat 8 sería RGB 4-3-2, es decir que para nuestro caso dentro de Color setup tendríamos que colocar BAND 2  (R) - BAND 1 (G) - BAND 0 (B), vamos hacer también las composiciones RGB 5-4-3 y RGB 7-5-3. Se recomienda consultar aquí para conocer las diferencias entre las bandas del Landsat 7 y Landsat 8 para realizar las principales composiciones de bandas.


Figura 6: Composición RGB 432 (Color verdadero)

Figura 7: Composición RGB 543 

Figura 8: Composición RGB 753

  • Empleando Monteverdi 1


Paso 1: Primero debemos ir a File-->Open dataSet, con ello nos aparecerá una pequeña ventana para localizar la imagen que deseamos importar, para luego convertirse en el Reader 0, y así sucesivamente lo hacemos con las demás imágenes.

Figura 9: Incorporando las imágenes en el Monteverdi 1.22


Paso 2: Luego de contar con todas la imágenes importadas, nos volvemos a dirigir a "File" para hacer clic en "Concatenate images", para que nos aparezca una ventana en donde debemos ir adicionando cada imagen, para ello primero se selecciona cada imagen, luego hacemos clic en el botón + , para que se vayan incorporando, cuando ya tenemos a todas las imágenes simplemente hacemos clic en Ok.


Figura 10: Preparando las imágenes que vamos a concatenar

Finalmente vamos a tener el siguiente resultado en nuestra ventana principal.

Figura 11: Resultado de la concatenación de imágenes

Paso 3: Ahora lo que debemos hacer es guardar el producto, para ello nos dirigimos a OutputImage y hacemos un clic derecho, con esto se activa una pequeña ventana que nos da la opción de salvar la imagen concatenada (Export dataset), simplemente le damos el nombre que deseamos. Pero lo que realmente nos importa es visualizar la imagen, por lo tanto, repetimos el último paso y nos vamos a "Display in viewer".


Figura 12: Opciones para exportar el resultado y para su visualización


Una vez activado el Display in viewer esto nos aparecerá dos ventanas, en una de ellas aparece una imagen por defecto con la combinación de tres bandas, y la ventana más pequeña nos permitirá modificar las opciones.

Figura 13: Visualización del resultado obtenido 

Paso 4: Ahora como paso final vamos a generar nuestras combinaciones de bandas, para ello nos dirigimos a la pestaña "Setup" de la ventana más pequeña, desde ahí elegimos la combinación de bandas que deseamos, en este caso se muestra las siguientes combinaciones RGB 543 y 753. 



Figura 14: Resultado de la combinación RGB 543

Figura 15: Resultado de la combinación RGB 753


Podemos apreciar que ambas versiones del Monteverdi finalmente llegan al mismo resultado, aunque fue un poco más rápido y dinámico con el Monteverdi 2, depende con cual de ellos se sienten más cómodos.

  • Empleando el GRASS dentro del QGIS

El QGIS junto con su complemento Processing, permite la incorporación de otras herramientas que incrementan la potencialidad para el análisis y procesamiento de los datos espaciales, entre esas herramientas tenemos al GRASS, el cual posee una librería de algoritmos que permite realizar múltiples aplicaciones, para nuestro caso vamos a usar aquella que nos facilita la composición de bandas espectrales. Antes que nada es importante ponerlo a punto para que funcione adecuadamente.

Figura 16: Activación de la aplicación GRASS


Paso 1: Abrimos el QGIS, luego desde nuestro panel de "Explorador" arrastramos las imágenes con las que vamos a trabajar, una vez que tenemos a las 6 imágenes que corresponden a las bandas 2,3..7, nos dirigimos a la caja de herramientas de procesado, en este caso para ahorrarnos tiempo en la búsqueda del algoritmo, podemos indicar en un recuadro que permite filtrar los nombres, nosotros colocaremos "composite" y se mostraran todos aquellos que coinciden, nosotros escogemos "r.composite", el cual nos permite crear una composición de 3 bandas en sus respectivos canales RGB.


Figura 17: Preparación para realizar la composición de bandas con GRASS


Paso 2: Una vez activado el algoritmo de GRASS "r.composite", nos aparece una ventana, en ella vamos a escoger las bandas que corresponden al color verdadero RGB 432, luego le damos un nombre, en este caso será "comp_432_verdadero.tif", finalmente solo hacemos clic en "Run".


Figura 18: Escogiendo las bandas para generar la composición RGB 432



Finalmente obtenemos el siguiente resultado:

Figura 19: Resultado obtenido al realizar la composición RGB 432


El resultado que se obtiene por lo general no se le fue asignado un sistema de referencia, por lo tanto va ser necesario emplear "Assign Projection.." ubicado dentro de Ráster en el menú de herramientas. Para este caso escoger el EPSG 32718 (WGS 84 / UTM zone 18S).

Figura 20: Para asignar un sistema de proyección a la salida de imagen.



Notas Finales

Muy bien, hemos logrado presentar algunas de las opciones que tenemos para realizar la composición de bandas espectrales, en esta oportunidad trabajando con bandas del Landsat 8. Como vieron, los procedimientos son bien sencillos y prácticos; mi objetivo principal fue mostrarles que existen herramientas de software libre capaces de realizar procesos ligados a la teledetección, si bien lo que se muestra es lo básico, en la segunda parte veremos procedimientos para determinar los índices de vegetación siendo el más conocido el NDVI, para lo cual de la misma manera lo mostraremos como se realizan con las dos versiones del Monteverdi y también con el QGIS.

Hasta la próxima entrega...