
Proyecto Peridotita 9: ¿Frena la pendiente la recuperación del bosque?
Introducción
Desde la entrada sobre la lluvia (Proyecto Peridotita 3) llevamos rondando la misma sospecha: que el suelo erosionado de la peridotita, más que la falta de agua, es lo que está frenando la recuperación de Sierra Bermeja. Esta entrada ataca esa hipótesis desde un ángulo nuevo: si el agua se lleva el suelo fértil más rápido en las laderas empinadas, esas zonas deberían recuperarse más despacio que el terreno llano — algo que se puede comprobar cruzando el relieve de la sierra con la serie temporal de NBR que ya tenemos.
🔬 Pregunta de investigación
¿Se recuperan más despacio, en términos de NBR, las laderas con pendiente pronunciada (>25°) que las zonas de terreno llano (<15°) dentro del área quemada de Sierra Bermeja?
Un aviso antes de empezar: por qué esta entrada no es solo el resultado final
Intentamos primero resolver todo dentro del propio Google Earth Engine, generando una gráfica interactiva directamente en su editor (ui.Chart). No funcionó: pedir 60 meses de datos sobre toda la superficie de la sierra en una sola gráfica interactiva superó el límite de memoria del sistema, y el navegador se quedaba colgado sin avanzar. Tuvimos que cambiar de estrategia — en vez de pedirle a Earth Engine que calculara y dibujara todo de golpe, le pedimos solo que exportara una tabla de números (una tarea en segundo plano, con mucha más memoria disponible), y montamos la gráfica final en Python. Por el camino, además, descubrimos un error de cálculo real: la pendiente del terreno salía perfectamente plana en toda la sierra, un resultado absurdo que resultó deberse a que .mosaic() sobre el modelo de elevación pierde la información de proyección necesaria para calcular pendientes correctamente. Ambos tropiezos están documentados en el paso a paso, porque forman parte real del proceso.
Requisitos previos
- El shapefile oficial de Copernicus EMSR545 ya subido como asset en Earth Engine (ver Proyecto Peridotita 7).
- Cuenta de Google Colab para la gráfica final.
Paso 1: Calcular la pendiente correctamente
(Pega esto en Earth Engine. La línea del .reproject() es la que soluciona el error de cálculo que mencionamos arriba — sin ella, la pendiente sale plana en toda la sierra por error)
var perimetroOficial = ee.FeatureCollection('RUTA_DE_TU_ASSET');
var aoi = perimetroOficial.geometry().simplify(100);
var dem = ee.ImageCollection('COPERNICUS/DEM/GLO30').select('DEM').mosaic()
.reproject('EPSG:32630', null, 30); // UTM zona 30N, 30m — sin esto, la pendiente sale mal
var pendiente = ee.Terrain.slope(dem).clip(aoi);
var llano = pendiente.lt(15).selfMask();
var empinado = pendiente.gt(25).selfMask();
Para verificar este paso: antes de seguir, comprueba con un reduceRegion de percentiles que la pendiente varía de verdad por la zona (percentiles muy distintos entre sí, no todos el mismo número). Con nuestros datos, la mediana de pendiente de Sierra Bermeja salió en 22,6°, con un 40% de la superficie por encima de 25°.
Paso 2: Exportar la serie temporal como tabla (no como gráfica)
var startDate = ee.Date('2021-09-01');
var endDate = ee.Date('2026-09-01');
var nTrimestres = endDate.difference(startDate, 'month').divide(3);
var listaTrimestres = ee.List.sequence(0, nTrimestres.subtract(1));
var s2Nbr = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
.filterBounds(aoi)
.filterDate(startDate, endDate)
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 15))
.map(function(img) {
return img.normalizedDifference(['B8', 'B12']).rename('NBR')
.copyProperties(img, ['system:time_start']);
});
var tabla = ee.FeatureCollection(listaTrimestres.map(function (t) {
var inicio = startDate.advance(ee.Number(t).multiply(3), 'month');
var fin = inicio.advance(3, 'month');
var nbrMedia = s2Nbr.filterDate(inicio, fin).mean();
var statsLlano = nbrMedia.updateMask(llano).reduceRegion({
reducer: ee.Reducer.mean(), geometry: aoi, scale: 150, maxPixels: 1e9, bestEffort: true
});
var statsEmpinado = nbrMedia.updateMask(empinado).reduceRegion({
reducer: ee.Reducer.mean(), geometry: aoi, scale: 150, maxPixels: 1e9, bestEffort: true
});
return ee.Feature(null, {
'fecha': inicio.format('YYYY-MM-dd'),
'nbr_llano': statsLlano.get('NBR'),
'nbr_empinado': statsEmpinado.get('NBR')
});
}));
Export.table.toDrive({
collection: tabla,
description: 'pendiente_vs_nbr_trimestral',
folder: 'proyecto_peridotita_dnbr',
fileNamePrefix: 'pendiente_vs_nbr_trimestral',
fileFormat: 'CSV'
});
Para verificar este paso: NO incluyas capas Map.addLayer mientras generas esta tabla — pintar el mapa de pendientes en pantalla es precisamente lo que colgaba el navegador. Ejecuta solo el cálculo y la exportación; el mapa se puede volver a activar después, una vez la tabla ya esté a salvo en Drive.
Paso 3: Graficar en Colab
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_csv("pendiente_vs_nbr_trimestral.csv")
df["fecha"] = pd.to_datetime(df["fecha"])
df = df.sort_values("fecha")
fig, ax = plt.subplots(figsize=(11, 6))
ax.plot(df["fecha"], df["nbr_llano"], color="#1a73e8", marker="o", linewidth=2, label="Zonas llanas (<15°)")
ax.plot(df["fecha"], df["nbr_empinado"], color="#d93025", marker="o", linewidth=2, label="Laderas empinadas (>25°)")
ax.set_xlabel("Fecha")
ax.set_ylabel("Índice NBR medio")
ax.set_title("Recuperación del NBR según la pendiente del terreno\nSierra Bermeja (2021-2026)")
ax.legend(loc="lower right")
ax.grid(alpha=0.25)
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig("pendiente-vs-nbr.png", dpi=150)
plt.show()
Resultado

