jueves, 28 de junio de 2018

Herramienta para visualizar datos ráster en el tiempo - EO Time Series Viewer



En esta oportunidad se muestra una herramienta disponible desde el QGIS 3 como complemento que permite visualizar imágenes de distintos sensores remotos con diferentes fechas de adquisición, nos referimos al EO Time Series Viewer, desarrollado por Benjamin Jakimow. En general el objetivo de esta entrada será demostrar el uso de la herramienta que nos ayuda en la visualización de un grupo de imágenes provenientes de los sensores del Sentinel2 y el Landsat 8, los cuales han sido adquiridos durante los últimos meses.

Datos de Ejemplo


Para el desarrollo de esta demostración se descargó de las fuentes disponibles las siguientes imágenes del Sentinel 2:
  1. S2A_MSIL1C_20180201T153611_N0206_R068_T17MPN_20180201T190246
  2. S2A_MSIL1C_20180502T153621_N0206_R068_T17MPN_20180502T221752
  3. S2A_MSIL1C_20180522T153621_N0206_R068_T17MPN_20180522T203523
  4. S2B_MSIL1C_20180127T153609_N0206_R068_T17MPN_20180127T184619
  5. S2B_MSIL1C_20171218T153609_N0206_R068_T17MPN_20171218T184243
Para el caso del Landsat 8 se uso : LC08_L1TP_010065_20180227_20180308_01_T1

Con todas las 6 imágenes se realizó el preprocesamiento necesario, luego fueron recortados en una cuadrícula de 20x20 km de una zona de interés, ubicada en el Departamento de Lambayeque en Perú. Luego de recortar todas las bandas, las mismas fueron apiladas (stack) para contar con las imágenes compuestas. Todo esto luego fue ordenado en grupos dentro de nuestro panel de capas, los cuales se pueden apreciar en la siguiente figura.


Primeras Experiencias


Antes de encontrar a EO Time Series Viewer, cuando intentaba evaluar diversas imágenes satelitales una herramienta que me ayuda mucho fue Temporal/Spectral Profile Tool, a través del cual se puede realizar el trazado interactivo de información temporal o espectral almacenada en imágenes multibandas. Cuando lo activamos podemos visualizar el trazado de los datos que se extraen de las imágenes como multibandas, desde donde podemos ir incorporando más de una imagen.


Incluso se cuenta con la ventaja de que podías extraer lo valores para ser copiados en el portapapeles y tener nuestro propio cuadro con los datos espectrales extraídos.



Pero cuando se incorpora la imagen Landsat 8, podemos apreciar que el gráfico se distorsiona un poco para lograr ajustar al número de bandas y en este caso como este último tiene solo 6 en lugar de los 10 del Sentinel 2.



Conociendo a EO Time Series Viewer


Luego de instalar el complemento junto con sus dependencias (paquetes de python: pyqtgraph y pyopengl), para lo cual se recomienda revisar aquí los pasos a seguir. Cuando activamos el complemento nos aparece la siguiente ventana con la interface de usuario.


Al igual que el QGIS, los paneles que lo componen pueden ser ajustados para que se ubiquen en distintos lugares, del mismo modo pueden ser activados y desactivados.

Sin pretender ser una guía detallada del complemento, una información más detallada lo pueden obtener desde aquí. Lo que se busca es resaltar las principales opciones y ventajas que se tiene al emplear este complemento.

Primeros Pasos


Lo primero que debemos hacer es incorporar nuestras imágenes, para ello empleamos la opción denominada "Add images to the time series". Luego dentro de "Sensors/Products", vamos a tener que editar el cuadro inicial indicando el satélite desde donde provienen las imágenes.


Lo interesante de esta herramienta es para visualizar las imágenes, a las mismas lo ordena por fecha de adquisición, sin importar si se trata de una imagen Landsat o de Sentinel. Si tenemos activado la pestaña "Time Series", se puede apreciar en la parte inferior una tabla que nos brinda información básica como el sensor, el número de bandas (nb), los píxeles en dirección x (ns) y en dirección y (nl), el sistemas de referencia (CRS) y al final la denominación de nuestra imagen.



Visualización de Mapas


