Python est un langage en pleine croissance qui est devenu de plus en plus populaire dans la communauté de programmation. L’une des principales caractéristiques de Python est qu’il est facile de travailler avec des API sur des sites Web et de nombreuses entités météorologiques ont leur API à laquelle vous pouvez accéder avec seulement quelques lignes de code. L’une de ces excellentes API est l’API d’Open Weather Map, avec laquelle vous pouvez créer un petit programme pour accéder aux prévisions météorologiques de n’importe quel emplacement donné partout dans le monde ! Cet article vous aidera à obtenir des informations météorologiques à l’aide de Python.

Qu’est-ce qu’OpenWeatherMap

OpenWeatherMap (OWM) est un moyen utile et gratuit de collecter et d’afficher des informations météorologiques. Parce qu’il s’agit d’un projet open-source, il est également libre d’utiliser et de modifier de quelque manière que ce soit. OWM offre une variété de fonctionnalités et est très flexible. En raison de ces qualités, il offre de nombreux avantages aux développeurs. L’un des principaux avantages d’OWM est qu’il est prêt à l’emploi. Contrairement à d’autres applications météorologiques, OWM dispose d’une API Web prête à l’emploi. Vous n’avez pas besoin d’installer de logiciel ou de configurer une base de données pour le faire fonctionner. Il s’agit d’une excellente option pour les développeurs qui souhaitent obtenir rapidement et efficacement des informations sur la météo sur un site Web.

Il dispose d’une API qui prend en charge les points de terminaison HTML, XML et JSON. Il existe un niveau d’utilisation gratuite limité, mais pour plus de 60 appels par minute, un abonnement doit être acheté à partir de 40 USD par mois. Pour accéder aux données historiques, un abonnement est requis à partir de 150 USD par mois. Les informations météorologiques actuelles, les prévisions étendues et les cartes graphiques peuvent être demandées par les utilisateurs. Ces cartes montrent la couverture nuageuse, la vitesse du vent ainsi que la pression et les précipitations.

Prérequis et configuration

Obtenir une clé API

La première chose que vous devez faire est de créer une clé API avec OpenWeatherMap. La clé API indiquera à votre application qu’elle est autorisée à se connecter à l’API. Une fois que vous avez votre clé API, vous pourrez accéder à la documentation de l’API.

Pour obtenir une clé API, vous devrez créer un compte utilisateur gratuit sur OpenWeatherMap. Voici comment procéder :

  1. Afin d’obtenir des informations météorologiques en utilisant python, nous devons visiter ce lien.
  2. Cliquez sur le bouton S’abonner de la section Données météo actuelles.
  3. Cliquez sur la clé Get API dans la section gratuite.
  4. Créez maintenant un compte ici, puis suivez les procédures de confirmation par e-mail.
  5. Après avoir suivi les étapes ci-dessus, accédez à la page Membres et cliquez sur l’élément Clés API en haut de la page.
  6. Ici, vous créez une nouvelle clé API ou utilisez celle qui existe déjà.

Demandes d’installation

La bibliothèque Requests est utilisée pour envoyer des requêtes HTTP et interagir avec des serveurs Web. Il simplifie les tâches telles que POST et GET avec des points de terminaison d’URL et des formulaires, et prend en charge des extensions puissantes, telles que l’utilisation d’un proxy, de sockets Web et bien plus encore. Vous pouvez exécuter la commande suivante ou télécharger ses fichiers pour installer les requêtes.

pip3 install requests

Création d’une application Python simple pour afficher la météo

Maintenant que nous avons une API pour obtenir la météo actuelle, nous allons créer une application simple qui peut afficher la météo actuelle de n’importe quel endroit ! Voici comment nous allons procéder :

# python_test.py
import requests

api_key = "AAAAPPPPIIII_____KKKKEEEEYYYY"  # Enter the API key you got from the OpenWeatherMap website
base_url = "http://api.openweathermap.org/data/2.5/weather?"

city_name = input("Enter city name : ")
complete_url = base_url + "appid=" + 'd850f7f52bf19300a9eb4b0aa6b80f0d' + "&q=" + city_name  # This is to complete the base_url, you can also do this manually to checkout other weather data available
response = requests.get(complete_url)
x = response.json()

if x["cod"] != "404":
    y = x["main"]

    current_temperature = y["temp"]
    z = x["weather"]

    weather_description = z[0]["description"]

    print(" Temperature (in kelvin unit) = " +
                    str(current_temperature) +
          "\n description = " +
                    str(weather_description))

