Climate Pulse
Aggregazione weather data ARPA regionali + ECMWF + airports, public API + dashboard
- Stato
- WIP
- Licenza
- MIT
- Categoria
- ESG
- Aggiornato
Stato del progetto
Descrizione
Climate Pulse è una pipeline open-source di aggregazione e visualizzazione di dati meteorologici da fonti pubbliche europee, pensata per ricercatori, giornalisti dati, comunità open-data e PMI che hanno bisogno di accesso strutturato a serie storiche meteo senza pagare API commerciali (Tomorrow.io, OpenWeatherMap premium, Weather.com enterprise). Le fonti aggregate sono: stazioni ARPA regionali italiane (ARPA Puglia, ARPA Lombardia, ARPA Lazio, ARPA Sicilia, ecc.) via scraping rispettoso degli endpoint pubblici, ECMWF Open Data (forecasting europeo, dataset reanalysis ERA5 disponibili pubblicamente), METAR/TAF dataset aeroporti internazionali via NOAA Aviation Weather Center, dataset Copernicus Climate Change Service (C3S). L'architettura combina: FastAPI 0.115+ per public API REST + WebSocket, TimescaleDB per time-series storage (hypertable per location + variable + timestamp), Angular 21 SSR per dashboard storico (mappa interattiva Leaflet, grafici time-series Plotly, comparazione multi-station, alert configurabili), Celery worker per ingestion periodica (cron-style), Redis per cache + rate limiting public API. Il modello dati supporta variabili standard WMO (temperatura, umidità, pressione, vento direzione/intensità, precipitazioni, irraggiamento, copertura nuvole) con unità SI normalizzate. La public API espone endpoints REST per query time-series (filtraggio per location/variable/period), heatmap geografica per variabile in tempo reale, export CSV/JSON/Parquet per analisi offline. License MIT per massima riusabilità (community open data). Deploy target: comunità open-data, ricercatori universitari (climatologia, agricoltura), giornalisti dati ambientali, hobbyisti meteo, PMI agricoltura/energie rinnovabili. La filosofia è 'open data infrastructure': i dati sono pubblici, la pipeline che li unifica dovrebbe esserlo anche.
Funzionalità chiave
Aggregation multi-source
Stazioni ARPA regionali IT, ECMWF Open Data, METAR/TAF NOAA, Copernicus C3S, adapter pluggable per nuove fonti.
TimescaleDB time-series storage
Hypertable per location + variable + timestamp, compression chunk-based automatic, retention configurabile per fonte.
Public API FastAPI
REST API con OpenAPI 3.1, rate limiting Redis-based, WebSocket per stream real-time, export CSV/JSON/Parquet.
Dashboard Angular 21 SSR
Mappa interattiva Leaflet con marker stazioni, grafici Plotly time-series, comparazione multi-station, alert thresholds.
Variabili WMO normalizzate
Temperatura, umidità, pressione, vento, precipitazioni, irraggiamento, nuvole, unità SI normalizzate, quality flag per fonte.
Celery worker ingestion
Cron-style ingestion ARPA (15min poll), ECMWF (4 cycle/day), METAR (1h poll), retry strategy + Dead Letter Queue.
Scraping rispettoso pubblico
User-Agent identificato, rate limit conservative, cache HTTP, fallback a snapshot statici se endpoint down, compliance robots.txt.
Alert configurabili
Webhook + email alert per soglie variabili (temperatura >40°C, vento >100km/h, precipitazioni >50mm/h), per location.
Tech stack
- FastAPI 0.115+
- Python 3.12
- TimescaleDB
- Angular 21
- Leaflet
- Plotly
- Celery
- Redis
- ARPA regional APIs
- ECMWF Open Data
- NOAA METAR
Casi d'uso
- Ricercatori universitari climatologia/agricoltura che cercano serie storiche meteo strutturate senza paywall
- Giornalisti dati ambientali che documentano trend clima (ondate calore, siccità, alluvioni regionali)
- Comunità open-data che vuole API unificata multi-fonte meteo EU (no lock-in commerciale)
- PMI agricoltura precision farming o energie rinnovabili (solare/eolico) che ottimizzano operazioni meteo-driven
Roadmap
- v0.1.0 Pianificata
Core: ARPA Puglia + ECMWF + API base
- ARPA Puglia scraping adapter
- ECMWF Open Data ingestion
- TimescaleDB hypertable setup
- FastAPI endpoint /stations + /timeseries
- v0.5.0 Pianificata
Multi-region IT + METAR + Dashboard
- ARPA Lombardia + Lazio + Sicilia adapters
- METAR/TAF NOAA ingestion
- Dashboard Angular Leaflet + Plotly
- Alert thresholds + webhook
- v1.0.0 Pianificata
Copernicus C3S + Export + Production deploy
- Copernicus C3S adapter + reanalysis dataset
- Export CSV/JSON/Parquet
- Rate limiting Redis + API key opzionale
- Documentazione MkDocs + community setup guide
A chi è rivolto
Quick Start
Avvia il progetto localmente in pochi comandi.
# Quick start (work-in-progress, repo non ancora pubblicato)
# git clone https://github.com/<tba>/climate-pulse.git
# cd climate-pulse
# docker compose up -d # timescale + redis + climate-pulse-api + worker
# curl http://localhost:8000/v1/stations?region=pugliaContribuisci al progetto
Climate Pulse è open source. Apri una issue, proponi una pull request o lascia una stella su GitHub: ogni contributo, anche piccolo, è benvenuto.
- ⭐ Lascia una stella se ti è utile
- 🐛 Segnala bug o proponi feature via issue
- 🔧 Invia pull request con fix o miglioramenti
- 📣 Condividi il progetto se lo trovi interessante