Sistema de detección de pérdida de cobertura vegetal mediante Google Earth Engine
Project description
HarpiaWatchForest 🦅🌳
Sistema de detección automática de pérdida de cobertura vegetal mediante análisis de imágenes satelitales Sentinel-2 y Google Earth Engine.
Desarrollado por: Elvis Garcia y Yubrany Gonzalez
Organización: Ministerio de Ambiente de Panamá
📋 Descripción
HarpiaWatchForest es un sistema avanzado de monitoreo forestal que utiliza análisis de series temporales de NDVI (Índice de Vegetación de Diferencia Normalizada) y el algoritmo CCDC (Continuous Change Detection and Classification) para identificar cambios en la cobertura vegetal a nivel de corregimientos en Panamá.
Características principales
- ✅ Detección automática de pérdidas de cobertura vegetal
- ✅ Análisis temporal basado en NDVI semanal
- ✅ Integración con Google Earth Engine
- ✅ Filtrado automático de nubes mediante Cloud Score+
- ✅ Enriquecimiento con capas de capacidad agrológica y áreas protegidas (SINAP)
- ✅ Exportación automática a Google Drive en formato Shapefile
- ✅ Procesamiento por hexágonos para optimización
- ✅ Configuración flexible de parámetros
🚀 Instalación
pip install HarpiaWatchForest
📦 Requisitos
- Python 3.7+
- Cuenta de Google Earth Engine (https://earthengine.google.com/)
- Credenciales autenticadas de GEE
🔧 Configuración inicial
1. Autenticación en Google Earth Engine
import ee
ee.Authenticate() # Solo la primera vez
2. Uso básico
from harpiawatch import HarpiaAnalyzer, HarpiaConfig
# Crear configuración
config = HarpiaConfig()
# Configurar parámetros
config.set_corregimientos(['Buena Vista', 'Chepigana'])
config.set_periodo(year=2026, month=1)
config.set_parametros_deteccion(min_area_ha=0.15, threshold_ndvi=-0.15)
# Inicializar analizador
analyzer = HarpiaAnalyzer(config)
analyzer.initialize(authenticate=False) # True solo la primera vez
# Procesar
resultados = analyzer.procesar()
3. Uso avanzado - Configuración de assets personalizados
from harpiawatch import HarpiaConfig
config = HarpiaConfig()
# Cambiar proyecto de Earth Engine
config.set_ee_project('mi-proyecto-gee')
# Configurar assets personalizados
config.set_assets(
distrito="projects/mi-proyecto/assets/distritos",
corregimientos="projects/mi-proyecto/assets/corregimientos",
sinap="projects/mi-proyecto/assets/areas_protegidas",
hexagonos="projects/mi-proyecto/assets/grilla_hexagonal",
capacidad_agrologica="projects/mi-proyecto/assets/capacidad_suelos"
)
📖 Ejemplos de uso
Ejemplo 1: Análisis de un solo corregimiento
from harpiawatch import HarpiaAnalyzer, HarpiaConfig
config = HarpiaConfig()
config.lista_corregimientos = ['Buena Vista']
config.year_analisis = 2026
config.month_analisis = 1
analyzer = HarpiaAnalyzer(config)
analyzer.initialize()
analyzer.procesar()
Ejemplo 2: Listar corregimientos disponibles
from harpiawatch import HarpiaAnalyzer
analyzer = HarpiaAnalyzer()
analyzer.initialize()
corregimientos = analyzer.listar_corregimientos()
Ejemplo 3: Obtener hexágonos de un corregimiento
analyzer = HarpiaAnalyzer()
analyzer.initialize()
hexagonos = analyzer.obtener_hexagonos('Chepigana')
print(f"Total de hexágonos: {len(hexagonos)}")
Ejemplo 4: Configuración completa personalizada
from harpiawatch import HarpiaConfig, HarpiaAnalyzer
# Crear configuración personalizada
config = HarpiaConfig()
# Corregimientos a analizar
config.set_corregimientos([
'Buena Vista',
'Chepigana',
'Las Palmas'
])
# Período de análisis
config.set_periodo(year=2025, month=12)
# Parámetros de detección
config.set_parametros_deteccion(
min_area_ha=0.20, # Área mínima de 0.2 hectáreas
threshold_ndvi=-0.18 # Umbral más estricto
)
# Rango de fechas para datos Sentinel-2
config.set_rango_fechas(
date_start='2024-01-01',
date_end='2025-12-31'
)
# Ejecutar análisis
analyzer = HarpiaAnalyzer(config)
analyzer.initialize()
resultados = analyzer.procesar()
# Ver resumen
for r in resultados:
print(f"{r['corregimiento']}: {r['estado']}")
📊 Parámetros configurables
Parámetros de análisis
| Parámetro | Descripción | Valor por defecto |
|---|---|---|
lista_corregimientos |
Lista de corregimientos a procesar | ['Buena Vista', 'Chepigana'] |
year_analisis |
Año del análisis | 2026 |
month_analisis |
Mes del análisis (1-12) | 1 |
min_area_ha |
Área mínima de polígonos (ha) | 0.15 |
threshold_ndvi_low |
Umbral de pérdida de NDVI | -0.15 |
date_start |
Fecha inicio datos Sentinel-2 | '2023-01-01' |
date_end |
Fecha fin datos Sentinel-2 | '2029-12-31' |
Assets de capas base
| Asset | Descripción | Ruta por defecto |
|---|---|---|
asset_distrito |
Límites de distritos | projects/proyecto-cobertura-boscosa/assets/Mapas_Panama/Lim_Distrito |
asset_corregimientos |
Límites de corregimientos | projects/proyecto-cobertura-boscosa/assets/Mapas_Panama/Lim_Corregimiento |
asset_sinap |
Sistema Nacional de Áreas Protegidas | projects/proyecto-cobertura-boscosa/assets/Mapas_Panama/SINAP |
asset_hexagonos |
Grilla hexagonal | projects/proyecto-cobertura-boscosa/assets/Mapas_Panama/hexagonos_2025 |
asset_capacidad_agrologica |
Capacidad agrológica del suelo | projects/proyecto-cobertura-boscosa/assets/Mapas_Panama/Capacidad_Agrologica |
📁 Estructura de salida
Los resultados se exportan automáticamente a Google Drive con la siguiente estructura:
Google Drive/
└── SHP-PERDIDAS-CORREGIMIENTO-{NOMBRE}-{MES}-{AÑO}/
├── Perdidas_NDVI_GRID_ID_1_0_15ha_January2026_W1-W5.shp
├── Perdidas_NDVI_GRID_ID_2_0_15ha_January2026_W1-W5.shp
└── ...
Cada shapefile contiene:
- Geometría de los polígonos detectados
- Fecha de detección
- Semana y año
- ID de hexágono
- Nombre del corregimiento
- Capacidad agrológica
- Información de áreas protegidas (SINAP)
- Área en hectáreas
🔬 Metodología
- Filtrado de nubes: Cloud Score+ de Google Earth Engine
- Cálculo de NDVI: Índice normalizado semanal usando bandas B8 y B4
- Detección de cambios: Análisis temporal mediante CCDC
- Umbralización: Identificación de pérdidas significativas
- Vectorización: Conversión a polígonos
- Enriquecimiento: Adición de atributos contextuales
- Exportación: Generación de shapefiles por hexágono
🤝 Contribuciones
Este proyecto fue desarrollado por el Ministerio de Ambiente de Panamá para el monitoreo y conservación de los recursos forestales del país.
📄 Licencia
MIT License - Ver archivo LICENSE para más detalles
👥 Autores
- Elvis Garcia - Desarrollo y diseño del algoritmo
- Yubrany Gonzalez - Desarrollo y diseño del algoritmo
Organización: Ministerio de Ambiente de Panamá
📧 Contacto
Para preguntas, sugerencias o reportes de problemas, por favor contactar a:
🙏 Agradecimientos
- Google Earth Engine
- Programa Copernicus
- Ministerio de Ambiente de Panamá
Versión: 1.0.0
Fecha: Enero 2026
Ministerio de Ambiente de Panamá 🇵🇦
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file harpiawatchforest-1.0.0.tar.gz.
File metadata
- Download URL: harpiawatchforest-1.0.0.tar.gz
- Upload date:
- Size: 16.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bbe64375d34bf107fb692dfe4957fb94b8f0c2ffbd0a299170441b209637d82
|
|
| MD5 |
93b4a6233daf5bf767634e070e5c5c69
|
|
| BLAKE2b-256 |
3efa771e049f7246304cec7208e8061d560b7eb715e122cdc8085376101ff65e
|
File details
Details for the file harpiawatchforest-1.0.0-py3-none-any.whl.
File metadata
- Download URL: harpiawatchforest-1.0.0-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3f6e1638a7e0d6d25f8dc27ce1ca685c26d69e1367cb2e9d05a3b08d034f2840
|
|
| MD5 |
c094a95e7589323dedf2b4d08521b8c0
|
|
| BLAKE2b-256 |
808e7e53339bfecd4d2b2f43013243509aa2e37e706ba131ad19bd28d9621b5d
|