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é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

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 :

Shell

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 AnnotationBbox pour insérer des icônes de direction directement sur les points de données.

Composants de l’Interface

  1. LocationTab : Gère la recherche en temps réel (filtrage dynamique) et la liste des favoris.
  2. 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

  1. Lancement : Exécutez python app.py.
  2. Configuration : Allez dans l’onglet « Configuration 🌍 ». Recherchez une ville, sélectionnez-la et cliquez sur « Ajouter >> ».
  3. Consultation : Cliquez sur une ville dans votre liste de favoris. L’application basculera sur l’onglet « Détails ».
  4. 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éristiqueDétail
API SourceOpen-Meteo (Gratuit, sans clé API requise)
Prévisions16 jours
PersistanceFichier window_config.json (géométrie et favoris)
Backend GraphiqueAgg (Matplotlib) pour le rendu sans fenêtre
NormalisationUnicode 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.

Source


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.

Laisser un commentaire

Emplacement de l’avatar

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