Saltar a contenido

historical_spatial_etl

Procesa datos climáticos grillados de fuentes globales/regionales (ERA5, CHIRPS, AgERA5) para generar indicadores espaciales y datos agregados.

Conectores

El módulo connectors/ descarga y transforma datos de fuentes externas:

Conector Fuente Variables Frecuencia
Conector ERA5 ECMWF ERA5 reanálisis Temperatura, precipitación, radiación solar, humedad, viento Descargas mensuales
Conector CHIRPS UCSB CHIRPS Solo precipitación Descargas mensuales
Conector Dato Local Conjuntos de datos grillados locales/regionales Configurable Configurable

Procesamiento Climático

El módulo climate_processing/ maneja la transformación de datos:

Componente Descripción
aggregate_daily_data.py Agrega datos climáticos diarios a la resolución temporal requerida
aggregate_monthly_data.py Calcula agregados mensuales a partir de datos diarios
indicators_processor.py Orquesta el cálculo de indicadores configurados por país

Herramientas

Herramienta Descripción
raster_clipper Recorta datos raster a límites de país/región
raster_resampler Remuestrea rasters para igualar resolución objetivo
raster_upload Sube rasters procesados a GeoServer para servicios espaciales
download_pipeline Orquesta el flujo de descarga, procesamiento y subida
config_manager Gestiona archivos de configuración para fuentes y parámetros
file_namer Estandariza nombres de archivo según convenciones
validation_utils Valida integridad y completitud de datos
logging_manager Registro centralizado con seguimiento de componentes

Configuración

El directorio config/ contiene archivos de configuración JSON:

  • chirps_config.json — Parámetros de descarga y procesamiento de CHIRPS
  • clipping_config.json — Configuración de recorte por región
  • copernicus_config.json — Credenciales y parámetros de API de Copernicus/ERA5
  • geoserver_config.json — Configuración de conexión a GeoServer
  • local_data_config.json — Configuración de datos locales
  • naming_config.json — Convenciones de nombres de archivo

Indicadores Espaciales

Se calculan con una arquitectura basada en plugins mediante CalculatorLoader. Actualmente soporta 8 indicadores:

Código Indicador Categoría Descripción
CDD Días Secos Consecutivos Sequía Número máximo de días consecutivos con precipitación < 1mm
R95pTOT Días Muy Húmedos Precipitación Precipitación total de días > percentil 95
Rx1day Max Precipitación 1 Día Precipitación Cantidad máxima de precipitación en 1 día
SDII Índice Simple de Intensidad Diaria Precipitación Precipitación promedio en días húmedos (>=1mm)
TR20 Noches Tropicales Temperatura Días donde la temperatura mínima > 20°C
TX10p Días Fríos Temperatura Días donde la temperatura máxima < percentil 10
TX90p Días Cálidos Temperatura Días donde la temperatura máxima > percentil 90
TXX Temperatura Máxima Temperatura Máximo mensual/estacional de la temperatura máxima diaria

Ejecución programada (Crontab)

Para mantener la información espacial actualizada, el ETL se configura para ejecutarse automáticamente cada mes. La ejecución programada se implementa con un script .sh que activa el entorno virtual o conda y ejecuta el comando principal del ETL con las fechas correspondientes calculadas automáticamente.

Ejemplo de archivo run_spatial_etl.sh:

#!/bin/bash
# Script de ejecución programada del ETL espacial
# Activa el entorno y ejecuta el pipeline con las fechas actuales

source /ruta/al/entorno/bin/activate  # o: conda activate aclimate_v3

# Calcula el mes actual y el mes anterior
END_DATE=$(date +%Y-%m)
START_DATE=$(date -d "$(date +%Y-%m-01) -1 month" +%Y-%m)

python -m aclimate_v3_historical_spatial_etl.aclimate_run_etl \
  --country HONDURAS \
  --start_date ${START_DATE} \
  --end_date ${END_DATE} \
  --data_path /ruta/a/datos \
  --climatology

Ejemplo de entrada en crontab:

# Se ejecuta el día 22 de cada mes a las 2:00 AM
0 2 22 * * /ruta/al/script/run_spatial_etl.sh

El script se ejecuta el día 22 de cada mes. Además de procesar los datos del mes más reciente, se recomienda ejecutar también con la opción --climatology para mantener actualizadas las climatologías que sirven como línea base de referencia.

Ejecución manual

Para ejecutar manualmente el ETL con un rango de fechas específico:

python -m aclimate_v3_historical_spatial_etl.aclimate_run_etl \
  --country HONDURAS \
  --start_date 2020-01 \
  --end_date 2020-12 \
  --data_path /path/to/data \
  --climatology

Repositorio

Para instrucciones de instalación, consultar el README del repositorio: github.com/CIAT-DAPA/aclimate_v3_historical_spatial_etl