Skip to content

Llapra/script-puros

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DEEP LEARNING MULTIMODAL PARA NOWCASTING METEOROLÓGICO (HÍBRIDO CNN-TRANSFORMER)

Este repositorio contiene la implementación oficial del sistema de pronóstico a corto plazo (Nowcasting) desarrollado para la estimación de variables meteorológicas críticas. El sistema utiliza una arquitectura de red neuronal híbrida que integra visión computacional y procesamiento de series temporales mediante una estrategia de fusión tardía (Late Fusion).

================================================================================

DESCRIPCIÓN DEL SISTEMA

El modelo combina dos fuentes de datos heterogéneas para generar predicciones con un horizonte de 14 horas:

Componente Espacial (Rama Visual): Procesa secuencias de imágenes satelitales (GOES-19, Banda 13) utilizando una Red Neuronal Convolucional (CNN) distribuida en el tiempo para extraer características morfológicas y dinámicas de la cobertura nubosa.

Componente Temporal (Rama Tabular): Procesa series de tiempo de una estación meteorológica local (SEETRUE) utilizando una arquitectura Transformer (Encoder) para modelar dependencias temporales complejas y ciclos diurnos.

================================================================================

ESTRUCTURA DEL REPOSITORIO

Los scripts están numerados secuencialmente para facilitar el flujo de trabajo.

[01] PREPROCESAMIENTO DE DATOS ==================================================

01_preprocess_images_crop.py: Realiza el recorte espacial de las imágenes satelitales crudas centrado en las coordenadas de la estación.

01_preprocess_images_to_npy.py: Convierte las imágenes procesadas a tensores numéricos (Numpy), aplicando calibración física de temperatura y normalización.

01_preprocess_visual_index.py: Genera el índice JSON de secuencias de imágenes válidas y continuas.

01_preprocess_tabular_index.py: Genera el índice JSON para las secuencias de datos tabulares.

[02] ARQUITECTURA DEL MODELO ==================================================

02_model_architecture_cnn.py: Define la estructura de la rama CNN (TimeDistributed) para extracción de características visuales.

02_model_architecture_hybrid.py: Define la clase principal del modelo híbrido, integrando la rama visual, el bloque Transformer tabular y el módulo de fusión.

02_data_generator_hybrid.py: Implementa el generador de datos (Keras Sequence) que alimenta el modelo durante el entrenamiento, sincronizando temporalmente ambas fuentes de datos.

[03] ENTRENAMIENTO ==================================================

03_train_tabular_transformer.py: Script para entrenar exclusivamente la rama tabular (Transformer) como línea base de rendimiento.

03_train_hybrid_system.py: Script principal para el entrenamiento del sistema híbrido completo (End-to-End).

[04] INFERENCIA Y APLICACIÓN ==================================================

04_inference_hybrid_production.py: Sistema de inferencia listo para producción. Carga el modelo entrenado y genera pronósticos operativos a partir de una fecha dada.

04_inference_hybrid_metrics.py: Ejecuta la inferencia sobre un conjunto de prueba y calcula métricas de error (RMSE, MAE) comparando con datos reales.

04_inference_hybrid_demo.py: Versión demostrativa que incluye visualización de la entrada satelital junto a las curvas de pronóstico.

[UTILS] HERRAMIENTAS AUXILIARES ==================================================

utils_visualization_activations.py: Visualizador básico de mapas de activación internos de la CNN.

utils_visualization_activations_context.py: Visualizador avanzado que incluye interpretación física de la entrada (tipos de nubes) junto a las activaciones de la red.

utils_create_temperature_lut.py: Genera la tabla de búsqueda (LUT) para la conversión de color RGB a temperatura física.

================================================================================

REQUISITOS DE INSTALACIÓN

El entorno requiere Python 3.8 o superior y las siguientes librerías científicas: pip install tensorflow pandas numpy matplotlib scikit-learn pillow scipy

================================================================================

INSTRUCCIONES DE USO

Preparación del Entorno: Asegúrese de que las carpetas de datos ("Recortes-satelitales", "master_dataset_continuo.csv") estén presentes en la raíz.

Generación de Índices: Ejecute los scripts "01_" para preparar los índices de entrenamiento.

Entrenamiento: Ejecute "03_train_hybrid_system.py". Los pesos del modelo se guardarán como "modelo_hibrido_final.keras".

Predicción: Utilice "04_inference_hybrid_production.py" para generar pronósticos. El sistema solicitará una fecha en formato "YYYY-MM-DD HH:MM".

================================================================================

METODOLOGÍA

El sistema utiliza una ventana de observación histórica de 6 imágenes satelitales (1 hora) y 48 registros de estación (24 horas) para predecir las siguientes variables objetivo:

Radiación Neta (NETRAD)

Humedad Relativa (RH)

Temperatura del Aire (TA)

Punto de Rocío (T_DP)

Energía Cinética Turbulenta (TKE)

================================================================================

AUTORES

Creado para Tecnicas Experimentales, curso impartido por Profesor Dario Pérez.

Desarrollado como parte de investigación para dicho curso para Nowcasting local con datos obtenidos desde SEETRUE e imágenes satelitales de CIRA GOES-19 band-13.

Proyecto realizado por:

Eduardo Llantén | eduardo.llanten.p@mail.pucv.cl Juan Pablo Araya | juan.araya.v@mail.pucv.cl Simón González | matias.gonzalez.l01@mail.pucv.cl Bruno Tapia | bruno.tapia.c@mail.pucv.cl

About

Serie de scripts creados para el modelo SAT-OPEC

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages