Durante los meses de diciembre a abril, Venezuela atraviesa la temporada seca, un período en el que la ocurrencia de incendios en parques nacionales y zonas con alta concentración de combustible forestal se vuelve más frecuente. Esta situación representa un desafío constante para las instituciones encargadas de la gestión ambiental, ya que, en muchos casos, los incendios son provocados por actividades humanas, como la limpieza de terrenos o la preparación de suelos para la agricultura.
Por ello, te comparto un tutorial que te permitirá calcular, a partir de imágenes satelitales, el área afectada por incendios. Con esta herramienta, podrás analizar y monitorear estos eventos, facilitando la toma de decisiones y la planificación de estrategias de mitigación.
Para calcular las áreas afectadas por incendios, utilizaremos imágenes del satélite Sentinel-2 y aplicaremos el Índice Normalizado de Área Quemada (NBR). Este índice es una herramienta clave para identificar y resaltar las zonas afectadas por el fuego en grandes extensiones de terreno.
El NBR se calcula mediante la combinación de longitudes de onda del infrarrojo cercano (NIR) y el infrarrojo de onda corta (SWIR), ya que, las áreas quemadas presentan una baja reflectancia en el NIR y una alta reflectancia en el SWIR, lo que permite diferenciar la vegetación sana de la dañada. Esta relación espectral facilita el análisis del impacto del fuego y ayuda en la planificación de estrategias de recuperación ambiental.
A continuación detallamos la fórmula que podemos usar para calcular el NBR:
Para el caso del ejercicio usaremos imágenes del Sentinel 2 por lo que las bandas necesarias serán las siguientes:
NIR= B8
SWIR= B12
Es importante destacar que al obtener nuestro análisis tendremos rangos del NBR entre -1 a 1, donde los valores negativos indican zonas afectadas por el fuego, mientras que los valores positivos indican zonas sanas o en regeneración.
Luego, analizaremos la severidad del incendio, la cual se determina a partir de la diferencia entre el NBR previo al incendio (Pre-Incendio) y el NBR posterior al incendio (Post-Incendio), obtenidos a partir de imágenes satelitales. Este cálculo nos da como resultado el dNBR (o ∆NBR), un indicador clave para evaluar el impacto del fuego en una determinada área.
Un valor alto de dNBR indica una mayor severidad en los daños ocasionados por el incendio, mientras que valores negativos pueden representar signos de regeneración vegetal, sugiriendo un nuevo crecimiento tras el evento.
A continuación, te explicamos el código utilizado en Google Earth Engine (GEE) para calcular el NBR. Si deseas una explicación más detallada y acceder al código completo, puedes visitar el siguiente enlace.
Explicación del Código
Paso 1: Configuración Inicial
- Definir el área de estudio:
Se asume que ya tienes definida una variable llamada geometry que representa el límite de tu área de estudio. - Centrar y visualizar el área:
Se utilizaMap.centerObject(geometry, 12);
para centrar el mapa en esa área. Además, se añade la geometría al mapa con un contorno rojo para identificar visualmente los límites.
Map.centerObject(geometry, 12);
Map.addLayer(geometry, {color: 'red', fillColor: '00000000'}, 'Área de Estudio');
Paso 2: Procesamiento de Imágenes Preincendio
- Filtrar la colección Sentinel-2:
Se utiliza la colección "COPERNICUS/S2_SR_HARMONIZED" para seleccionar imágenes del período preincendio (en este ejemplo, del 1 al 28 de marzo de 2024).
Se aplica el filtro espacial (filterBounds(geometry)
), temporal (filterDate
) y se descartan imágenes con alta cobertura de nubes (menos del 30%). - Crear el mosaico y recortar:
Con .mosaic()
se unen las imágenes en una sola capa. Luego, se recorta el mosaico usando clip(geometry)
para limitarlo a tu área de estudio. - Visualización y exportación:
La imagen preincendio se visualiza en falso color usando las bandas B11, B8 y B4. Finalmente, se exporta la imagen recortada.
Se utiliza la colección "COPERNICUS/S2_SR_HARMONIZED" para seleccionar imágenes del período preincendio (en este ejemplo, del 1 al 28 de marzo de 2024).
Se aplica el filtro espacial (
filterBounds(geometry)
), temporal (filterDate
) y se descartan imágenes con alta cobertura de nubes (menos del 30%).Con
.mosaic()
se unen las imágenes en una sola capa. Luego, se recorta el mosaico usando clip(geometry)
para limitarlo a tu área de estudio.La imagen preincendio se visualiza en falso color usando las bandas B11, B8 y B4. Finalmente, se exporta la imagen recortada.
// =============================================================================
// 1. IMÁGENES PREINCENDIO
// =============================================================================
// Se filtra la colección Sentinel-2 para el período preincendio (21 al 28 de febrero de 2024)
// (en este ejemplo se cambió la fecha a marzo para ajustarla a la solicitud).
var PreIncendio = ee.ImageCollection("COPERNICUS/S2_SR_HARMONIZED")
.filterBounds(geometry)
.filterDate('2024-03-01', '2024-03-28')
.filterMetadata('CLOUDY_PIXEL_PERCENTAGE', 'less_than', 30)
.mosaic();
print('Imagen PreIncendio:', PreIncendio);
// Definición de las bandas para la composición (falso color)
var exportBands = ['B11','B8','B4'];
// Se recorta la imagen al área de estudio
var PreIncendioClipped = PreIncendio.clip(geometry);
// Se visualiza la imagen preincendio (falso color)
Map.addLayer(PreIncendioClipped, {
min: 0.0,
max: 4000.0,
gamma: 0.5,
bands: exportBands
}, 'PreIncendio (B11-B8-B4)');
// Exporta la imagen compuesta preincendio (falso color)
Export.image.toDrive({
image: PreIncendioClipped.select(exportBands),
description: 'S2_20240221_FC_PreIncendio',
scale: 10,
region: geometry
});
Paso 3: Procesamiento de Imágenes Postincendio
- Filtrar la colección para el período postincendio:
Similar al paso anterior, pero usando imágenes del 1 al 28 de abril de 2024. - Mosaico y recorte:
Se genera el mosaico de imágenes postincendio y se recorta al área de estudio. - Visualización en dos composiciones:
Se visualiza la imagen recortada con dos combinaciones de bandas:- Falso color usando las bandas B11, B8 y B4.
- Otra composición usando las bandas B5, B4 y B3, lo que permite resaltar diferentes aspectos de la escena.
- Exportación:
Se exporta la imagen recortada en falso color.
// =============================================================================
// 2. IMÁGENES POSTINCENDIO
// =============================================================================
// Se filtra la colección Sentinel-2 para el período postincendio (1 al 28 de abril de 2024),
// se filtra por la extensión de estudio y se excluyen imágenes con alta cobertura de nubes.
var PostIncendio = ee.ImageCollection("COPERNICUS/S2_SR_HARMONIZED")
.filterBounds(geometry)
.filterDate('2024-04-01', '2024-04-28')
.filterMetadata('CLOUDY_PIXEL_PERCENTAGE', 'less_than', 30)
.mosaic();
print('Imagen PostIncendio:', PostIncendio);
// Se recorta la imagen al área de estudio
var PostIncendioClipped = PostIncendio.clip(geometry);
// Se visualiza la imagen postincendio (falso color) usando dos composiciones
Map.addLayer(PostIncendioClipped, {
min: 0.0,
max: 4000.0,
gamma: 0.5,
bands: exportBands
}, 'PostIncendio (B11-B8-B4)');
Map.addLayer(PostIncendioClipped, {
min: 0.0,
max: 4000.0,
gamma: 0.5,
bands: ['B5','B4','B3']
}, 'PostIncendio (B5-B4-B3)');
// Exporta la imagen compuesta postincendio (falso color)
Export.image.toDrive({
image: PostIncendioClipped.select(exportBands),
description: 'S2_20240327_FC_PostIncendio',
scale: 10,
region: geometry
});
Paso 4: Cálculo del Índice NBR
- Concepto del NBR:
El índice NBR se calcula con la fórmula: donde B8 es la banda del infrarrojo cercano (NIR) y B12 es la banda del infrarrojo de onda corta (SWIR). - Cálculo y visualización:
Se calcula el NBR para las imágenes preincendio y postincendio, se recortan al área de - estudio y se visualizan con una paleta de colores que resalta las diferencias en la vegetación.
- Exportación:
Ambos índices se exportan.
// =============================================================================
// 3. CÁLCULO DEL ÍNDICE NBR (NORMALIZED BURN RATIO)
// =============================================================================
// Para Sentinel-2, el índice NBR se calcula usando la banda NIR (B8) y la SWIR (B12).
// NBR para la imagen postincendio
var NBRPostIncendio = PostIncendio.normalizedDifference(['B8', 'B12']).rename('NBR_Post');
var NBRPostIncendioClipped = NBRPostIncendio.clip(geometry);
Map.addLayer(NBRPostIncendioClipped, {
min: 0.0,
max: 1.0,
palette: ['#7F0010', '#D99143', '#C04529', '#E02E20', '#EC6521', '#F6D53B']
}, 'NBR PostIncendio');
// Exporta el índice NBR postincendio
Export.image.toDrive({
image: NBRPostIncendioClipped,
description: 'NBR_PostIncendio',
scale: 10,
region: geometry
});
// NBR para la imagen preincendio
var NBRPreIncendio = PreIncendio.normalizedDifference(['B8', 'B12']).rename('NBR_Pre');
var NBRPreIncendioClipped = NBRPreIncendio.clip(geometry);
Map.addLayer(NBRPreIncendioClipped, {
min: 0.0,
max: 1.0,
palette: ['#7F0010', '#D99143', '#C04529', '#E02E20', '#EC6521', '#F6D53B']
}, 'NBR PreIncendio');
// Exporta el índice NBR preincendio
Export.image.toDrive({
image: NBRPreIncendioClipped,
description: 'NBR_PreIncendio',
scale: 10,
region: geometry
});
Paso 5: Análisis de la Severidad del Incendio
- Cálculo del Índice de Severidad:
Se determina la severidad restando el NBR postincendio del NBR preincendio: Una diferencia mayor indica mayor severidad en la quema. - Visualización y Exportación:
Se añade la capa resultante al mapa usando una paleta que enfatiza los cambios y - se exporta la imagen.
// =============================================================================
// 4. ANÁLISIS DE LA SEVERIDAD DEL INCENDIO
// =============================================================================
// Se calcula el índice de severidad como la diferencia entre el NBR preincendio y el NBR postincendio.
// Una mayor diferencia sugiere mayor severidad en la quema.
var IndiceSeveridad = NBRPreIncendioClipped.subtract(NBRPostIncendioClipped).rename('Indice_Severidad');
Map.addLayer(IndiceSeveridad, {
min: 0.0,
max: 1.0,
palette: ['011301', '011D01', '012E01', '023B01', '004C00', '056201',
'207401', '3E8601', '529400', '74A901', '99B718', 'FCD163',
'F1B555', 'DF923D', 'CE7E45', '66A000']
}, 'Índice Severidad Incendio');
// Exporta el índice de severidad
Export.image.toDrive({
image: IndiceSeveridad,
description: 'Indice_Severidad_Incendio',
scale: 10,
region: geometry
});
Conclusión
Este tutorial te guía a través de un flujo completo en GEE para analizar el impacto de incendios.
Primero, se procesan imágenes preincendio y postincendio, luego se calcula el índice NBR
para identificar áreas afectadas y finalmente se genera un índice de severidad que resalta
la diferencia en la vegetación. Cada paso incluye la visualización en el mapa y la opción
de exportar los resultados para un análisis posterior. Con este método, puedes documentar
y comparar de manera efectiva el impacto de los incendios en tu área de estudio.
📩 ¿Tienes dudas o quieres conectar?
Si necesitas más información, tienes preguntas sobre este tutorial o deseas discutir
proyectos en GIS, IA y desarrollo geoespacial, no dudes en contactarme:
👤 Nombre: Daniel León
📧 Correo Electrónico: dalpgis2022@gmail.com💡 ¡Hablemos de geotecnología!