Ce document présente une documentation complète pour le système automatisé de collecte, d’analyse et de publication de données météorologiques et de qualité de l’air (AQI), en mettant l’accent sur la structure des fichiers de sortie et les configurations requises. Les informations sont obtenues à partir du site open-meteo

L’API Open-Meteo impose des limites d’utilisation claires pour son plan gratuit, destiné à un usage non commercial.

Voici le résumé des points les plus importants, incluant les contraintes d’utilisation :


🌍 Points Clés de l’API Open-Meteo (Plan Gratuit)

1. Accès et Usage

  • Accès Libre : Aucune clé API n’est requise pour commencer à utiliser l’API.
  • Licence : Les données sont sous licence Attribution 4.0 International (CC BY 4.0), exigeant de citer la source.
  • Restriction : L’utilisation est strictement limitée à des fins non commerciales.

2. Limites de Requêtes (Rate Limits) ⚠️

L’utilisation de l’API est plafonnée aux limites suivantes pour les utilisateurs non commerciaux :

PériodeLimite de Requêtes (Appels API)
Par minute (Minutely Limit)600 appels
Par heure (Hourly Limit)5 000 appels
Par jour (Daily Limit)10 000 appels
Par mois (Monthly Limit)300 000 appels

Selon Open-Meteo, il est peu probable que vous atteigniez ces limites pour un usage normal.

3. Données Météorologiques

  • Prévisions : Prévisions horaires jusqu’à 16 jours.
  • Haute Résolution : Utilisation des meilleurs modèles météorologiques (NOAA GFS, DWD ICON, etc.) avec une résolution allant jusqu’à 1,5 km.
  • Vitesse : API rapide avec des temps de réponse généralement inférieurs à 10 ms.
  • Fonctionnalités Étendues : Le plan gratuit donne accès à des API avancées comme l’Historical Weather API (données historiques sur plus de 80 ans), Marine Forecast, Air Quality et Geocoding.

🛠️ Modules et Dépendances (Requirements)

Le projet est basé sur Python et nécessite les bibliothèques suivantes. L’installation est recommandée via pip :

Module PythonDescriptionUtilisé pour
requestsExécution des requêtes HTTP pour l’acquisition de données d’API.Collecte de données (get_data_1.py)
pandasManipulation, analyse des données (ex: calculs de moyennes journalières d’AQI).Analyse AQI (aqi_3.py)
matplotlibGénération de tous les graphiques (météo et histogrammes AQI).Génération HTML/Graphiques (gen_html_7.py, aqi_3.py)
numpyOpérations numériques pour le traitement des données et des graphiques.Génération HTML/Graphiques
configparserLecture et gestion des fichiers de configuration INI.Tous les scripts de configuration
ftplibGestion de la connexion et du transfert de fichiers vers le serveur FTP.Déploiement (put_grimeco_1.py)
loggingSystème de journalisation pour le suivi des exécutions planifiées.Planification (planification_2.py)

Commande d’installation complète :

pip install requests pandas matplotlib numpy

⚙️ Structure des Répertoires Clés

L’organisation des fichiers est essentielle. Le répertoire de sortie output_meteo est généré par les scripts d’analyse et de génération, puis déployé par FTP.

/
├── config.ini
├── localites.ini
├── all_data.json       <- Fichier de données brutes (Collecte)
├── get_data_1.py
├── aqi_3.py
├── gen_html_7.py
├── put_grimeco_1.py
└── planification_2.py
 
└── output_meteo/ (Répertoire de sortie qui sera copié par FTP)
    ├── index.html
    ├── aqi_reports.html
    ├── [localite].html  (Ex: lille.html)
    │
    ├── icons/      <- Sous-répertoire pour les icônes WMO (ex: 0.svg, 1.svg)
    │   ├── 0.svg
    │   └── ...
    │
    └── charts/      <- Sous-répertoire pour tous les fichiers graphiques JPG
        ├── overall_forecast_chart_t.jpg (Graphique de température globale)
        ├── overall_forecast_chart_p.jpg (Graphique de précipitation globale)
        ├── [localite]_detail_temp.jpg
        └── [localite]_aqi_histogramme_simplifie.jpg 

Règles de sortie :

  1. Fichiers HTML : à la racine de output_meteo/.
  2. Icônes WMO : dans output_meteo/icons/ (doivent être préexistantes).
  3. Graphiques Matplotlib : dans output_meteo/charts/.

📄 Exemples de Fichiers de Configuration

Ces fichiers sont lus par configparser et doivent être à la racine du projet.

Fichier config.ini

Définit les paramètres du système et les informations de connexion FTP.

C

Fichier localites.ini

Liste les coordonnées géographiques des lieux à surveiller.

C

🚀 Flux de Travail et Scripts

L’orchestration est gérée par le script planification_2.py, qui exécute les étapes séquentiellement.

ScriptÉtape du FluxDescriptionSortie Principale
get_data_1.py1. CollecteTélécharge les données Météo et AQI pour toutes les localités via l’API.all_data.json
aqi_3.py2. Analyse AQITraite all_data.json. Calcule l’AQI journalier. Génère les histogrammes AQI (.jpg) dans output_meteo/charts/. Crée aqi_reports.html.aqi_reports.html, charts/*.jpg
gen_html_7.py3. Génération HTMLTraite all_data.json. Génère tous les graphiques météo (.jpg) dans output_meteo/charts/. Construit index.html et les pages par localité.index.html, [localite].html, charts/*.jpg
put_grimeco_1.py4. DéploiementUtilise ftplib pour se connecter et copier récursivement le contenu complet de output_meteo (y compris icons/ et charts/) vers le serveur FTP.Déploiement du site

Planification (planification_2.py)

Ce script contient le scheduler basé sur le module time.

  • Heures cibles : Le script définit les heures d’exécution via la variable HEURES_CIBLES (ex : ["05:00", "11:00", "17:00", "23:00"]).
  • Journalisation : Un système de logging rotatif est mis en place pour tracer toutes les étapes et erreurs dans un fichier (/home/pi/logs/script_auto.log par défaut).
  • Lancement : Pour démarrer l’exécution planifiée en continu :python planification_2.py

Sources

api_meteo.zip


0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *