Dans un billet vieux de deux ans intitulé Données de marée au Canada avec Python, je déplorais la façon de fournir les données par le Web du Service hydrographique du Canada (SHC) à Pêches et Océans comme étant complexe et désuète. Jusqu'à tout récemment, ce billet n'avait suscité qu'un seul courriel d'un professeur d'informatique de l'University of New Brunswick à deux heures de route d'ici. Très gentiment, il me remerciait d'avoir présenté un exemple d'un service Web local basé sur XML/SOAP qu'il décrit comme une « technologie peu utilisée et en déclin ». Donc, nous étions au moins deux à penser que SHC pouvait faire mieux. Il semble que le poids de notre jugement s'est fait sentir jusqu'aux plus hautes sphères administratives puisque SHC a abandonné cette vieille façon de faire et offre maintenant l'accès aux données par le truchement d'une interface de programmation REST. Voici l'annonce du SHC à ce sujet dans Avis et messages importants.
2021/05/04 - Services Web et Rest-API
Nous procédons à la désactivation des services WDS (observations et prédictions) du Service hydrographique du Canada le lundi 3 mai à 12h00 HAE. Veuillez-vous référer à la page des services Web pour plus d'informations sur l'utilisation du nouveau REST-API pour un accès direct aux données officielles sur les niveaux d'eau et autres services disponibles.consulté le 2021-10-19
5cebf1e33d0f4a073c4bc23e
) qui est la plus proche n'étaient pas encore dans le nouveau système. Il semble que la transition soit complétée. Puisque cela ne change rien à l'exposition ici, le billet et les scripts python n'ont pas été modifiés.
Évidemment le script Python qui obtenait l'horaire et les hauteurs des pleine et basses mers dans la Baie de Shediac puis qui les affichaient dans un dispositif virtuel de Domoticz ne fonctionne plus depuis le 3 mai.
Capture d'écran 2021-06-12
Curieux, j'ai envoyé une requête HTTP à l'adresse https://ws-shc.qc.dfo-mpo.gc.ca/predictions?wsdl comme le faisait le script avec un navigateur. La réponse est un message d'erreur HTTP 410 accompagné d'une explication assez complète sur ce qu'il faut faire pour utiliser la nouvelle interface de programmation.
En suivant les instructions, j'ai formulé une requête pour obtenir des données à partir de la nouvelle interface REST.
Il y a trois modifications par rapport à l'exemple donné.
- Premièrement, le code de la station
5cebf1e33d0f4a073c4bc242
est celui de Cocagne qui est une station pas très loin d'où je demeure. - Deuxièmement le code pour la série temporelle est
wlp-hilo
pour obtenir les marée basses et hautes. - Troisièmement les dates des données qui sont de minuit le 1er juillet à minuit le 2 juillet 2021.
La réponse suivante a été obtenue.
Voilà ce que je souhaitais il y a deux ans, obtenir les données au format JSON depuis une simple requête HTTP. À noter que
cette dernière a été faite à l'aide du navigateur Firefox ce qui prouve qu'il n'est pas du tout nécessaire d'utiliser Microsoft Edge or Google Chrome. Pour ce qui est de l'interprétation de la valeur de clé qcFlagCode
on peut consulter la page Services Web et Rest-API. On y trouve que 2 est « [u]tilisé pour les données dont les tests de contrôle de qualité n’ont pas été effectués ou l’information sur la qualité n’est pas disponible ».
Voici le script Python 3 qui obtient les temps et hauteurs des mers basses et hautes pendant une journée. Par défaut l'endroit est Cocage (N.-B.) et la période est la journée courante, mais on peut modifier ces choses avec des paramètres sur la ligne de commande.
Deux exemples.
python
est un lien symbolique vers python3
sur mon système (voir Péripéties avec python-is-python). Le numéro d'identité de la station à Comox en Colombie-Britannique a été obtenu en faisant une recherche dans la liste disponible ici: https://api-iwls.dfo-mpo.gc.ca/api/v1/stations. La carte Stations peut aider, mais elle n'affiche pas l'identité des stations, seulement leur nom et code. Il a été possible de vérifier ces résultats à partir de tableaux disponibles ailleurs sur le site de Pêches et Océans Canada.
Cocagne, 2021-07-01 | ||
Heure | Hauteur | |
---|---|---|
HAA | (m) | (pi) |
05:52 | 1.0 | 3.3 |
13:07 | 0.8 | 2.6 |
16:47 | 0.9 | 3.0 |
21:57 | 0.5 | 1.6 |
Comox, 2021-06-15 | ||
Heure | Hauteur | |
---|---|---|
HAP | (m) | (pi) |
04:30 | 3.5 | 11.5 |
08:11 | 3.9 | 12.8 |
15:41 | 1.1 | 3.6 |
23:20 | 4.8 | 15.7 |
On peut télécharger le script Python: tide4_fr.py.
On peut aussi télécharger un script Python semblable, tide5.py, qui transmet les données à un serveur Domoticz pour affichage dans un dispositif texte. Le script original exécuté sur le coup de minuit, mettait à jour les données pour la journée complète comme on peut voir dans la capture d'écran au début du billet. Le nouveau script est exécuté quatre fois par jour et affiche les mers pleines et basses sur une période de 24 heures commençant 8 heures avant le moment de l'exécution.