Télécharger des données depuis WIS2 en utilisant wis2downloader
Objectifs d'apprentissage !
À la fin de cette session pratique, vous serez capable de :
- utiliser le "wis2downloader" pour vous abonner aux notifications de données WIS2 et télécharger des données sur votre système local
- consulter l'état des téléchargements dans le tableau de bord Grafana
- apprendre à configurer le wis2downloader pour s'abonner à un broker non par défaut
Introduction
Dans cette session, vous apprendrez à configurer un abonnement à un Broker WIS2 et à télécharger automatiquement des données sur votre système local en utilisant le service "wis2downloader" inclus dans le wis2box.
À propos de wis2downloader
Le wis2downloader est également disponible en tant que service autonome qui peut être exécuté sur un système différent de celui qui publie les notifications WIS2. Consultez wis2downloader pour plus d'informations sur l'utilisation de wis2downloader en tant que service autonome.
Si vous souhaitez développer votre propre service pour vous abonner aux notifications WIS2 et télécharger des données, vous pouvez utiliser le code source de wis2downloader comme référence.
Préparation
Avant de commencer, connectez-vous à votre machine virtuelle étudiante et assurez-vous que votre instance wis2box est opérationnelle.
Bases de wis2downloader
Le wis2downloader est inclus en tant que conteneur séparé dans wis2box, tel que défini dans les fichiers Docker Compose. Le conteneur Prometheus dans wis2box est configuré pour collecter les métriques du conteneur wis2downloader, et ces métriques peuvent être visualisées via un tableau de bord dans Grafana.
Consulter le tableau de bord wis2downloader dans Grafana
Ouvrez un navigateur web et accédez au tableau de bord Grafana de votre instance wis2box en allant sur http://YOUR-HOST:3000.
Cliquez sur "dashboards" dans le menu de gauche :

et sélectionnez ensuite le tableau de bord wis2downloader :

Vous devriez voir le tableau de bord suivant :

