Article original : Obtain Historical Weather Forecast data in CSV format using Python
Par Ekapope Viriyakovithya
Récemment, j'ai travaillé sur un projet de machine learning lié aux énergies renouvelables, qui nécessitait des données historiques de prévisions météorologiques pour plusieurs villes.
Malgré des recherches intensives, j'ai eu du mal à trouver une bonne source de données. La plupart des sites web restreignent l'accès aux données historiques des deux dernières semaines seulement. Si vous avez besoin de plus, vous devez payer. Dans mon cas, j'avais besoin de cinq ans de données — des prévisions historiques horaires, ce qui peut être coûteux.
Mes exigences sont...
1. Gratuit — au moins pendant la période d'essai
Pas besoin de fournir des informations de carte de crédit.
2. Flexible
Flexible pour changer l'intervalle des prévisions, les périodes, les lieux.
3. Reproductible
Facile à reproduire et à implémenter en phase de production.
Finalement, j'ai décidé d'utiliser les données de World Weather Online. Cela m'a pris moins de deux minutes pour m'inscrire à l'essai gratuit de l'API premium — sans fournir d'informations de carte de crédit. (500 requêtes gratuites/clé/jour pendant 60 jours, en date du 30-Mai-2019).

https://www.worldweatheronline.com/developer/signup.aspx
Vous pouvez essayer des requêtes au format JSON ou XML ici. Le résultat est un JSON imbriqué qui nécessite un peu de prétraitement avant d'être utilisé dans des modèles de ML. Par conséquent, j'ai écrit quelques scripts pour les analyser dans des DataFrames pandas et les sauvegarder en CSV pour une utilisation ultérieure.
Présentation du package wwo-hist
Ce package wwo-hist est utilisé pour récupérer et analyser les données météorologiques historiques de World Weather Online dans un DataFrame pandas et un fichier CSV.
Entrée : api_key, location_list, start_date, end_date, frequency
Sortie : location_name.csv
Noms des colonnes de sortie : date_time, maxtempC, mintempC, totalSnow_cm, sunHour, uvIndex, uvIndex, moon_illumination, moonrise, moonset, sunrise, sunset, DewPointC, FeelsLikeC, HeatIndexC, WindChillC, WindGustKmph, cloudcover, humidity, precipMM, pressure, tempC, visibility, winddirDegree, windspeedKmph
Installer et importer le package :
pip install wwo-hist
# importer le package et la fonction
from wwo_hist import retrieve_hist_data
# définir le répertoire de travail pour stocker le(s) fichier(s) csv de sortie
import os
os.chdir(".\YOUR_PATH")
Exemple de code :
Spécifiez les paramètres d'entrée et appelez retrieve_hist_data(). Veuillez visiter mon dépôt github pour plus d'informations sur la configuration des paramètres.
Cela récupérera les données historiques de prévisions météorologiques à intervalles de 3 heures pour Singapour et Californie du 11-Déc-2018 au 11-Mar-2019, sauvegardera la sortie dans la variable hist_weather_data et les fichiers CSV.
FREQUENCY = 3
START_DATE = '11-DEC-2018'
END_DATE = '11-MAR-2019'
API_KEY = 'YOUR_API_KEY'
LOCATION_LIST = ['singapore','california']
hist_weather_data = retrieve_hist_data(API_KEY,
LOCATION_LIST,
START_DATE,
END_DATE,
FREQUENCY,
location_label = False,
export_csv = True,
store_df = True)
Voici ce que vous verrez dans votre console.

Fichiers CSV résultants exportés vers votre répertoire de travail.
Vérifiez la sortie CSV.
Voilà ! Le script détaillé est également documenté sur GitHub.
Merci d'avoir lu. Essayez-le et faites-moi savoir vos retours ! Si vous aimez ce que j'ai fait, envisagez de me suivre sur GitHub, Medium et Twitter pour obtenir plus d'articles et de tutoriels dans votre fil d'actualité.