En Producción v1.0.0 App Destacada

Dashboard Climático IA

Servicio meteorológico global 100% serverless con recolección continua, mapa interactivo y predicción con Machine Learning.

Servicio meteorológico completo de coste cero que ingesta telemetría de más de 160 ciudades globales mediante la API de OpenWeatherMap. Combina persistencia particionada en CSV, entrenamiento diario de modelos de Regresión Lineal con Scikit-Learn y visualización interactiva con series temporales (Chart.js) y mapas geoespaciales (Leaflet).

Dashboard Climático IA

🎯Objetivos del Sistema

✓

Diseñar e implementar una arquitectura de recolección y predicción meteorológica global 100% serverless de coste cero.

✓

Construir un pipeline ETL batch diario con GitHub Actions sin necesidad de servidores ni bases de datos tradicionales.

✓

Implementar modelos predictivos deterministas de Machine Learning (Scikit-Learn) para contrastar su precisión frente al pronóstico oficial de 5 días de OpenWeatherMap.

✓

Ofrecer una experiencia de usuario rica, fluida y multilingüe con mapas Leaflet, selector de ciudades y streaming de datos cliente con PapaParse.

⚡Capacidades Principales

⚙️

Pipeline ETL Automatizado: GitHub Actions ejecuta el recolector Python 3 veces al día (06:00, 14:00, 22:00 UTC) de forma desatendida.

🤖

Predicción por Machine Learning: 3 modelos de Regresión Lineal entrenados con variables desfasadas (lag-1) y estacionalidad anual para predecir max, min y media.

🗺️

Mapa Geoespacial Interactivo: visualización de estaciones y temperaturas globales en tiempo real con marcadores Leaflet.js.

📈

Series Temporales Multivariables: gráficos interactivos de Chart.js con alternancia de temperatura, humedad, viento y nubosidad.

⚡

Streaming Cliente con PapaParse: análisis y carga instantánea de archivos CSV históricos particionados por ciudad directamente en el navegador.

🌐

Arquitectura Bilingüe y Despliegue Netlify: interfaz con selector de idioma dinámico y proxy transparente de alta velocidad en producción.

📐Arquitectura y Especificaciones de Diseño

Arquitectura desacoplada en 3 capas: automatización ETL en GitHub Actions ejecutando read_weather.py contra OpenWeatherMap v2.5, persistencia estática particionada en ficheros CSV y JSON exportados al repositorio Git, y frontend SPA monolítico servido en Netlify con enrutamiento proxy 200! transparente desde Datalaria.

flowchart LR CRON["GitHub Actions Cron (3x/dia)"] --> PY["read_weather.py (ETL Python)"] PY -->|"API v2.5"| OWM["OpenWeatherMap"] PY -->|"Series Temporales"| CSV["datos/ciudades_csv"] CSV -->|"Entrenamiento"| ML["Scikit-Learn (LinearRegression)"] ML --> PRED["predicciones.json"] PY --> MAP["city_locations.json"] PRED --> UI["Dashboard Web (Chart.js + Leaflet)"] MAP --> UI CSV --> UI

🔍 Haz clic en el diagrama para ampliar a pantalla completa

Principios Arquitectónicos Invariantes:

  • Filosofía 100% Serverless: cero costes fijos de computación en reposo mediante tareas programadas gratuitas y hosting estático.
  • Persistencia ligera y portable: cada ciudad es un fichero CSV plano estructurado con 15 variables meteorológicas normalizadas.
  • Cálculo cuantitativo determinista: el modelo de regresión lineal entrena sobre datos observados reales sin depender de llamadas a LLMs.

🛠️Stack Tecnológico

FRONTEND

Vanilla JSTailwind CSS CDNChart.jsLeaflet.jsPapaParse.jsChoices.jsFeather Icons

BACKEND

Python 3.10Scikit-LearnPandasRequests

DEVOPS

GitHub Actions CronNetlify HostingNetlify 200! Proxy Rewrite

APIS

