Procesamiento y análisis de series temporales con GRASS GIS

Curso de Postgrado

Autor/a

Verónica Andreo

Fecha de publicación

15 de septiembre de 2023

Gran parte de la investigación en ecología y problemas asociados al ambiente en la actualidad requiere de conocimientos técnicos en el procesamiento avanzado de grandes conjuntos de datos espacio-temporales. En las dos últimas décadas se ha producido un cambio notable en la forma en que los datos se difunden de manera abierta y a través de Internet. Con esta libre disponibilidad de petabytes de datos de sensado remoto, modelos climáticos globales, redes de sensores y otros datos geoespaciales existe una urgente necesidad de formar usuarios en lo que respecta a su manejo eficiente y procesamiento. Las herramientas libres y de código abierto también han ganado gran popularidad y estabilidad, simultáneamente con la creciente cantidad de datos libres. Este curso abordará el procesamiento y análisis de datos espacio-temporales con GRASS GIS (https://grass.osgeo.org/).

GRASS GIS es un software que nació hace 40 años y sigue siendo hoy en día uno de los SIG libre y de código abierto más potentes y versátiles. Sus prestaciones de alto nivel y sus capacidades analíticas tanto en el trabajo con datos vectoriales como en el trabajo con datos raster, hacen de GRASS una excelente herramienta para desempẽnar trabajos de análisis espacial o geográfico en muchos campos de aplicacíon, desde el análisis ambiental hasta el análisis de redes, pasando por la teledetección o la simulación de modelos. GRASS GIS consta de más de 500 módulos base a los que se adicionan cientos de complementos que permiten extender su potencialidad para el procesamiento de datos raster, vectoriales, ráster 3D y temporales. Por otra parte, GRASS GIS puede ser un potente SIG de escritorio o la columna vertebral de una infraestructura SIG dadas sus diferentes APIs. Proporciona interfaces a muchos otros programas en geoestadística, bases de datos, servicios de mapas web y otros SIG como por ejemplo QGIS. Más aún, GRASS GIS se utiliza en el ámbito académico, en el escenario comercial y también en instituciones públicas de todo el mundo para una amplia gama de aplicaciones.

Objetivos

General:

  • Proveer una introducción general al software GRASS GIS y su utilización en el procesamiento y análisis de datos espaciales y temporales, incluyendo datos obtenidos de sensado remoto.

Específicos:

  • Introducir los conceptos básicos y la forma de trabajo en GRASS GIS.
  • Realizar ejercicios básicos de familiarización con el software y sus particularidades.
  • Introducir nociones sobre el manejo de datos raster en GRASS.
  • Introducir en la generación e implementación de rutinas para el procesamiento digital de imágenes y series temporales de imágenes.
  • Afianzar y profundizar conocimientos sobre técnicas de pre-procesamiento, procesamiento y análisis digital de datos satelitales.
  • Introducir conceptos y flujo de trabajo para realizar clasificación basada en objetos (OBIA).
  • Introducir en el análisis de series de tiempo de datos raster en GRASS GIS.
  • Introducir en la vinculación GRASS-Python y GRASS-R para el análisis y visualización de datos espacio-temporales.
  • Que las personas participantes puedan aplicar conceptos y funciones aprendidas a sus casos de estudio.

Contenidos

  • Unidad 1. Introducción a GRASS GIS: sus características y funciones. Conceptos básicos: GRASS database, proyectos (locations) y mapsets. Tipos de datos. Interfaces de uso: línea de comandos, interfaz gráfica, Python, R. Región computacional. Scripting. Visualización de datos espaciales y espacio-temporales. Interoperabilidad y reproducibilidad. Crear un proyecto e importar mapas a GRASS GIS.
  • Unidad 2. Procesamiento de datos satelitales en GRASS GIS. Datos ráster. Datos satelitales. Semantic labels. Manejo y procesamiento. Módulos y funcionalidades más relevantes. Índices espectrales. Clasificación. Ejemplos de procesamiento de datos Landsat y Sentinel-2.
  • Unidad 3. Análisis de imágenes basado en objetos en GRASS: Object based image analysis - OBIA. Conceptos básicos. Segmentación. Optimización de parámetros de la segmentación. Estadística de segmentos. Clasificación basada en objetos con datos de alta resolución.
  • Unidad 4. Series de tiempo en GRASS GIS. Conceptos básicos: base de datos temporal, topología y muestreo temporal, granularidad, tiempo absoluto y relativo, intervalos y eventos puntuales. Creación de series de tiempo y registro de mapas. Series de tiempo de datos raster, raster 3D y vectoriales. Procesamiento y análisis de series de tiempo de productos satelitales. Estadística descriptiva básica. Imputación de datos faltantes y reconstrucción de series de tiempo. Agregados y acumulaciones. Álgebra temporal. Cálculo de climatologías y anomalías. Obtención de índices fenológicos. Extracción de datos: datos puntuales, estadística zonal, extracción de datos temporalmente agregados.
  • Unidad 5. GRASS y R. Ejemplo de modelado de nicho ecológico combinando GRASS y R.
  • Unidad 6. Trabajo Integrador.

Metodología

El curso es principalmente práctico. Salvo el primer día, se trabajará mayormente con Jupyter notebooks. Las mismas podrán ejecutarse de manera local o en Google Colab o en la plataforma The Whole Tale.

Las personas participantes necesitan traer sus laptops con el software instalado y los datos descargados de antemano, ya que no se ha planificado una instancia de instalación de software durante el curso.

El curso es de un nivel intermedio. Se asumen conocimientos básicos de teledetección, SIG, línea de comandos, Python y R.

Importante

Quienes prefieran ejecutar todo el curso de manera local, es necesario que instalen una serie de paquetes que se detallan en la Sección 4.

Si bien la mayor parte del material del taller se puede ejecutar teóricamente en todas las plataformas, algunas partes requieren herramientas que pueden ser más difíciles de configurar en Windows.

Por lo tanto, para quien desee ejecutar todo el curso de manera local recomendamos trabajar en entornos Linux/Unix.

Dia 1: Ejecutamos GRASS localmente

Software necesario

Para el primer día del curso, vamos a ejecutar GRASS GIS de manera local. Por lo tanto, necesitamos traer GRASS GIS versión >= 8.2.0 y QGIS previamente instalados.

Datos necesarios

Día 2 al 5: Ejecutamos GRASS online

El resto del curso se ejecutará con notebooks en línea dentro de la plataforma Google Colab. Podemos visitar la web de preguntas frecuentes para obtener mayor información sobre el funcionamiento y las prestaciones de esta plataforma.

Otra opción es ejecutar las notebook dentro de la plataforma The Whole Tale. Whole Tale es una iniciativa de la Data Infrastructure Building Block (DIBBS) financiada por NSF para construir una plataforma escalable y multiusuario de código abierto, basada en la web para investigaciones reproducibles. Permite la creación, publicación y ejecución de tales: objetos de investigación ejecutables que capturan datos, código y el entorno de software completo utilizado para producir los resultados de la investigación. También es fantástico para enseñar, ya que los participantes no necesitan instalar todos los paquetes de software necesarios. ¡Solo necesitan registrarse con un correo electrónico institucional o personal y ya están listos para comenzar!

Cómo ejecutar Google Colab:

  1. Open colab: https://colab.research.google.com/
  2. File >> Open notebook
  3. Seleccionar “Github”
  4. En Repositorios poner: veroandreo/curso-grass-gis
  5. seleccionar la notebook que se desea ejecutar

Abrir el repo del curso en Colab

En Google Colab no tenemos preinstalado el software necesario, así que necesitaremos instalar en cada sesión. Para ello, tenemos una notebook con instrucciones que podemos luego copiar y pegar en cada notebook antes de comenzar.

Cómo ejecutar Whole Tale:

  1. Ir a Curso GRASS 2023
  2. Log in (hay diferentes opciones)
  3. Ejecutar la Tale (botón azul arriba a la derecha)
  4. Confirmar Copy y Run Tale
  5. Si sigue mostrando “Importing…”, recargar la página (F5)
  6. Run Tale
Importante

Las notebooks están preparadas por defecto para correr en el entorno de Colab conectado al Drive. Para ejecutar el curso en The Whole Tale, será necesario adecuar algunas rutas a carpetas y archivos, y para la sesión de GRASS y R, deberemos cambiar las celdas o chunks de python a r y borrar el comando mágico %%R.

Datos necesarios

Nota: Si van a usar Colab, pueden hacer una copia de esta carpeta directamente a su Google drive así queda todo listo para trabajar. Para quienes usen The Whole Tale, los datos ya están subidos en el entorno.

Software necesario para ejecutar el curso completo localmente

  • GRASS GIS >= 8.2.0
  • Python >= 3.7 con los siguientes paquetes:
    • jupyterlab, numpy, matplotlib, seaborn, scikit-learn, scipy, pandas, folium, sentinelsat
  • R >= 4.2 con los siguientes paquetes:
    • rgrass, sf, terra, raster, mapview, tmap, tmaptools, SDMtune, biomod2, dismo, usdm, glmnet, zeallot, ggpubr, caret, kernlab, e1071, randomForest, rpart, doParallel
  • QGIS

Nota para usuarios Ubuntu

Usar el PPA inestable de ubuntugis para obtener la última versión de GRASS GIS:

sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt update
sudo apt install grass grass-gui grass-dev

Agradecimientos

  • A todos los desarrolladores, usuarios y entusiastas del software libre y de código abierto (FOSS)
  • A la NASA y la ESA por poner a disposición del público los datos y productos satelitales
  • Al IGN e IDECOR por las capas vectoriales y de cobertura de acceso libre y gratuito