← Retour aux projets
🌦️

Pipeline Météo - Open-Meteo & PostGIS

2026

Pipeline de données construit dans le cadre d'un exercice technique Data Engineer : extraction de données météo horaires (température, vent, précipitations) via l'API Open-Meteo pour 10 points de mesure géolocalisés à Paris, chargement de 6 720 mesures brutes dans PostgreSQL/PostGIS, agrégation directement en SQL par fenêtres de 3 heures, génération de 73 alertes par seuils calibrés sur la distribution réelle des données, et restitution sur une carte interactive Folium. La logique d'alerting est isolée dans une fonction pure, couverte par des tests unitaires.

Le pipeline en détail

Objectif : couvrir tout le cycle de vie de la donnée météo, de l'API brute jusqu'aux alertes et à la carte, avec des étapes rejouables sans doublon (idempotence).

Extract

  • API Open-Meteo (archive horaire : température, vent, précipitations)
  • 10 points de mesure géolocalisés à Paris (géométries PostGIS)

Sortie : 6 720 mesures horaires brutes sur un mois complet

Transform

  • Agrégation en SQL par fenêtres de 3h (date_bin) à l'échelle de la ville
  • Calcul de moyennes / min / max par métrique météo
  • Détection d'alertes par seuils (température, vent, précipitations)
  • Seuils calibrés sur la distribution réelle des données, pas arbitrairement

Sortie : 224 agrégats 3h + 73 alertes générées

Load

  • PostgreSQL/PostGIS (mesures brutes, agrégats, alertes)
  • Carte interactive Folium (dernière mesure par point)

Cadence : Étapes idempotentes : le pipeline est rejouable sans erreur ni doublon

Exemples de métriques

Température (avg/min/max)Vent (avg/min/max)Précipitations cumulées 3h73 alertes généréesLogique testée unitairement

📓 Le notebook complet

Ouvrir en plein écran ↗

Code, requêtes SQL, résultats et explications : le notebook Jupyter du projet, consultable directement ici.

PythonSQLPostgreSQLPostGISSQLAlchemyPandasFolium