Magazine Informatique

Power Query: Importer les données météo du site climate.weather.gc.ca

Publié le 20 octobre 2016 par Sopmar01 @mon_cher_watson

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.

Power Query Météo

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.

Power Query Météo

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.

Power Query Météo

J’ai donc étudié l’url de la table de résultats (voir image ci-dessous).

Power Query Météo

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.

Power Query météo

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 ».

Power Query Météo

Voici un extrait de cette table.

Power Query Météo

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.

Power Query Météo

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.

Power Query Météo

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.

Power Query Météo

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.

Power Query Météo

Par la suite, j’ai nettoyé les données, pour ne retenir que les informations importantes.

Power Query Météo

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).

Power Query Météo

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).

Power Query Météo

J’ai ensuite fusionné les colonnes.

Power Query Météo

Puis j’ai transposé les colonnes et ajouté une colonne « id » avec le chiffre 0.

Power Query Météo

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.

Power Query Météo

J’ai ensuite utilisé la fonctionnalité « Fill down » (Remplissage vers le bas), tel qu’illustré ci-dessous:

Power Query Météo

J’ai donc pu « dé-pivoter » mes colonnes et obtenir le tableau ci-dessous.

Power Query Météo

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.

Power Query Météo

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.

Power Query Météo

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.

Power Query Météo

J’ai ensuite ajouté une colonne personnalisée me permettant de reconstruire l’url pour chaque combinaison de ma table.

Power Query Météo

Voici comment doit se lire le tout (les données entre crochets font référence aux colonnes de ma table):

Power Query Météo

Ce faisant, j’ai pu extraire toutes les informations météorologiques quotidiennes passées pour toutes les combinaisons de ma table.

Power Query Météo

Je n’ai ensuite fait qu’un peu de ménage pour ne retenir que l’essentiel.

Power Query Météo

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.

Power BI Url

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


Microsoft Most Valuable Professional

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 [email protected]


Retour à La Une de Logo Paperblog

A propos de l’auteur


Sopmar01 3934 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte