3 Operaciones sobre bandas de satélite

Partiendo de las bandas de satélite para nuestro municipio, podemos realizar diversas composiciones de color. En este caso, vamos a obtener el llamado color natural. También vamos a obtener a partir de ellas un índice de vegetación de la zona.

3.1 Color natural

Para obtener la composición color natural necesitamos las bandas 2, 3 y 4 de Landsat-8 o bien de Sentinel-2 (en ambos casos, esas bandas representan la misma información).

3.1.1 Obtención en QGIS

En primer lugar, tenemos que crear un ráster virtual con esas bandas (Ráster > Miscelánea > Construir ráster virtual…). En la ventana de selección múltiple de las bandas de entrada, hemos de tener presente el orden de las bandas que seleccionamos ya que, posteriormente, se nombrarán como Banda 1, Banda 2 y Banda 3, en lugar de sus nombres originales. Tenemos que saber qué banda es cada una.

Definir un ráster virtual multibanda.

Figura 3.1: Definir un ráster virtual multibanda.

En la ventana de definición del ráster virtual (figura 3.1), es muy importante dejar seleccionada la opción Place each input file into a separate band. Esta opción es la diferencia entre un ráster virtual multibanda (como es el caso) y otro compuesto por otros ráster que se solapan.

Definir un ráster virtual multibanda.

Figura 3.2: Definir un ráster virtual multibanda.

Una vez creada la nueva capa, tenemos que indicar qué bandas se corresponden con las bandas roja, verde y azul. Esto se define en las propiedades de la nueva capa, en el apartado Simbología (figura 3.2). Partimos de las bandas 2, 3 y 4, al incorporarlas en el ráster virtual son, respectivamente, las bandas Banda 1, Banda 2 y Banda 3. Si miramos en cualquiera de las tablas de descripción de bandas de Landsat-8 o de Sentinel-2, la banda 4 (Banda 3 en el ráster virtual) es la banda roja, la banda 3 (Banda 2 en el ráster virtual) es la verde y la banda 2 (Banda 1 en el ráster virtual) es la azul. Esto es lo que se define en la figura 3.2.

De igual forma, creando ráster virtuales con las bandas adecuadas, podemos generar las combinaciones que deseemos.

3.1.2 Combinar bandas en R

A continuación se muestra cómo combinar bandas en R, en particular usando el resultado de satres almacenado en un archivo. Si no se tienen las bandas en el mismo archivo, como es evidente, se han de leer por separado.

bboxr10m <- terra::rast("Pr04/sat_bbox/r10m.tif")

bands <- c(bboxr10m[['B04']], bboxr10m[['B03']], bboxr10m[['B02']])

terra::plotRGB(bands, stretch = 'lin')

terra::writeRaster(bands,
                   "Pr04/satfoto_lanjaron_bbox_jsamos.tif",
                   filetype = "GTiff",
                   overwrite = TRUE)

En este ejemplo, obtenemos el color verdadero a partir de las bandas con resolución de 10m, lo mostramos y lo almacenamos en un archivo.

3.2 Índice de vegetación

El Índice de Vegetación de Diferencia Normalizada (NDVI) se utiliza para estimar la cantidad y desarrollo de la vegetación de una zona. Se considera la medición de la intensidad de la radiación de algunas bandas del espectro electromagnético que la vegetación emite o refleja1.

Se define a partir de la banda roja (\(Red\)), que es la banda 4 de Landsat-8 y de Sentinel-2, y la banda correspondiente al infrarrojo cercano (\(NIR\)), banda 5 de Landsat-8 y banda 8 de Sentinel-2, mediante la siguiente expresión:

\[\begin{equation} NDVI = \frac{NIR - Red}{NIR + Red} \end{equation}\]

Los valores NDVI oscilan entre -1 y 1:

  • Vegetación sana: NDVI > 0.2.
  • Suelos desnudos o agua: NDVI cercano a 0 o negativo.

3.2.1 Obtención en QGIS

Para calcular el índice de vegetación, podemos usar los datos de las bandas ráster conjuntamente en la calculadora ráster, accesible desde Ráster > Calculadora ráster…

Cálculo del índice de vegetación en la calculadora ráster.

Figura 3.3: Cálculo del índice de vegetación en la calculadora ráster.

En la figura 3.3, se muestran las bandas de todos los ráster cargados en el proyecto, seleccionamos las bandas adecuadas según la expresión del índice (pulsando Doble-clic sobre el nombre de la banda en el apartado Bandas ráster, o sobre el operador en el apartado Operadores). La expresión definida se muestra en el apartado Expresión de la calculadora ráster. Podemos indicar el nombre de la capa de salida y el formato, o bien que se genere una capa temporal, en el apartado Capa de resultado.

Selección de la rampa de color.

Figura 3.4: Selección de la rampa de color.

Para mostrar los resultados de una forma más vistosa, podemos cambiar la rampa de color del ráster obtenido. Esa operación se realiza en el apartado Simbología de las propiedades del ráster (figura 3.4). En este caso, se ha seleccionado la rampa de color RdYlGn, en la que corresponden los colores verdes a los valores más altos del índice.

3.2.2 Cálculo en R

En R, teniendo cada banda en una variable, definimos la expresión como si operáramos con cualquier tipo de datos, en este caso estamos operando con matrices. El resultado es una banda que podemos presentar como cualquier otra. En este caso, la presentamos usando una paleta de colores personalizada, de manera que las áreas con mucha vegetación (con valores cercanos a 1) se muestren en color verde.

red <- bboxr10m[['B04']]
nir <- bboxr10m[['B08']]

ndvi <- (nir - red) / (nir + red)

colores_ndvi <- colorRampPalette(c("brown", "yellow", "green"))(100) 
terra::plot(ndvi, col = colores_ndvi, axes = TRUE)

Para exportar el resultado como una imagen:

png("ndvi.png", width = 800, height = 600)
terra::plot(ndvi, col = colores_ndvi, axes = TRUE)
dev.off()

  1. Se pueden encontrar más detalles en https://eos.com/es/make-an-analysis/ndvi/.↩︎