Ce tableau de bord est basé sur les métriques publiées par le service wis2downloader et vous montrera l'état des téléchargements en cours.
Dans le coin supérieur gauche, vous pouvez voir les abonnements actuellement actifs.
Gardez ce tableau de bord ouvert, car vous l'utiliserez pour surveiller la progression des téléchargements dans l'exercice suivant.
Examiner la configuration de wis2downloader
Le service wis2downloader dans wis2box peut être configuré à l'aide des variables d'environnement définies dans votre fichier wis2box.env.
Les variables d'environnement suivantes sont utilisées par wis2downloader :
- DOWNLOAD_BROKER_HOST : Le nom d'hôte du broker MQTT auquel se connecter. Par défaut : globalbroker.meteo.fr
- DOWNLOAD_BROKER_PORT : Le port du broker MQTT auquel se connecter. Par défaut : 443 (HTTPS pour websockets)
- DOWNLOAD_BROKER_USERNAME : Le nom d'utilisateur pour se connecter au broker MQTT. Par défaut : everyone
- DOWNLOAD_BROKER_PASSWORD : Le mot de passe pour se connecter au broker MQTT. Par défaut : everyone
- DOWNLOAD_BROKER_TRANSPORT : websockets ou tcp, le mécanisme de transport à utiliser pour se connecter au broker MQTT. Par défaut : websockets
- DOWNLOAD_RETENTION_PERIOD_HOURS : La période de rétention en heures pour les données téléchargées. Par défaut : 24
- DOWNLOAD_WORKERS : Le nombre de travailleurs de téléchargement à utiliser. Par défaut : 8. Détermine le nombre de téléchargements parallèles.
- DOWNLOAD_MIN_FREE_SPACE_GB : L'espace libre minimum en Go à conserver sur le volume hébergeant les téléchargements. Par défaut : 1.
Pour examiner la configuration actuelle de wis2downloader, vous pouvez utiliser la commande suivante :
cat ~/wis2box/wis2box.env | grep DOWNLOAD
Examiner la configuration de wis2downloader
Quel est le broker MQTT par défaut auquel wis2downloader se connecte ?
Quelle est la période de rétention par défaut pour les données téléchargées ?
Cliquez pour révéler la réponse
Le broker MQTT par défaut auquel wis2downloader se connecte est globalbroker.meteo.fr.
La période de rétention par défaut pour les données téléchargées est de 24 heures.
Mettre à jour la configuration de wis2downloader
Pour mettre à jour la configuration de wis2downloader, vous pouvez modifier le fichier wis2box.env. Pour appliquer les modifications, vous pouvez relancer la commande de démarrage pour le stack wis2box :
python3 wis2box-ctl.py start
Vous verrez alors le service wis2downloader redémarrer avec la nouvelle configuration.
Vous pouvez conserver la configuration par défaut pour l'exercice suivant.
Interface en ligne de commande de wis2downloader
Pour accéder à l'interface en ligne de commande de wis2downloader dans wis2box, vous pouvez vous connecter au conteneur wis2downloader en utilisant la commande suivante :
python3 wis2box-ctl.py login wis2downloader
Utilisez la commande suivante pour lister les abonnements actuellement actifs :
wis2downloader list-subscriptions
Cette commande retourne une liste vide, car aucun abonnement n'a encore été configuré.
Télécharger des données GTS en utilisant un WIS2 Global Broker
Si vous avez conservé la configuration par défaut de wis2downloader, il est actuellement connecté au WIS2 Global Broker hébergé par Météo-France.
Configurer l'abonnement
Utilisez la commande suivante cache/a/wis2/de-dwd-gts-to-wis2/# pour vous abonner aux données publiées par la passerelle GTS-to-WIS2 hébergée par DWD, disponible via les Global Caches :
wis2downloader add-subscription --topic cache/a/wis2/de-dwd-gts-to-wis2/#
Ensuite, quittez le conteneur wis2downloader en tapant exit :
exit
Vérifier les données téléchargées
Consultez le tableau de bord wis2downloader dans Grafana pour voir le nouvel abonnement ajouté. Attendez quelques minutes et vous devriez voir les premiers téléchargements commencer. Passez à l'exercice suivant une fois que vous avez confirmé que les téléchargements ont commencé.
Le service wis2downloader dans wis2box télécharge les données dans le répertoire 'downloads' situé dans le répertoire que vous avez défini comme WIS2BOX_HOST_DATADIR dans votre fichier wis2box.env. Pour afficher le contenu du répertoire des téléchargements, utilisez la commande suivante :
ls -R ~/wis2box-data/downloads
Notez que les données téléchargées sont stockées dans des répertoires nommés d'après le sujet sur lequel la Notification WIS2 a été publiée.
Consulter les données téléchargées
Quels répertoires voyez-vous dans le répertoire des téléchargements ?
Pouvez-vous voir des fichiers téléchargés dans ces répertoires ?
Cliquez pour révéler la réponse
Vous devriez voir une structure de répertoires commençant par cache/a/wis2/de-dwd-gts-to-wis2/ sous laquelle vous verrez d'autres répertoires nommés d'après les en-têtes des bulletins GTS des données téléchargées.
Selon le moment où vous avez démarré l'abonnement, vous pouvez ou non voir des fichiers téléchargés dans ce répertoire. Si vous ne voyez pas encore de fichiers, attendez quelques minutes de plus et vérifiez à nouveau.
Consultez le tableau de bord wis2downloader dans Grafana pour voir la progression des téléchargements. Vous verrez l'abonnement que vous avez ajouté dans le coin supérieur gauche du tableau de bord, et le nombre de téléchargements augmenter à mesure que les données sont téléchargées :

