/ Proyectos / AgriTech / Clasificación de degradación

Clasificación de degradación de pastizales con NDVI: optimizando datos satelitales de Sentinel-2 y Landsat

Estimación de biomasa y clasificación de degradación combinando imágenes hiperespectrales, composición florística y caracterización de suelo.

12 min de lectura Python · rasterio · scikit-learn Datos: Sentinel-2 y Landsat Aplicable a tesis de maestría
Cuencas de Pomacochas y Ventilla analizadas con imágenes Sentinel-2 y Landsat para clasificar degradación de pastizales

El objetivo era clasificar el grado de degradación de pastizales y estimar su biomasa combinando imágenes hiperespectrales con datos de campo, sobre composición florística, caracterización de suelo e índices de vegetación (NDVI, GNDVI, SAVI, entre otros). El problema real: la degradación se calculó con una sola imagen satelital, así que todas las parcelas quedaron con la misma etiqueta.

Se entrenaron SVM y Random Forest sobre esos mismos datos; Random Forest obtuvo un RMSE de 284.33 en biomasa frente a 831.58 del SVM. Pero el hallazgo más importante fue otro: el modelo de clasificación entrenado en la cuenca de Pomacochas solo alcanzó 30% de accuracy al probarse en la cuenca de Ventilla — no generalizó entre cuencas.


Mapa del casoContenido


Estructura de alto nivelDiagrama de la solución

Fuente Composición florística Fuente Caracterización de suelo Fuente Información visual Limpieza y preparación Nulos · frecuencias · correlación · codificación de categorías Unir en un solo dataset Una fila por parcela Separar por cuenca Pomacochas / Ventilla Pomacochas Ventilla Escalar atributos Escalar atributos Modelo RF · SVM · LR Modelo RF · SVM · LR Predicción Degradación 0–3 Predicción Degradación 0–3

Pasa el cursor sobre cada bloque para ver qué hace ese paso.

Los dos datasets (Pomacochas y Ventilla) se mantuvieron separados desde el preprocesamiento porque su composición florística difiere — unirlos antes de tiempo habría escondido justo la limitación de generalización que el proyecto terminó revelando.


Cómo se construyóConstrucción de la solución

Condiciones del proyecto

RestricciónDato
Imágenes hiperespectrales disponiblesUna sola imagen, misma degradación asignada a todas las parcelas
Bandas por imagen10 bandas (no 3 como en RGB), requiere rasterio
Cuencas con composición florística distintaPomacochas y Ventilla
Datos de campoPocos registros por cuenca
OpciónPor qué se descartó
Un solo modelo entrenado con ambas cuencas mezcladasLa composición florística difiere entre cuencas — mezclar hubiera ocultado la limitación real de generalización
One-hot encoding para todas las familias botánicasDemasiadas categorías — dispararía la dimensionalidad del dataset
Label encoding para familias + one-hot solo para forrajera/no forrajeraMantiene la dimensionalidad manejable sin perder la variable categórica de familia

Pasos

1

Cálculo de índices de vegetación desde las bandas hiperespectrales

Agente: propuso las fórmulas estándar de NDVI, GNDVI y SAVI.
Criterio aplicado: validar manualmente qué banda de las 10 correspondía a cada longitud de onda antes de aplicar la aritmética — un error aquí invalida todos los índices derivados.

2

Codificación de variables categóricas

Agente: sugirió one-hot encoding para todas las variables categóricas por defecto.
Criterio aplicado: usar label encoding para familia botánica por su alta cardinalidad, y reservar one-hot solo para forrajera/no forrajera.

3

Entrenamiento de SVM y Random Forest

Agente: generó el pipeline estándar de scikit-learn para ambos modelos.
Criterio aplicado: comparar ambos con RMSE en vez de asumir que el modelo más complejo (SVM) sería el mejor — Random Forest terminó ganando.

4

Validación cruzada entre cuencas

Agente: no propuso esta prueba por defecto.
Criterio aplicado: decisión propia de probar el modelo entrenado en Pomacochas contra los datos de Ventilla, para detectar si el modelo generalizaba entre cuencas antes de entregarlo como válido.

Proceso de iteración

Ajuste documentado, no forzado

Al notar que todas las parcelas quedaron con la misma etiqueta de degradación (por depender de una sola imagen), ambos modelos de clasificación predijeron "no degradado" para cualquier cuenca. En vez de forzar una interpretación distinta del resultado, se documentó como limitación conocida del dataset, no como falla del modelo.


CierreLecciones importantes

El reto no fue entrenar el modelo, fue que la degradación se calculó a partir de una sola imagen satelital, así que todas las parcelas terminaron con la misma etiqueta — ningún modelo puede aprender una variable objetivo que no varía.

¿Tu proyecto de clasificación depende de una sola fuente para etiquetar los datos? Podemos revisar el diseño de captura de datos antes de modelar, en una sesión diagnóstico.