15 Sep 2020 Análisis de imágenes Copernicus con GRASS en el ámbito de la agricultura
Con este post continuamos la serie relativa al programa Copernicus, centrándonos aquí en el procesado y análisis de imágenes Copernicus en el ámbito de la agricultura.
Agricultura de precisión
La agricultura de precisión es una estrategia de gestión cuyo objetivo gira entorno a mejorar la eficiencia en el uso de recursos (agua, fertilizantes, etc) bajo criterios de productividad, calidad, rentabilidad y sostenibilidad para la producción agraria.
En este contexto, el análisis de imágenes de sateĺite es un recurso muy útil a tener en cuenta. Ofrecen información periódica, contrastada y a un coste relativamente bajo.
Los datos
Para mostrar algunos ejemplos de análisis de imágenes Copernicus en el ámbito de la agricultura de precisión, partiremos de unas imágenes del Sentinel-2. Este satélite ofrece imágenes ópticas de alta resolución de entre 10 y 60 metros con un período de revisita de unos 5 días.
En el post Visualizar y descargar imágenes de satélite a través de EO Browser y en el webinar Cómo obtener imágenes de satélite Sentinel se mostraron ya algunos de los procedimientos a seguir para obtener las imágenes ofrecidas por el programa Copernicus de observación de la Tierra. Recomendamos consultar esta documentación para seguir con el post si no estáis familiarizados con la obtención de imágenes Sentinel.
El software
En esta ocasión emplearemos el software GRASS. Se trata de un software SIG distribuïdo bajo licencia GNU GPL y que incluye muchas funcionalidades para la visualización, procesado y análisis de imágenes de satélite.
Primeros pasos: importación de las imágenes
En un Mapset de GRASS se pueden importar todas las bandas de una escena Sentinel 2 utilizando el módulo r.import. Resulta muy útil en estos casos, dado que permite importar de una sola vez todos los archivos de imagen de un directorio.
Importaremos en este caso las bandas correspondientes a dos escenas Sentinel-2 contiguas, relativas a la zona del Delta de l’Ebre en fecha 4 de Agosto de 2019.
A tener en cuenta: la corrección de las imágenes
La energía electromagnetica capturada por los sensores a bordo de los satélites está sujeta a diferentes tipos de errores que hay que tener en cuenta y corregir antes de trabajar con las imágenes. En caso de no hacerlo, cualquier información derivada de ellas resultaría incorrecta. Estos errores pueden ser geométricos (provocados por el movimiento del sensor o el relieve, entre otros factores) o radiométricos (entre los que se incluyen los provocados por la atmósfera).
Al descargar una imagen Sentinel 2, encontraréis la posibilidad de obtenerla en diferentes niveles de procesado:
Level-1C: incorpora las correcciones geométricas y radiométricas.
Level-2A: incorpora correcciones atmosféricas.
En caso de trabajar con imágenes 1C, desde GRASS podréis realizar la corrección usando los módulos i.attcorr o i.sentinel.preproc. Estos módulos utilizan el algoritmo 6S para llevar a cabo la corrección de las imágenes. La aplicación de este algoritmo implica la introducción de múltiples parámetros que pueda que desconozcamos, por lo que en muchos casos es recomendable usar las imágenes ya corregidas.
Mosaico de escenas
Las escenas Sentinel 2 se distribuien en tiles de 10.000km2. En muchas ocasiones nuestra zona objeto de estudio seguramente estará compuesta por más de una de estas escenas. Cuando esto ocurra, será necesario realizar un mosaico.
En esta ocasión haremos un mosaico de las dos escenas con las que trabajamos (correspondientes a la zona del Delta de l’Ebre) para las bandas relativas al rojo, verde, azul e infrarrojo cercano. Desde GRASS podemos utilizar el módulo r.patch para ello.
También podéis teclear directamente el comando en la consola de GRASS para llevar a cabo esta operación.
r.patch input=T31TBF_20190804T105031_B04_10m@PERMANENT,T31TCF_20190804T105031_B04_10m@PERMANENT output=b4
Antes de realizar el mosaico de diferentes escenas, es muy importante asegurarse de tener bien configurada la región de trabajao de GRASS. Esta debe abarcar la superfície de las dos escenas, y podéis configurarla con g.region.
Combinación de bandas
Una vez realizado el mosaico de las bandas, podéis llevar a cabo una composición de color RGB. De este modo, se asignarán las bandas indicadas a los canales Rojo, Verde y Azúl, ofreciendo interesantes visualizaciones. Desde GRASS, se utiliza el módulo r.composite para realizar combinaciones de color entre bandas.
A continuación puede visualizarse la imagen del Sentinel-2 en color infrarrojo. Para obtenerla se han combinado las bandas correspondientes al VNIR, Rojo e Infrarrojo. Esta combinación resulta muy útil para identificar vegetación sana, que se muestra en color rojo intenso, como por ejemplo los arrozales a punto para su cosecha.
Si al realizar una determinada composición de bandas, el resultado es una imagen muy oscura, utilizad previamente el módulo i.colors.enhance. Permite auto-balancear el color RGB de las bandas a partir de las que se hará posteriormente la composición.
La combinacion de colores RGB también puede realizarse con el módulo d.rgb. Es mucho más ágil (en cuanto a tiempo de procesado) que r.composite, dado que no almacena la imagen resultante.
En la siguiente imagen puede observarse una combinación RGB en color natural de la misma zona, utilizando d.rgb.
Otros ejemplos de composiciones interesantes a utilizar en el ámbito de la agricultura son:
- Infrarrojo de onda corta, con las bandas correspondientes al SWIR-NVIR-Rojo
- Agricultura, con las bandas correspondientes al SWIR-NIR-Azúl.
Índices de vegetación
A partir de las bandas de la imagen de satélite, también pueden calcularse diferentes índices de vegetación. Estos indicadores aportan información muy útil del estado de los cultivos, facilitando la toma de decisiones.
El NDVI (Normalized Difference Vegetation Index), cuyos valores se encuentran entre -1 y 1, permite localizar zonas con presencia de vegetación, pero también conocer factores tales como el vigor vegetativo, el estado fitosanitario o el contenido de agua en las hojas.
El NDVI se calcula a partir de las bandas correspondientes al Rojo e Infrarrojo:
NDVI = (Infrarrojo – Rojo) / (Infrarrojo + Rojo)
Desde GRASS, podemos utilizar la calculadora raster para realizar esta operación: r.mapcalc.
Sin embargo, disponemos del módulo i.vi, cuya finalidad es precisamente el cálculo de diferentes índices de vegetación entre los que se incluye también el NDVI.
Otros índices implementados en este módulo son:
- NDWI (Normalized Difference Water Index). Permite identificar masas de agua y zonas de elevada saturación de humedad. En los cultivos, facilita la detección temprana del estrés hídrico y controlar el riego.
- SAVI (Soil Adjusted Vegetation Index). Se trata de una modificación del índice NDVI. Incorpora un parámetro que minimiza las perturbaciones causadas por el suelo y debe estimarse en función de este. que corrige la influencia del brillo en el suelo, especialmente en zonas parcialmente cubiertas de vegetación. Es recomendable utilizar este índice en los estadios iniciales del desarrollo del cultivo.
- MSAVI (Modified Soil Adjusted Vegetation Index). Suele emplearse en zonas con una elevada presencia de suelo desnudo, donde índices como el NDVI proprcionan datos no válidos. Permite el seguimiento de las condiciones de cultivo en sus primeros estadios de desarrollo.
- ARVI (Atmospherically Resistant Vegetation Index). Se trata de un NDVI mejorado que tiene en cuenta los efectos de la atmósfera.
Esperamos que este post os haya resultado útil para descubrir algunas de las funcionalidades de GRASS para el análisis de imágenes Copernicus en el ámbito de la agricultura.