Skip to main content

Sistema de detección de pérdida de cobertura vegetal mediante Google Earth Engine

Project description

HarpiaWatchForest 🦅🌳

Python Version License: MIT

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

🔧 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

  1. Filtrado de nubes: Cloud Score+ de Google Earth Engine
  2. Cálculo de NDVI: Índice normalizado semanal usando bandas B8 y B4
  3. Detección de cambios: Análisis temporal mediante CCDC
  4. Umbralización: Identificación de pérdidas significativas
  5. Vectorización: Conversión a polígonos
  6. Enriquecimiento: Adición de atributos contextuales
  7. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

harpiawatchforest-1.0.0.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

harpiawatchforest-1.0.0-py3-none-any.whl (14.8 kB view details)

Uploaded Python 3

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

Hashes for harpiawatchforest-1.0.0.tar.gz
Algorithm Hash digest
SHA256 0bbe64375d34bf107fb692dfe4957fb94b8f0c2ffbd0a299170441b209637d82
MD5 93b4a6233daf5bf767634e070e5c5c69
BLAKE2b-256 3efa771e049f7246304cec7208e8061d560b7eb715e122cdc8085376101ff65e

See more details on using hashes here.

File details

Details for the file harpiawatchforest-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for harpiawatchforest-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3f6e1638a7e0d6d25f8dc27ce1ca685c26d69e1367cb2e9d05a3b08d034f2840
MD5 c094a95e7589323dedf2b4d08521b8c0
BLAKE2b-256 808e7e53339bfecd4d2b2f43013243509aa2e37e706ba131ad19bd28d9621b5d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page