lunes, 22 de marzo de 2021

Uso de datos Lidar GEDI con QGIS apoyados con Python

 

En esta oportunidad motivado por poner en práctica una capacitación brindada por ARSET, les quiero mostrar el procedimiento que nos permite contar con los datos Lidar GEDI (Global Ecosystem Dynamics Investigation), instrumento que está a bordo de la Estación Espacial Internacional (ISS) y su misión tiene como objetivo caracterizar la estructura y la dinámica del ecosistema para permitir una cuantificación y una comprensión radicalmente mejorada del ciclo del carbono y la biodiversidad de la Tierra (1). 

Como lo mencionan en https://gedi.umd.edu/, GEDI proporcionará respuestas sobre cómo la deforestación ha contribuido a las concentraciones de CO2 atmosférico, cuánto carbono absorverá los bosques en el futuro y cómo la degradación del hábitat afectará la biodiversidad global. Todo ello gracias a que GEDI logra observar casi todos los bosques tropicales y templados utilizando un altímetro láser autónomo de la ISS. 

El instrumento GEDI es un sistema láser de detección de luz y rango (lidar) de clase geodésica compuesto por 3 láseres que producen 8 pistas paralelas de observaciones. Cada láser dispara 242 veces por segundo e ilumina un punto de 25 m (una huella) en la superficie sobre la que se mide la estructura 3D. Cada huella está separada por 60 m a lo largo de la vía, con una distancia entre vías de aproximadamente 600 m entre cada una de las 8 vías. Es importante mencionar que recopila datos a nivel mundial entre las latitudes 51.6 ° N y 51.6 ° SUna animación de cómo funciona lo encuentran aquí.

