Récemment, dans le cadre d’un mandat d’élaboration de rapport Power BI, j’ai dû trouver une façon d’aller récupérer les données météorologiques passées de plusieurs villes canadiennes. Pour ce faire, j’ai utilisé l’éditeur de requêtes de Power BI Desktop, soit la partie équivalente à Power Query dans Excel. L’article suivant explique comment j’ai réussi à aller récupérer les informations passées de météo à partir du site http://climate.weather.gc.ca/. À noter que la procédure est la même, que vous utilisez Power Query ou Power BI Desktop.
Site web http://climate.weather.gc.ca/
D’abord, mes recherches de données météo passées sur le web (pour des villes canadiennes) m’ont toutes menée au site web http://climate.weather.gc.ca/. Je n’ai donc pas eu d’autre choix que de m’arrêter sur ce site et de l’étudier pour savoir comment en tirer les informations de météo passées des villes canadiennes de mon analyse. Ce site possède une section intitulée « Historical Data ». Dans cette section, il est possible de faire des recherches par ville et par années.
J’ai d’abord fait une recherche pour la ville d’Edmonton, de 2014 à 2016 et j’ai obtenu les résultats ci-dessous. À travers les divers menus déroulants, j’ai pu comprendre que la station météo qui couvrait le mieux mon besoin était la station Edmonton International CS. Je pouvais obtenir les données météo par heure, par jour ou par mois. Comme le but de mon analyse était d’étudier la corrélation entre les ventes et la météo, j’ai retenu l’option quotidienne.
Ce faisant, j’ai obtenu le tableau suivant, pour le mois de janvier 2014. Après plusieurs essais, j’ai bien compris que c’était le mieux que je pouvais obtenir. Impossible d’obtenir une table complète de l’historique d’une seule station.
J’ai donc étudié l’url de la table de résultats (voir image ci-dessous).
J’ai fait plusieurs tests et j’ai remarqué que je pouvais remplacer les dates par les dates de début et de fin de mon échantillon, dans ce cas du 01-01-2014 au 31-01-2014 et que je pouvais supprimer la portion faisant référence à la journée.
Forte de cette trouvaille, il ne me restait plus qu’à construire une requête me permettant d’aller chercher toutes les données météos pour les mois de janvier 2014 à aujourd’hui, par ville, et à les exploser par jour.
Création des tables de base
Dans un premier temps, j’ai récupéré une table comprenant tous les détails des stations météos publiées sur le site web. Vous pouvez télécharger cette table à partir du lien FTP suivant: ftp://ftp.tor.ec.gc.ca/Pub/Get_More_Data_Plus_de_donnees/.
La table s’intitule « Répertoire des stations FR ».
Voici un extrait de cette table.
Je l’ai étudiée et j’ai identifié les stations météorologiques qui semblaient les plus complètes pour les villes dans mon analyse. Pour les fins de cet article, je n’ai retenu que 4 villes.
J’ai ensuite d’abord construit une table avec le nom de mes 4 villes (tel que définis dans mon modèle de données) et le nom des stations correspondantes.
J’ai également créé une table pour obtenir tous les mois et années sous analyse et j’ai ajouté une colonne « id », qui me sera très utile plus tard.
Création de ma fonction de transformation de données
Dans un premier temps, je n’ai fait qu’importer un mois de données en utilisant l’url présenté plus haut dans cet article.
Par la suite, j’ai nettoyé les données, pour ne retenir que les informations importantes.
Une fois la requête de transformation des données terminée, je l’ai enregistrée comme fonction, en ajoutant (UrlPath)=> dans l’éditeur de code et en remplaçant l’url par la mention UrlPath (tel qu’illustré ci-dessous).
Création de la table de données de météo historiques
J’ai d’abord importé la table de stations météo avec les données nécessaires et j’ai ajouté une colonne pour spécifier la ville de correspondance dans mes données de ventes (la colonne « city » ci-dessous).
J’ai ensuite fusionné les colonnes.
Puis j’ai transposé les colonnes et ajouté une colonne « id » avec le chiffre 0.
J’ai ensuite ajouté au bout de cette table, la table avec mes mois sous analyse (append queries). La fusion s’est faite avec le champ id, tel qu’illustré ci-dessous.
J’ai ensuite utilisé la fonctionnalité « Fill down » (Remplissage vers le bas), tel qu’illustré ci-dessous:
J’ai donc pu « dé-pivoter » mes colonnes et obtenir le tableau ci-dessous.
J’ai pu ensuite « dé-fusionner » mes colonnes, pour avoir la table complète de toutes les combinaisons de dates (mois et année) et de stations possibles.
Il m’a ensuite fallu m’assurer d’avoir toutes les informations nécessaires pour reconstruire tous les url me permettant d’aller chercher les données météos mensuelles de toutes ces combinaisons possibles. J’ai d’abord utilisé les fonctionnalités de dates pour me créer un « StartDate » et un « EndDate » par mois.
J’ai également ajouté une colonne pour préciser le code de la province, tel que requis dans l’url et j’ai créé les colonnes mois et années, nécessaires également pour recréer l’url.
J’ai ensuite ajouté une colonne personnalisée me permettant de reconstruire l’url pour chaque combinaison de ma table.
Voici comment doit se lire le tout (les données entre crochets font référence aux colonnes de ma table):
Ce faisant, j’ai pu extraire toutes les informations météorologiques quotidiennes passées pour toutes les combinaisons de ma table.
Je n’ai ensuite fait qu’un peu de ménage pour ne retenir que l’essentiel.
Le saviez-vous?
Il est désormais possible de définir un lien url par morceau lors de la définition d’une connexion dans Power BI. Toutefois, on ne peut pas (encore du moins) faire référence à des colonnes de la table de données. Je n’aurais donc pas pu utiliser cette fonctionnalité pour résoudre le cas présenté dans cet article.
Envie de vous former à Power Query / Power BI?
Le CFO masqué offre deux formations qui pourraient vous intéresser:
- Excel – Power Tools (Power Query, Power Pivot, Power View, Power Map)
- Introduction à Power BI Desktop et Power BI Service
- En ligne
- En classe
NOTRE OFFRE DE FORMATIONS
Le CFO masqué vous offre un vaste choix de formations Excel, notamment en tableaux de bord et en modélisation financière, ainsi qu’une série de formations en BI libre-service. Ces formations sont offertes en classe, en entreprise et en ligne. Nos formateurs sont des experts dans leur domaine et ils sont accrédités par Emploi-Québec et vous remettent un certificat, à la fin de chaque formation, que vous pouvez notamment utiliser pour faire reconnaître des heures de formation continue auprès de votre ordre professionnel.
Découvrez quelles formations vous conviennent
Pour info: 514-605-7112 ou info@lecfomasque.com