Quizás el panel denominado "Maps" es uno de los más importantes por la variedad de opciones disponibles. Lo primero que vamos a resaltar es el hecho que podemos incorporar distintas vistas, todos ellos pueden diferenciarse por la combinación de bandas a emplearse. En este caso generamos tres vistas que nos permiten ver nuestra imagen con el zoom más adecuado con tres tipos de combinaciones. Es importante resaltar que para cada tipo de sensor se activa la opción para seleccionar las bandas disponibles.
En la imagen de abajo se muestra el detalle de una vista denominada "Agricultura", en donde para Landsat 8 (6,5,2), mientras que para el Sentinel 2 (11,8A, 2). Para otras combinaciones se puede revisar desde aquí. Tener en cuenta que la combinación de las bandas que se muestra está en función al orden de apilado realizado para cada sensor.



Otra ventaja que tenemos es la posibilidad de adjuntar una capa vectorial, sobre todo si tenemos identificado una zona de interés que nos permitirá realizar una mejor evaluación. En este caso a modo de ejemplo se adjunta una distribución de parcelas. Lo interesante es que podemos ajustar un estilo tal como lo haríamos en el QGIS.


Otro detalle que podemos resaltar es que nos permite contar con un punto de mira detallado y que puede ser personalizado con resaltado de píxeles y barra de escala. Se puede apreciar que se diferencia en función a la resolución de la imagen.



Existe un panel dedicado a identificar los valores en una posición específica, nos referimos a "Cursor Location Values", con el mismo concepto de QGIS cuando usamos una herramienta para identificador de valores ráster (por ejemplo "Value tool"). Nos brinda la información del píxel en las coordenadas que se indica.




Librería Espectral


Finalmente vamos a comentar sobre el panel denominado "Spectral Library", desde donde podemos generar la firma espectral en función a las bandas disponibles. Por defecto se encuentra activa la opción denominada "Add new profiles automatically to opened Spectral Library", con el cual podemos generar los perfiles en los puntos seleccionados sobre las imágenes, cada vez que hacemos un clic sobre la imagen se irán creando los valores, los mismo que luego pueden ser exportados en formatos de texto.


También podemos emplear la opción denominada "Select new profile from map", para visualizar una gráfica que irá variando según el punto seleccionado en nuestras imágenes. Por ejemplo si nos ubicamos dentro de una zona en donde existe presencia de vegetación, la curva tendrá la siguiente forma.





Ahora si ubicamos en una zona sin vegetación tendremos la siguiente gráfica.



Perfil Temporal


Para el caso del panel "Temporal Profiles", es interesante tener la opción de generar un gráfica que nos permite tener los valores (DN) en el tiempo (Date y DOY) para una determinada ubicación, pero sobre todo poder combinar nuestras bandas empleando para este caso el índice NDVI (para el sensor Sentinel). También se cuenta con la opción de establecer un estilo a la gráfica de perfil que se muestra.





Bueno, espero que puedan probar este complemento, hasta el momento puedo decir que me está ayudando mucho cuando requiero analizar varias imágenes al mismo tiempo, sobre todo sería muy útil para el monitoreo de coberturas en el tiempo.




2 comentarios:

JOSE SAITO dijo...

Buenas tardes Carlos..
He instalado el complemento EO TIME SERIOS VIEWER asi como los paquetes de python: pyqtgraph y pyopengl.
Pero al activar el complemento me sale el siguiente error.

No se pudo cargar el complemento 'timeseriesviewerplugin' debido a un error al llamar a su método classFactory()

Exception: Unable to import the following package(s):
pyqtgraph

Alguna sugerencia para poder activar el complemento...
MUCHAS GARCIAS POR TU AYUDA

Carlos Carbajal dijo...

Hola José, disculpa la demora en contestar, he tenido problemas con la página del blog. Por lo que me indicas es posible que no se instalaron bien los paquetes de Python, ten en cuenta que se deben instalar para la versión 3.x de Python. Debido a que este complemento solo funciona también con las últimas versiones de QGIS, debes tener en cuenta si lo instalaste con el OSGeo4W o con el instalador autónomo, la ubicación de los paquetes de Python cambian. Verifica con el explorador si los paquetes están bien ubicados.

Saludos,