Patrón de muestreo terrestre de GEDI
(Fuente: https://gedi.umd.edu/instrument/specifications/)


Productos de GEDI:


En resumen con GEDI podremos tener información sobre la altura del dosel del bosque, la estructura vertical del dosel y la elevación de la superficie. Para ello están disponibles digamos tres tipos de productos, todos ellos tienen una resolución espacial de 25 m y son brindados en formato HDF5 (*.h5).

  • GEDI Level 1B: Producto de formas de ondas geolocalizadas (GEDI01_B). Contiene 85 capas para cada uno de los ocho haces. Deben considerar que tiene un tamaño de archivo aproximado de 7GB. Para mayor información pueden consultar aquí, también existe una guía de usuario del producto en pdf.
Formas de ondas geolocalizadas
(Fuente: Elaboración Propia, a partir de los datos GEDI01_B)


  • GEDI Level 2AProducto de métricas de altura y elevación geolocalizadas (GEDI02_A).  El producto contiene 156 capas para cada una de las ocho haces. Tiene el propósito de proporcionar la interpretación de la forma de onda y productos extraídos de cada forma de onda recibida de GEDI01_B, incluidas las métricas de elevación del suelo, altura superior del dosel y altura relativa (RH). Para mayor información pueden consultar aquí, contando también con una guía de usuario en pdf.
Fuente: https://lpdaac.usgs.gov/resources/e-learning/getting-started-gedi-l2a-data-python/


  • GEDI Level 2BProducto de métricas de cobertura de dosel y perfil vertical (GEDI02_B), teniendo el propósito de extraer métricas biofísicas en cada forma de onda GEDI. Las métricas proporcionadas incluyen cobertura de dosel, índice de área de planta (PAI), densidad de volumen de área de planta (PAVD) y diversidad de altura de follaje (FHD). El producto contiene 96 capas para cada uno de los transectos terrestes de ocho haces. Para mayor información pueden ingresar aquí.

Fuente: https://lpdaac.usgs.gov/resources/e-learning/getting-started-gedi-l2b-data-python/



Descarga de datos lidar GEDI


Luego de conocer el tipo de datos en función a los productos disponibles, ahora vamos a seguir una secuencia de pasos para descargarlos, apoyándonos de las herramientas que nos proporcionan, entre ellas vamos a enfocarnos en el uso de Python.

Paso 1: Seleccionar nuestra área de interés, aquí es importante poder trabajarlo dentro de QGIS, primero podemos generar un ámbito de estudio en formato ESRI Shapefile y luego poder exportarlo a un formato geojson. Para nuestro caso se ha seleccionado una zona montañosa ubicada dentro del Departamento de Ucayali en Perú (ambito_pucallpa.geojson). Si vemos sus propiedades podemos contar con información de la extensión que ocupa en coordenadas.

Selección del área de interés

Paso 2: Usar el servicio GEDI Finder, el cual es un servicio web para localizar órbitas GEDI (archivos) que se cruzan con un cuadro delimitador de entrada. Para usarlo simplemente debemos adicionar los parámetros necesarios para encontrar los gránulos que contienen datos dentro de la región de interés del usuario, el mismo que ya definimos en el paso anterior. El esquema a seguir en caso queremos descargar un producto GEDI02_B para dicho área de interés es el que se muestra en la siguiente figura:

Modelo a seguir para emplear el servicio GEDI Finder

 
Después de un tiempo en nuestro navegador web nos arroja el siguiente resultado:



Paso 3: Descargar directamente el archivo, para ello solo debemos hacer clic uno de los links que se generó, luego nos va a solicitar nuestras credenciales del EarthData, una vez ingresado nuestro usuario y contraseña la descarga empezará, es necesario guardarlo en una carpeta conocida. También se recomienda que la lista de links generados sean copiados a un editor de texto y guardarlo con la extensión *.csv.


Paso 4: Usar el script de Python GEDI_Subsetter, con la finalidad de convertir los productos de datos GEDI almacenados en formato HDF5, en archivos GeoJSON que se pueden cargar en SIG y software de percepción remota. Para ello debemos primero crear un "environment" en Anaconda, el mismo que debe contener algunas especificaciones en relación a la versión de Python y librerias requeridas. Simplemente nos vamos a un terminal de nuestro sistema para ingresar lo siguiente:

Creación de un ambiente con Conda denominado "gedi" junto a sus requisitos


Luego debemos activar el ambiente creado.

Activación del ambiente creado



Ahora podemos descargar el script GEDI_Subsetter.py dentro de nuestro ambiente de trabajo, una buena opción es clonarlo del repositorio en donde se ubica. Luego dentro de nuestro terminal ingresar la siguiente instrucción.

Ejecución del script de Python


Luego de un tiempo de procesamiento aparecerá dentro de la carpeta donde se ubica nuestro(s) productos GEDI, una subcarpeta denominada "output", en donde se guardará nuestro archivo en formato geojson.

Archivo en formato geojson generado


Paso 5: Visualización de nuestros datos en QGIS, puesto que ahora si lo podemos cargar para mostrar como podemos explorar los datos.

Vista luego de superponer un DEM y el archivo generado en formato geojson

En la imagen se puede apreciar las "huellas", las cuales están separadas a 60 metros y los transectos en distancias aproximadas de 600 metros.

Comprobación de las distancias de los transectos y de las huellas


Un paso necesario en abrir la tabla de atributos y en la columna que indica "l2b_quality_flag", eliminar los registros que tengan valores de cero.


Paso 6: Generar una visualización en 3D integrando una imagen y un archivo DEM, para ello vamos a necesitar tener instalado el plugin de QGIS denominado Qgis2threejs, el cual puede ser instalado desde el administrador de complementos. Para un mayor detalle de su uso puede ser consultado aquí.


Qgis2threejs dentro del administrador de complementos QGIS.


Ahora solo debemos activarlo y adicionamos a nuestro panel de capas una imagen de la zona que nos permitirá combinarla con nuestro DEM para generar una mejor visualización.

Capas listas para generar nuestra vista 3D


Debemos configurar nuestra capa "dem" para que se integre a nuestra imagen satelital (image6).




También debemos configurar nuestro capa del producto GEDI para tener una mejor visualización, como indicar que el tipo de objeto sea un cono, del mismo modo que el radio debe ser 25, considerando que la resolución espacial es de 25 metros y en la parte de altura, nuestra altura relativa (RH100) se divida por 100, con la finalidad de pasarlo de centímetros a metros. 




Si hacemos una ampliación veremos el detalle de las altitudes de los conos que simulan la geometría de la cobertura vegetal presente.



Muy bien, eso era lo que quería mostrarles, hay que tener en cuenta que el plugin te permite exportarlo en formatos de imagen y también en formato web, esta última opción es muy interesante.

Bueno, no quiero terminar sin antes agradecer los material de aprendizaje que brindar de manera libre los del programa ARSET de la NASA. Del mismo modo ellos han publicado un video que muestra gran parte del procedimiento seguido. 

Los datos empleados fueron del GEDI02_B:

Dubayah, R., Tang, H., Armston, J., Luthcke, S., Hofton, M., Blair, J. (2020). GEDI L2B Canopy Cover and Vertical Profile Metrics Data Global Footprint Level V001 [Data set]. NASA EOSDIS Land Processes DAAC. Accessed 2021-03-22 from https://doi.org/10.5067/GEDI/GEDI02_B.001


Referencias Consultadas:

  1. GEDI Overview: https://lpdaac.usgs.gov/data/get-started-data/collection-overview/missions/gedi-overview/
  2. GEDI-subsetter: https://git.earthdata.nasa.gov/projects/LPDUR/repos/gedi-subsetter/browse

2 comentarios:

Javiera dijo...

Hola! muchas gracias me ha sido de mucha utilidad! Tengo dudas respecto a por qué se eliminan los objetos que tienen 0 en la columna "l2b_quality_flag". Y si sabes como poder automatizar el proceso de descarga?


Gracias!

carlos carbajal dijo...

Saludos Javiera, disculpa lo tarde de mi respuesta. A ver, la eliminación de los "ceros", es digamos como un control de calidad, porque no van a representar nada en la imagen en 3D luego. En relación a la posibilidad de automatizar el proceso de descarga, he visto que hay scripts de Python para manipular la descarga, voy a investigar más sobre eso.
Gracias por tu comentario.