
1. Présentation Générale
Cette application est une interface graphique (GUI) développée en Python permettant de consulter des prévisions météorologiques détaillées pour des localités mondiales. Elle utilise l’API Open-Meteo pour récupérer des données en temps réel et génère des rapports visuels incluant des graphiques de température, de précipitations et de vent.
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.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.
1.2. Limites de Requêtes (Rate Limits) ⚠️
L’utilisation de l’API est plafonnée aux limites suivantes pour les utilisateurs non commerciaux :
| Période | Limite 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 |
Fonctionnalités Clés de l’application:

- Recherche de localités : Accès à une base de données mondiale via un fichier texte local.
- Gestion des Favoris : Enregistrement de vos villes préférées et persistance de la configuration de la fenêtre.
- Visualisation Graphique : Graphiques évolutifs sur 16 jours (températures min/max, cumul de pluie, rafales de vent).
- Interface Hybride : Affichage des rapports via un rendu HTML dynamique au sein de l’interface Tkinter.
- Indicateurs Visuels : Utilisation d’icônes pour les conditions météo et la direction du vent.
2. Prérequis et Installation
Dépendances Python
L’application nécessite plusieurs bibliothèques externes pour la gestion du réseau, du rendu graphique et de l’interface utilisateur.
Exécutez la commande suivante pour installer les modules nécessaires :
Structure des fichiers
Pour fonctionner correctement, le script app.py doit être placé dans un dossier contenant les éléments suivants :
localites.txt: Un fichier texte contenant les villes (Format :Nom [TAB] Latitude [TAB] Longitude).- Dossier
weather_icons/: Contient les icônes WMO (0.png, 1.png, etc.). - Dossier
wind_icons/: Contient les flèches de direction (n.png, ne.png, etc.). meteo_style.css: Fichier de style pour la mise en forme du rapport HTML.
3. Architecture du Code
Gestion des Données (Location)
La classe Location encapsule les informations géographiques. Les noms sont normalisés en ASCII pour garantir la compatibilité des noms de fichiers entre les différents systèmes d’exploitation (Windows, macOS, Linux).
Moteur de Graphiques (Matplotlib)
Le script génère des images PNG à la volée :
- Graphique Température/Pluie : Utilise un double axe Y pour superposer les températures (∘C) et les précipitations (mm).
- Graphique Vent : Affiche les rafales et utilise des
AnnotationBboxpour insérer des icônes de direction directement sur les points de données.
Composants de l’Interface
LocationTab: Gère la recherche en temps réel (filtrage dynamique) et la liste des favoris.App(Classe Principale) : Contrôle la navigation par onglets (ttk.Notebook), la récupération des données API et la coordination de la mise à jour des vues.
4. Utilisation
- Lancement : Exécutez
python app.py. - Configuration : Allez dans l’onglet « Configuration 🌍 ». Recherchez une ville, sélectionnez-la et cliquez sur « Ajouter >> ».
- Consultation : Cliquez sur une ville dans votre liste de favoris. L’application basculera sur l’onglet « Détails ».
- Actualisation : Les données sont mises à jour automatiquement au clic, mais un bouton « Rafraîchir » permet de forcer un appel à l’API.
5. Spécifications Techniques
| Caractéristique | Détail |
| API Source | Open-Meteo (Gratuit, sans clé API requise) |
| Prévisions | 16 jours |
| Persistance | Fichier window_config.json (géométrie et favoris) |
| Backend Graphique | Agg (Matplotlib) pour le rendu sans fenêtre |
| Normalisation | Unicode NFD vers ASCII |
Note sur le nettoyage : Le script inclut une fonction cleanup_old_files qui supprime automatiquement les anciens rapports HTML et graphiques PNG temporaires à chaque nouvelle consultation pour optimiser l’espace disque.
1 commentaire
electroDIV · 28 décembre 2025 à 19h46
Très intéressant, je vous remercie pour ce tutoriel et ces détails.
Un grand merci et bonnes fêtes de fin d’années.