La línea azul (terreno llano) se mantiene por encima de la roja (laderas empinadas) durante prácticamente toda la serie, desde finales de 2021 hasta 2026 — con dos momentos en los que ambas líneas se acercan bastante (principios de 2022 y mediados de 2025), pero sin llegar a cruzarse de forma sostenida. El patrón general es consistente durante los cinco años completos: el terreno llano recupera un NBR más alto que las laderas empinadas en casi todas las fechas medidas.
En el último año de datos disponibles, la diferencia media entre ambas zonas es de 0,027 puntos de NBR a favor del terreno llano — una diferencia modesta pero constante a lo largo de toda la serie, no un efecto puntual de una sola fecha.

Interpretación
Este resultado encaja con la hipótesis que veníamos arrastrando desde la entrada de la lluvia: no es solo que llueva más o menos, es que en las laderas empinadas el agua de lluvia se lleva el poco suelo fértil que queda tras el incendio antes de que la vegetación pueda aprovecharlo, mientras que en las zonas llanas el suelo (y los nutrientes que contiene) se queda donde cae la lluvia. La pendiente, no solo la cantidad de lluvia, parece ser una pieza importante de por qué Sierra Bermeja tarda tanto en recuperarse — reforzando la Hipótesis B que planteamos hace varias entradas: el suelo, más que el agua, manda.
Como siempre, una gráfica de cinco años con datos trimestrales tiene ruido estacional de por medio, y esta comparación por sí sola no demuestra una relación causa-efecto — pero es la segunda pieza de evidencia (junto con la del suelo erosionado y expuesto que ya documentamos) que apunta en la misma dirección.
Idea 1: “Proyecto Peridotita #8: ¿Frena la pendiente la regeneración del bosque? El impacto de la erosión del suelo”
- Concepto: Llevar los datos que acabamos de extraer en GEE directamente al formato del blog, conectándolos con el episodio #3 (lluvias de AEMET).
- La hipótesis científica: Las laderas con pendientes superiores a $25^\circ$ sufren un mayor lavado de nutrientes y pérdida de capa orgánica por escorrentía cuando llueve torrencialmente, lo que ralentiza significativamente la recuperación del NBR en comparación con las zonas llanas ($<15^\circ$).
- Lo que aportaréis:
- La gráfica bimensual/mensual que acabamos de generar, mostrando el desfase entre ambas curvas.
- Un mapa de superposición que identifique las “zonas rojas de doble riesgo”: mucha pendiente + bajo NBR, que son las áreas prioritarias donde la administración debería aplicar técnicas de bioingeniería (como albarradas de madera o mulching).
Idea 2: “Proyecto Peridotita #9: Un modelo predictivo multimodal de riesgo: Uniendo Pendiente, LST, Lluvia y NBR con IA”
- Concepto: Integrar todo el trabajo previo (episodios #4, #6 y #7) en un único pipeline de Inteligencia Artificial en LearningML o Python.
- La hipótesis científica: La recuperación del matorral/pinar no depende de una sola variable, sino de un ecosistema multivariable.
- Lo que aportaréis:
- Un dataset combinado donde cada punto del terreno tiene 4 atributos: Pendiente (Copernicus DEM), Temperatura superficial / LST (Landsat/Sentinel-3, post #6), Precipitación acumulada (AEMET, post #3) y Estado de recuperación (NBR).
- Entrenar un árbol de decisión o clasificador para que el alumnado prediga qué zonas de Sierra Bermeja tardarán más de 10 años en recuperarse (enlazando con el ajuste matemático del post #4).
- Demostrar en Climate Detectives cómo la IA no solo sirve para clasificar imágenes pasadas, sino para predecir el riesgo futuro de desertificación.
Idea 3: “Proyecto Peridotita #10: La anomalía geológica: ¿Por qué el suelo de peridotitas responde distinto a las calizas vecinos?”
- Concepto: Poner el foco en la verdadera identidad del proyecto: las peridotitas (rocas ígneas ricas en metales pesados como hierro, magnesio, níquel y cromo) frente a sierras adyacentes de diferente litología (como las calizas de Sierra de las Nieves).
- La hipótesis científica: La química particular del suelo peridotítico impone un estrés hídrico y edáfico añadido a la vegetación post-incendio, modificando las constantes de la curva matemática de recuperación respecto a bosques sobre otros sustratos.
- Lo que aportaréis:
- Un análisis comparativo en GEE entre una zona quemada sobre peridotita vs. una zona sobre caliza/granito.
- Explicar por qué las especies endémicas (Pinus pinaster acantonado, Porella teora, etc.) tienen dinámicas de resiliencia únicas.
- Opcionalmente, introducir una pincelada de Sentinel-1 (Radar SAR) para demostrar cómo se puede medir la rugosidad de la estructura vegetal sin importar la cobertura de nubes.
Idea 1: “Proyecto Peridotita #8: ¿Frena la pendiente la regeneración del bosque? El impacto de la erosión del suelo”
- Concepto: Llevar los datos que acabamos de extraer en GEE directamente al formato del blog, conectándolos con el episodio #3 (lluvias de AEMET).
- La hipótesis científica: Las laderas con pendientes superiores a $25^\circ$ sufren un mayor lavado de nutrientes y pérdida de capa orgánica por escorrentía cuando llueve torrencialmente, lo que ralentiza significativamente la recuperación del NBR en comparación con las zonas llanas ($<15^\circ$).
- Lo que aportaréis:
- La gráfica bimensual/mensual que acabamos de generar, mostrando el desfase entre ambas curvas.
- Un mapa de superposición que identifique las “zonas rojas de doble riesgo”: mucha pendiente + bajo NBR, que son las áreas prioritarias donde la administración debería aplicar técnicas de bioingeniería (como albarradas de madera o mulching).
Idea 2: “Proyecto Peridotita #9: Un modelo predictivo multimodal de riesgo: Uniendo Pendiente, LST, Lluvia y NBR con IA”
- Concepto: Integrar todo el trabajo previo (episodios #4, #6 y #7) en un único pipeline de Inteligencia Artificial en LearningML o Python.
- La hipótesis científica: La recuperación del matorral/pinar no depende de una sola variable, sino de un ecosistema multivariable.
- Lo que aportaréis:
- Un dataset combinado donde cada punto del terreno tiene 4 atributos: Pendiente (Copernicus DEM), Temperatura superficial / LST (Landsat/Sentinel-3, post #6), Precipitación acumulada (AEMET, post #3) y Estado de recuperación (NBR).
- Entrenar un árbol de decisión o clasificador para que el alumnado prediga qué zonas de Sierra Bermeja tardarán más de 10 años en recuperarse (enlazando con el ajuste matemático del post #4).
- Demostrar en Climate Detectives cómo la IA no solo sirve para clasificar imágenes pasadas, sino para predecir el riesgo futuro de desertificación.
Idea 3: “Proyecto Peridotita #10: La anomalía geológica: ¿Por qué el suelo de peridotitas responde distinto a las calizas vecinos?”
- Concepto: Poner el foco en la verdadera identidad del proyecto: las peridotitas (rocas ígneas ricas en metales pesados como hierro, magnesio, níquel y cromo) frente a sierras adyacentes de diferente litología (como las calizas de Sierra de las Nieves).
- La hipótesis científica: La química particular del suelo peridotítico impone un estrés hídrico y edáfico añadido a la vegetación post-incendio, modificando las constantes de la curva matemática de recuperación respecto a bosques sobre otros sustratos.
- Lo que aportaréis:
- Un análisis comparativo en GEE entre una zona quemada sobre peridotita vs. una zona sobre caliza/granito.
- Explicar por qué las especies endémicas (Pinus pinaster acantonado, Porella teora, etc.) tienen dinámicas de resiliencia únicas.
- Opcionalmente, introducir una pincelada de Sentinel-1 (Radar SAR) para demostrar cómo se puede medir la rugosidad de la estructura vegetal sin importar la cobertura de nubes.
Etiqueta:AIDARAC, ciencia de datos, Climate Detectives, DEM, ESA, ies monterroso, Málaga, montesteam, nbr, pendiente, Proyecto Peridotita, sierra bermeja



