Skip to main content

Una librería para detección de cambios forestales usando CCDC con Google Earth Engine

Project description

CCDC Forest Change Detector

Una librería de Python para la detección de cambios forestales utilizando el algoritmo CCDC (Continuous Change Detection and Classification) con Google Earth Engine.

Características

  • Detección de cambios temporales en cobertura forestal usando CCDC
  • Procesamiento de imágenes Sentinel-2 con enmascaramiento de nubes (Cloud Score Plus)
  • Visualización interactiva con mapas duales
  • Análisis de NDVI temporal
  • Configuración flexible de áreas de estudio y parámetros
  • Exportación de resultados y visualizaciones

Instalación

pip install ccdc-forest-change-detector

Requisitos previos

  1. Google Earth Engine: Necesitas tener una cuenta de Google Earth Engine y autenticación configurada
  2. Jupyter Notebook/Lab: Recomendado para visualizaciones interactivas

Configuración de Google Earth Engine

import ee
ee.Authenticate()  # Solo la primera vez
ee.Initialize(project='tu-proyecto-gee')  # Opcional: especifica tu proyecto

Uso básico

Ejemplo 1: Análisis completo con áreas predefinidas

from ccdc_forest_detector import CCDCForestDetector, ForestVisualization
import ee

# Inicializar detector
detector = CCDCForestDetector(project_id='tu-proyecto-gee')
detector.initialize_ee()

# Cargar límites administrativos (opcional)
distritos = ee.FeatureCollection("projects/tu-proyecto/assets/Lim_Distrito")
corregimientos = ee.FeatureCollection("projects/tu-proyecto/assets/Lim_Corregimiento")

# Establecer área de estudio usando feature collections
detector.set_study_area(
    feature_collection=corregimientos,
    filter_field='LMCO_NOMB',
    filter_values=['Paso Ancho', 'Cerro Punta']
)

# Crear visualizador
visualizer = ForestVisualization(detector)

# Ejecutar análisis completo
display_widget = visualizer.create_complete_analysis_display(
    data_start_date='2023-01-01',
    data_end_date='2025-08-20',
    change_start_date='2025-01-01',
    change_end_date='2025-08-31',
    title="Detección de Cambios - Chiriquí (Paso Ancho | Cerro Punta)",
    distrito_fc=distritos,
    corregimiento_fc=corregimientos
)

# Mostrar visualización
display(display_widget)

Ejemplo 2: Análisis con coordenadas personalizadas

from ccdc_forest_detector import CCDCForestDetector, ForestVisualization

# Inicializar detector
detector = CCDCForestDetector()
detector.initialize_ee()

# Establecer área usando coordenadas [xmin, ymin, xmax, ymax]
coords = [-82.6150, 8.8900, -82.5850, 8.9100]
detector.set_study_area(coords=coords)

# Cargar datos Sentinel-2
detector.load_sentinel2_data(
    date_start='2023-01-01',
    date_end='2025-08-20',
    cloud_threshold=0.8
)

# Ejecutar CCDC con parámetros personalizados
ccdc_params = {
    'minObservations': 6,
    'chiSquareProbability': 0.95,
    'minNumOfObservations': 0.8,
    'minNumOfSegments': 2,
    'recoveryThreshold': 50,
    'lambda_value': 25000
}
detector.run_ccdc(ccdc_params)

# Obtener capa de cambios
change_layer = detector.get_change_layer('2025-01-01', '2025-08-31')

# Crear visualización
visualizer = ForestVisualization(detector)
layout, map1, map2 = visualizer.create_dual_map_display(
    coords=coords,
    zoom=12,
    title="Análisis de Cambios Personalizado"
)

# Agregar capas manualmente
visualizer.add_monthly_rgb_layers(map1, 2025, 1, 8)
visualizer.add_monthly_ndvi_layers(map2, 2025, 1, 8)
visualizer.add_change_layer(map1, change_layer, 2025, 1, 8)
visualizer.add_change_layer(map2, change_layer, 2025, 1, 8)

display(layout)

Ejemplo 3: Análisis solo NDVI

from ccdc_forest_detector import CCDCForestDetector, ForestVisualization

detector = CCDCForestDetector()
detector.initialize_ee()
detector.set_study_area(coords=[-82.6150, 8.8900, -82.5850, 8.9100])

# Cargar datos
detector.load_sentinel2_data('2025-01-01', '2025-08-31')

# Crear visualización solo NDVI
visualizer = ForestVisualization(detector)
ndvi_map = visualizer.create_simple_ndvi_display(
    year=2025, 
    start_month=1, 
    end_month=8,
    title="Análisis NDVI 2025"
)

ndvi_map

Parámetros de configuración

Parámetros CCDC

ccdc_params = {
    'minObservations': 8,           # Mínimo de observaciones por segmento
    'chiSquareProbability': 0.90,   # Probabilidad chi-cuadrado
    'minNumOfObservations': 0.80,   # Proporción mínima de observaciones
    'minNumOfSegments': 2,          # Mínimo número de segmentos
    'recoveryThreshold': 50,        # Umbral de recuperación
    'lambda_value': 35000           # Parámetro lambda para regularización
}

Parámetros de visualización

La librería incluye paletas de colores predefinidas:

  • RGB: Visualización en color verdadero
  • NDVI: Gradiente verde para índice de vegetación
  • Cambios: 8 colores para diferentes meses de cambio

Métodos principales

CCDCForestDetector

  • initialize_ee(): Inicializar Google Earth Engine
  • set_study_area(): Establecer área de estudio
  • load_sentinel2_data(): Cargar y procesar datos Sentinel-2
  • run_ccdc(): Ejecutar análisis CCDC
  • get_change_layer(): Obtener capa de cambios
  • monthly_rgb_median(): Generar compuesto RGB mensual
  • monthly_ndvi_median(): Generar compuesto NDVI mensual

ForestVisualization

  • create_complete_analysis_display(): Análisis completo automatizado
  • create_dual_map_display(): Crear visualización con dos mapas
  • add_monthly_rgb_layers(): Agregar capas RGB mensuales
  • add_monthly_ndvi_layers(): Agregar capas NDVI mensuales
  • add_change_layer(): Agregar capa de detección de cambios

Casos de uso

  1. Monitoreo de deforestación: Detectar pérdida de cobertura forestal
  2. Análisis temporal de vegetación: Seguimiento de cambios estacionales
  3. Evaluación de recuperación forestal: Identificar áreas de regeneración
  4. Estudios de impacto ambiental: Análisis antes/después de intervenciones
  5. Planificación territorial: Apoyo en toma de decisiones sobre uso del suelo

Contribuir

Las contribuciones son bienvenidas. Por favor:

  1. Fork del repositorio
  2. Crear branch para nueva funcionalidad
  3. Agregar tests
  4. Enviar pull request

Licencia

MIT License - ver archivo LICENSE para detalles.

Soporte

Cita

Si usas esta librería en tu investigación, por favor cita:

Elvis Garcia (2025). CCDC Forest Change Detector: A Python library for forest change detection using Google Earth Engine. 

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

ccdc-forest-change-detector-1.0.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

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

ccdc_forest_change_detector-1.0.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file ccdc-forest-change-detector-1.0.0.tar.gz.

File metadata

File hashes

Hashes for ccdc-forest-change-detector-1.0.0.tar.gz
Algorithm Hash digest
SHA256 65a40f50d9e3364680fd0ef36df5fccd8bb57921646177926c81ac64c3f40b66
MD5 d807e9c0b40c107ef4399a47df2581a2
BLAKE2b-256 b6ba15535b001521c76a2fae22f1a756be655892298d3603c0d5fee5e37c7500

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ccdc_forest_change_detector-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b3c46acd6458f0c3af7016f7304d9a657675b438170c1e4168f8042f50347656
MD5 c87888d3eb8ad60b35597aeb94d034a2
BLAKE2b-256 fd586d4a79d130d11638cf49ada4f8e14416224a1229f82f47a1da3c011e0a8c

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