Saltar a contenido

Arquitectura

El flujo de una predicción

Ubicación (provincia o lat/lon) + fecha (hoy/mañana)
        │
        ▼
Datos meteorológicos ── Open-Meteo (forecast + archive, sin API key)
        │  (si es hoy: observación actual; hasta 7+ días de forecast)
        ▼
Features ── índices térmicos (Heat Index, Wind Chill, WBGT) + distribución
        diaria (media/desv/mín-máx, horas sobre/bajo umbral) + persistencia
        temporal (lags, medias móviles, rachas de días fríos)
        │
        ▼
Modelos ── XGBoost (calor) + RandomForest (frío) + LSTM province_hybrid
        (LSTM + embedding de provincia + INE + features diarias)
        + Fórmula determinista (índices clásicos)
        │
        ▼
Ensemble conformal-weighted ── media ponderada por tamaño del prediction
        set conformal (1/set_size) → probabilidad de riesgo poblacional
        │
        ▼
Personalización ── factores multiplicativos en odds (edad, comorbilidades,
        medicación, actividad, aclimatación, situación social…), cap ×3.0
        │
        ▼
Clase final ── SEGURO / PRECAUCIÓN / PELIGRO, con overrides físicos
        por Heat Index / Wind Chill / UV + recomendaciones

Datos

Fuente Uso
ERA5 (ECMWF) Histórico para entrenamiento (España, ≥10 años)
Open-Meteo Pronóstico y archivo en producción (sin API key)
AEMET OpenData Datos oficiales de España
OpenUV Índice UV por coordenada (opcional)
MoMo (ISCIII) Mortalidad diaria atribuible a calor (X30) y frío (X31) — target del modelo

El target del modelo son percentiles de mortalidad atribuida de MoMo, calculados por provincia (para no penalizar a las provincias pequeñas); el split es por fecha (no aleatorio) para no filtrar días de la misma ola entre train y test.

Componentes

Componente Qué es
Web UI (chat/) Formulario completo (individual/grupo), mapa, perfil horario, tendencia semanal con bandas conformal, mapa de riesgo por zona, chat conversacional
Demo ONNX/WASM (web/probar-ya/) El mismo pipeline portado a JavaScript y ejecutado en el navegador con onnxruntime-web; los modelos viajan como ONNX
Bot de Telegram Formulario determinista con botones + avisos diarios + respuestas redactadas por un LLM local fine-tuneado (Ollama)
MCP servers Tools para asistentes de IA: predecir riesgo, perfiles, rutinas, gráfica
RAG vectorial Factores y documentación indexados con sqlite-vec para responder con citas

Persistencia

SQLite (data/climasafe.db): perfiles, rutinas, consultas y RAG vectorial.

Despliegue

  • Repositorio principal: ANFAIA/ClimaSafe (CI: tests + lint; release con tag semántico; publicación a GitHub Pages).
  • Sitio web + demo: cacelass.github.io/climasafe, estático y autocontenido (la demo incluye los modelos ONNX y el runtime WASM).