OpenWeatherMap Current Weather (2.5)OpenWeatherMap 5-Day Forecast (2.5)

📚Artículos de Referencia & Documentación de Construcción

Esta aplicación está respaldada por una serie técnica publicada paso a paso en el blog:

Proyecto Weather Service (Parte 1): Construyendo el Recolector de Datos con Python y GitHub Actions o Netlify
Parte 1

Proyecto Weather Service (Parte 1): Construyendo el Recolector de Datos con Python y GitHub Actions o Netlify

Empezamos nuestro proyecto meteorológico creando el motor: un script de Python que habla con una API, guarda datos históricos y se …

Leer artículo completo →
Proyecto Weather Service (Parte 2): Construyendo el Frontend Interactivo con GitHub Pages o Netlify y JavaScript
Parte 2

Proyecto Weather Service (Parte 2): Construyendo el Frontend Interactivo con GitHub Pages o Netlify y JavaScript

Después de construir el recolector de datos, ¡es hora de visualizarlos! Este post te guía a través de la creación de un dashboard …

Leer artículo completo →
Proyecto Weather Service (Parte 3): Prediciendo el Futuro con IA y OpenWeatherMap
Parte 3

Proyecto Weather Service (Parte 3): Prediciendo el Futuro con IA y OpenWeatherMap

De la recolección de datos a los dashboards dinámicos, ¡ahora es el momento de predecir! Este post explora la integración del …

Leer artículo completo →
Proyecto Weather (Extras): Más Allá de la IA - Construyendo un Dashboard Robusto y Centrado en el Usuario
Parte 4

Proyecto Weather (Extras): Más Allá de la IA - Construyendo un Dashboard Robusto y Centrado en el Usuario

Aunque el modelo de predicción por IA de Project Weather es un punto culminante, la verdadera robustez reside en su …

Leer artículo completo →

⏱️Historial Evolutivo & Versiones (SemVer)

Registro formal de entregas, características y revisiones de seguridad:

v1.0.0 2025-12-06 RELEASE

Lanzamiento final con mapa interactivo Leaflet, soporte bilingüe y optimizaciones UX

  • Integración de mapa geoespacial con Leaflet.js y marcadores interactivos con telemetría en vivo.
  • Soporte bilingüe completo (ES/EN) con selector dinámico de idioma en la barra de control.
  • Selector avanzado de ciudades con Choices.js y normalización de coordenadas para más de 160 estaciones.
  • Optimización de la lectura cliente de CSVs con streaming asíncrono en PapaParse.
v0.3.0 2025-11-15 FEATURE

Módulo de Machine Learning con Scikit-Learn y comparativa vs OpenWeatherMap 5D

  • Implementación de 3 modelos de Regresión Lineal para pronóstico a 24 horas (temperatura máxima, mínima y media).
  • Generación de características desfasadas (lag-1) y estacionalidad anual sobre datos diarios agregados.
  • Exportación de pronósticos consolidados en predicciones.json y visualización comparativa en Chart.js.
v0.2.0 2025-11-08 FEATURE

Dashboard interactivo frontend con Chart.js y PapaParse

  • Construcción de la interfaz SPA con gráficos dinámicos multivariables en Chart.js.
  • Conexión directa del cliente a los ficheros CSV históricos particionados por ciudad.
v0.1.0 2025-10-31 FEATURE

Motor recolector backend en Python y pipeline automatizado con GitHub Actions

  • Desarrollo del script read_weather.py con conexión a la API OpenWeatherMap v2.5.
  • Estructuración del dataset histórico particionado en carpetas datos/ por ciudad.
  • Configuración del workflow actualizar-clima.yml en GitHub Actions para ejecución 3 veces al día.

¿Quieres profundizar en esta arquitectura o proponer nuevas mejoras?

Si te interesa implementar esta arquitectura en tu organización, explorar adaptaciones a medida o tienes propuestas para evolucionar la aplicación, escríbeme directamente.

También puedes escribirme a través del formulario de contacto (contacto@datalaria.com).