else:
    print(" City Not Found ")

Exécutez ce fichier en l’exécutant directement dans votre IDE ou un terminal en spécifiant l’emplacement et le nom complets du fichier. Vous pouvez connaître l’emplacement complet d’un fichier avec PWD.

Si cela a fonctionné avec succès, vous devriez voir un résultat comme celui-ci :

linux@linux-System-Product-Name:~/Desktop/Weather_predition$ /bin/python3 /home/linux/Desktop/Weather_predition/h1z1.py
Enter city name : paris
Temperature (in kelvin unit) = 285.77
atmospheric pressure (in hPa unit) = 1019
humidity (in percentage) = 91
description = broken clouds

Si vous avez compris le code ci-dessus, vous pouvez presque faire tout ce que vous voulez avec. Il y a quelques parties délicates, mais si vous vous y tenez, vous pouvez même créer une application de bureau ou Web complète avec. Juste pour vous montrer, dans la section suivante, nous allons créer une page Web simple avec Flask en utilisant des demandes pour afficher la météo de n’importe quel endroit sur une page HTML.

Création d’une page de flacon simple pour afficher la météo

Puisque nous avons déjà fait les configurations mentionnées ci-dessus, nous pouvons commencer directement en créant une application flask de base.

Remarque : Si Flask n’est pas déjà installé, vous pouvez l’installer avec :

pip install django                                                                                                                                                                                                                             
# flask_test.py
from flask import Flask, render_template, request
import requests

app = Flask(__name__)

if __name__ == '__main':
  app.run(ddebug=True)

Il s’agit d’une simple application Flask avec maintenant des fonctions, nous devons la personnaliser pour pouvoir afficher nos détails météorologiques à partir de là sur un modèle. Pour ce faire, ajoutez la ligne suivante dans ce fichier comme ceci :

# flask_test.py
from flask import Flask, render_template, request
import requests

app = Flask(__name__)

@app.route('/temperature', methods=['POST'])
def temperature():
    city_name = request.form['zip']
    r = requests.get('http://api.openweathermap.org/data/2.5/weather?'+ "appid=" + "d850f7f52bf19300a9eb4b0aa6b80f0d" + "&q=" + city_name) # Enter your API key
    json_object = r.json()
    temp_k = float(json_object['main']['temp'])
    temp_f = (temp_k - 273.15)
    return render_template('temperature.html', temp=temp_f)

@app.route('/')
def index():
return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)

Ajoutez également le fichier de modèle à votre dossier de projet.

# index.html

<html>
<head>
<title>Request Example</title>
</head>
<body>
<form method="POST" action="/temperature">
City name/zip : <input type="text" name="zip">
<input type="submit">
</form>
</body>
</html>


# temperature.html

<html>
<head><title>Current Temperature</title></head>
<body>
<h1> The current temperature (C) is : {{ temp }} degrees. </h1>
</body>
</html>

Maintenant, après avoir placé tous les fichiers dans le même dossier, vous pouvez exécuter la même méthode que celle indiquée ci-dessus ; et vous devriez obtenir un résultat comme celui-ci :

linux@linux-System-Product-Name:~/Desktop/python-weather-api-master$ /bin/python3 /home/linux/Desktop/python-weather-api-master/test.py
* Serving Flask app 'test' (lazy loading)
* Environment: production
  WARNING: This is a development server. Do not use it in a production deployment.
  Use a production WSGI server instead.
* Debug mode: on
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 121-505-311

De là, vous pouvez ouvrir le lien indiqué ci-dessus http://127.0.0.1:5000 et vous devriez être dirigé vers cette page :

get-weather-information-using python-1

Ici, vous pouvez mettre le nom ou le code postal de la ville dont vous voulez connaître la température et vous obtenez le résultat comme suit :

weather-information-using-python

Et c’est fait !! Vous pouvez le personnaliser à partir d’ici et y ajouter un peu plus de fonctionnalités. L’OpenWeatherMap a une excellente documentation et la bibliothèque de requêtes peut être utilisée dans bien d’autres domaines que celui-ci, ce qui peut vous fournir encore plus de fonctionnalités et de fonctionnalités à mettre dans l’application. Vous pouvez simplement vous connecter à l’API OWM et obtenir des informations météorologiques à l’aide de Python.

Voici quelques tutoriels utiles que vous pouvez lire :