Supprimer l'abonnement et les données téléchargées
Nettoyons l'abonnement et les données téléchargées avant de passer à l'exercice suivant.
Reconnectez-vous au conteneur wis2downloader :
python3 wis2box-ctl.py login wis2downloader
et supprimez l'abonnement que vous avez créé dans wis2downloader en utilisant la commande suivante :
wis2downloader remove-subscription --topic cache/a/wis2/de-dwd-gts-to-wis2/#
Visitez le tableau de bord Grafana pour confirmer que l'abonnement a été supprimé et que les téléchargements se sont arrêtés. Vous devriez voir l'abonnement disparaître du coin supérieur gauche du tableau de bord.
Attendez quelques minutes jusqu'à ce que le tableau de bord indique que les téléchargements se sont arrêtés.
Enfin, vous pouvez supprimer les données téléchargées en utilisant la commande suivante dans le conteneur wis2downloader :
rm -rf app/data/downloads/*
Note
Le répertoire app/data/downloads dans le conteneur wis2downloader est mappé au répertoire downloads dans le WIS2BOX_HOST_DATADIR tel que défini dans votre fichier wis2box.env. La commande ci-dessus supprime toutes les données téléchargées.
Quittez le conteneur wis2downloader en tapant exit :
exit
Vérifiez que le répertoire des téléchargements sur votre hôte est à nouveau vide :
ls -R ~/wis2box-data/downloads
À propos des passerelles GTS-to-WIS2
Il existe actuellement deux passerelles GTS-to-WIS2 publiant des données via le WIS2 Global Broker et les Global Caches :
- DWD (Allemagne) : centre-id=de-dwd-gts-to-wis2
- JMA (Japon) : centre-id=jp-jma-gts-to-wis2
Si, dans l'exercice précédent, vous remplacez de-dwd-gts-to-wis2 par jp-jma-gts-to-wis2, vous recevrez les notifications et les données publiées par la passerelle JMA GTS-to-WIS2.
Origine vs sujets de cache
Lorsque vous vous abonnez à un sujet commençant par origin/, vous recevrez des notifications avec une URL canonique pointant vers un serveur de données fourni par le Centre WIS publiant les données.
Lorsque vous vous abonnez à un sujet commençant par cache/, vous recevrez plusieurs notifications pour les mêmes données, une pour chaque Global Cache. Chaque notification contiendra une URL canonique pointant vers le serveur de données du Global Cache correspondant. Le wis2downloader téléchargera les données à partir de la première URL canonique qu'il peut atteindre.
Télécharger des données d'exemple depuis le WIS2 Training Broker
Dans cet exercice, vous allez vous abonner au WIS2 Training Broker, qui publie des données d'exemple à des fins de formation.
Modifier la configuration du wis2downloader
Cela montre comment s'abonner à un broker qui n'est pas le broker par défaut et vous permettra de télécharger des données publiées par le WIS2 Training Broker.
Modifiez le fichier wis2box.env et changez DOWNLOAD_BROKER_HOST en wis2training-broker.wis2dev.io, DOWNLOAD_BROKER_PORT en 1883 et DOWNLOAD_BROKER_TRANSPORT en tcp :
# paramètres du téléchargeur
DOWNLOAD_BROKER_HOST=wis2training-broker.wis2dev.io
DOWNLOAD_BROKER_PORT=1883
DOWNLOAD_BROKER_USERNAME=everyone
DOWNLOAD_BROKER_PASSWORD=everyone
# mécanisme de transport pour le téléchargement (tcp ou websockets)
DOWNLOAD_BROKER_TRANSPORT=tcp
Vérifiez que les modifications effectuées correspondent bien à ce qui précède en exécutant :
cat ~/wis2box/wis2box.env | grep DOWNLOAD
Ensuite, exécutez la commande 'restart' pour appliquer les modifications :
python3 wis2box-ctl.py restart
Vérifiez les journaux du wis2downloader pour voir si la connexion au nouveau broker a réussi :
docker logs wis2downloader
Vous devriez voir le message de journal suivant :
...
INFO - Connecting...
INFO - Host: wis2training-broker.wis2dev.io, port: 1883
INFO - Connected successfully
Configurer de nouveaux abonnements
Nous allons maintenant configurer un nouvel abonnement au sujet pour télécharger les données de trajectoire des cyclones depuis le WIS2 Training Broker.
Connectez-vous au conteneur wis2downloader :
python3 wis2box-ctl.py login wis2downloader
Et exécutez la commande suivante (copiez-collez pour éviter les erreurs de frappe) :
wis2downloader add-subscription --topic origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/trajectory
Quittez le conteneur wis2downloader en tapant exit.
Vérifier les données téléchargées
Attendez de voir les téléchargements commencer dans le tableau de bord Grafana du wis2downloader.
Vérifiez que les données ont été téléchargées en consultant à nouveau les journaux du wis2downloader avec :
docker logs wis2downloader
Vous devriez voir un message de journal similaire au suivant :
[...] INFO - Message received under topic origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/trajectory
[...] INFO - Downloaded A_JSXX05ECEP020000_C_ECMP_...
Vérifiez le contenu du répertoire des téléchargements à nouveau :
ls -R ~/wis2box-data/downloads
Vous devriez voir un nouveau répertoire nommé origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/trajectory contenant les données téléchargées.
Examiner les données téléchargées
Quel est le format des fichiers des données téléchargées ?
Cliquez pour révéler la réponse
Les données téléchargées sont au format BUFR, comme indiqué par l'extension de fichier .bufr.
Ensuite, essayez d'ajouter deux autres abonnements pour télécharger les anomalies mensuelles de température de surface et les données de prévision globale d'ensemble depuis les sujets suivants :
origin/a/wis2/int-wis2-training/data/core/weather/prediction/forecast/medium-range/probabilistic/globalorigin/a/wis2/int-wis2-training/data/core/climate/experimental/anomalies/monthly/surface-temperature
Attendez de voir les téléchargements commencer dans le tableau de bord Grafana du wis2downloader.
Vérifiez à nouveau le contenu du répertoire des téléchargements :
ls -R ~/wis2box-data/downloads
Vous devriez voir les nouveaux répertoires correspondant aux sujets auxquels vous vous êtes abonnés, contenant les données téléchargées.
Conclusion
Félicitations !
Au cours de cette session pratique, vous avez appris à :
- utiliser le 'wis2downloader' pour vous abonner à un WIS2 Broker et télécharger des données sur votre système local
- consulter l'état des téléchargements dans le tableau de bord Grafana
- modifier la configuration par défaut du wis2downloader pour s'abonner à un autre broker
- consulter les données téléchargées sur votre système local