Mostrando las entradas con la etiqueta Monteverdi. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Monteverdi. Mostrar todas las entradas

sábado, 14 de marzo de 2015

Teledetección con ORFEO Toolbox y QGIS Parte II


A pesar que ha pasado mucho tiempo, voy a cumplir con lo prometido, es decir mostrar cómo podemos calcular el NDVI (Normalized Difference Vegetation Index) empleando Monteverdi2, el cual viene hacer una de sus principales aplicaciones del ORFEO Toolbox, tal como vimos en la anterior entrada cuando lo describimos.

Dentro del procesamiento digital de imágenes realizaremos lo que vendría hacer una transformación de imagen, debido a que estamos involucrando el uso de múltiples bandas de datos, en general dichas transformaciones generan "nuevas" imágenes de dos o más fuentes que resaltan las características particulares o propiedades de interés, mejor que las imágenes de entrada. 

¿Qué es el NDVI?


Figura. 1: NDVI  - MODIS (Moderate Resolution Imaging Spectroradiometer)


Este contenido tiene como objetivo aprender a calcular un índice basado en cocientes, para lo cual vamos a conocer una técnica muy empleada para el monitoreo de las condiciones de vegetación, nos estamos refiriendo al Indice de Vegetación de Diferencia Normalizada (NDVI). Sin ánimos de profundizar el tema, podemos decir que el NDVI indica la abundancia y el estado de la vegetación, basados en el comportamiento reflectivo peculiar de la vegetación. En resumen, la firma espectral característica de la vegetación sana muestra un fuerte contraste entre la baja reflectividad en el rojo y una alta reflectividad en el infrarrojo cercano; esta diferencia es tanto mayor cuanto mayor es la densidad de la vegetación y mejor su estado fitosanitario. 

Los valores del NDVI esta acotado entre -1 a 1 y presenta la siguiente ecuación:


Donde:
IRp = reflectividad en el infrarrojo cercano
R    = reflectividad en el rojo


Calculando el NDVI con el Monteverdi 2


Para realizar este ejercicio emplearemos los mismos datos compartidos en la anterior entrada, es decir lo pueden descargar desde aquí.

Ahora debemos tener claro las bandas del satélite LandSat 8 con las que vamos a trabajar, para lo cual repasemos la siguiente tabla:


De acuerdo a la tabla solo necesitaremos emplear la banda 5 (NIR) y la banda 4 (rojo).

  • Como primer paso abrimos el software Monteverdi 2 V0.8, si no lo tienen lo pueden descargar desde aquí.
  • Ahora que tenemos los datos y el programa abierto, hacemos clic sobre File --> Import Image y buscamos los dos archivos con los que vamos a trabajar: LC80060662014227_B4 y LC80060662014227_B5.

Figura. 2: Vista del Monteverdi 2 con las bandas 4 y 5

  • Nuestro siguiente paso será buscar el algoritmo que nos permita generar el NDVI a partir de ambas bandas, para ello dentro del OTB Applications Browser colocamos la palabra clave "math", porque lo que vamos a realizar será una operación matemática para reproducir la ecuación del NDVI.
Figura 3: Algoritmo del OTB requerido

  • Luego con hacer clic sobre Band Math nos aparece en el escritorio del programa una pestaña específica para ingresar los datos requeridos, para ello simplemente arrastramos desde los Datasets, tal como se aprecia en la siguiente figura:
Figura 4: Ingresando las bandas 4 y 5 para ejecutar el algoritmo

  • Ahora debemos especificar la ecuación que vamos a considerar y darle también un nombre al archivo raster de salida. Para entender cómo reconoce el Monteverdi las bandas, se debe tener en cuenta que como se trata de bandas independientes cada una de ellas tendría el siguiente esquema "imN1bN2", en donde N1 es el número de imagen considerado y N2 la banda que se considera, es decir que si trabajamos con una imagen que presenta una combinación de bandas, el valor de N2 puede variar desde el 1 hasta el número máximo de bandas que compone la imagen. Para nuestro caso solo se considera una sola banda por imagen, por lo tanto la ecuación sería tal como se aprecia en la figura de abajo.
Figura 5: Generación de la ecuación para obtener el NDVI


  • Luego de hacer clic en "Execute", tendremos el siguiente resultado en nuestra vista.
Figura 6: Resultado del  cálculo del NDVI

  • Para contar con una mejor visualización, se recomienda seguir los pasos de la entrada anterior cuando aprendimos a realizar composición de bandas, es decir que deberíamos realizar la composición de las bandas B2, B4 y la que acabamos de generar (ndvi_opc1), cuando obtenemos esa composición dirigimos los canales de las bandas adecuadas, es decir que el canal que correspondiente al verde hacer que coincida con el NDVI y con ello tendremos la siguiente imagen.
Figura 7: Ajuste de bandas para visualizar el NDVI

  • Como consideración final existe una manera más directa para realizar el cálculo del NDVI, aunque personalmente considero que escribir la ecuación completa es lo más recomendable. En la parte donde se coloca la ecuación debemos incorporar para nuestro caso lo siguiente.

  • Recomiendo también que practiquen con imágenes compuestas y generen ecuaciones que permitan no solo el cálculo del NDVI sino otros índices relacionados al monitorio de vegetación.

Calculando el NDVI dentro del QGIS


Para complementar lo ofrecido vamos a ver las opciones que tenemos si nos encontramos dentro del QGIS, en esta oportunidad contamos con la facilidad de poder tomar varios caminos, es decir podemos emplear el GRASS que se ubica dentro de nuestra caja de herramientas de procesado (el complemento Processing debe estar activado), a través del r.mapcalculator , para lo cual tendremos que introducir la formula del NDVI.

Figura 8: Cálculo del NDVI con GRASS


La otra opción que tenemos y que no solo nos proporciona el NDVI sino otros índices de vegetación, lo conseguimos a través del SAGA, presente también dentro de la caja de herramientas de procesado con el algoritmo Vegetation Index (slope based), el cual presenta la característica de calcular hasta siete tipos de índices de vegetación. Para mayor detalle de éstos índices se recomienda revisar a partir de la página 249 de la publicación denominada User Guide for SAGA (version 2.0.5).

Cuando empleamos esta opción, nuestra ventana debe ser llenado tal como se muestra en la Figura 9, teniendo en cuenta que para nuestro caso solo nos interesa que se muestre el NDVI.


Figura 9: Cálculo de Indices de vegetación con SAGA 


Una vez realizado tanto a través del GRASS como por el SAGA nos van a brindar los mismos resultados que los obtenidos con el Monteverdi. Ahora de la misma manera podemos ajustar las bandas para tener una mejor visualización del NDVI, para ello debemos generar una composición de bandas considerando la que acabamos de calcular; por lo generar dentro del QGIS esto se logra fácilmente si nos vamos a herramientas de Ráster ---> Miscelánea --->Combinar...

Figura 10: Herramientas ráster para realizar composición de imágenes


Luego de seleccionar las tres (3) bandas o imágenes, simplemente hay que asegurarse de hacer solamente check en donde indica "pila de capas", los demás deben estar libres. Finalmente dentro de "Estilo" ajustamos las bandas a los respectivos canales, cuidando de que la imagen del NDVI se ubique en el canal de la banda verde.

Figura 11: Ajuste de las bandas a los canales de colores respectivos

Como resultado final tendremos una imagen como la obtenida anteriormente y si activamos el complemento de "Value Tool", podemos desplazarnos con el mouse y ver los valores de píxel de las tres bandas.

Figura 12: Resultado final con la imagen del NDVI calculado


Espero que esta entrada haya despertado el interés del uso de esta herramienta, en una próxima oportunidad se realizará otro tipo de procesamiento digital de imágenes.




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...