Aller au contenu

Configuration des ensembles de données dans wis2box

Objectifs d'apprentissage

À la fin de cette session pratique, vous serez capable de :

  • utiliser l'éditeur d'ensembles de données dans wis2box-webapp
  • créer de nouveaux ensembles de données en utilisant Template=weather/surface-based-observations/synop et Template=other
  • définir vos métadonnées de découverte
  • examiner vos mappages de données
  • publier une notification WIS2 pour vos métadonnées de découverte

Introduction

wis2box utilise des ensembles de données associés à des métadonnées de découverte et des mappages de données.

Les métadonnées de découverte sont utilisées pour créer un enregistrement conforme au WMO Core Metadata Profile (WCMP2), qui est partagé via une notification WIS2 publiée sur votre broker wis2box.

Les mappages de données permettent d'associer des plugins de données à vos données d'entrée, permettant ainsi leur transformation avant publication sur WIS2.

Dans cette session pratique, vous apprendrez à créer et configurer des ensembles de données à l'aide de l'éditeur d'ensembles de données dans wis2box-webapp.

Configurer des ensembles de données sans utiliser wis2box-webapp

wis2box prend également en charge la configuration des ensembles de données en utilisant le format metadata control file (MCF) défini par l'outil pygeometa.

L'utilisation de MCF offre plus de flexibilité et de contrôle, mais nécessite une rédaction précise pour garantir que le fichier MCF est correctement formaté et indenté, conformément au schéma requis.

Les fichiers MCF peuvent être publiés en ligne de commande dans le conteneur wis2box-management. Consultez la documentation wis2box pour plus d'informations.

Préparation

Connectez-vous à votre broker en utilisant MQTT Explorer.

Au lieu d'utiliser les identifiants de votre broker interne, utilisez les identifiants publics everyone/everyone :

MQTT Explorer : Connexion au broker

Note

Vous n'avez jamais besoin de partager les identifiants de votre broker interne avec des utilisateurs externes. L'utilisateur 'everyone' est un utilisateur public permettant de partager les notifications WIS2.

Les identifiants everyone/everyone ont un accès en lecture seule au sujet 'origin/a/wis2/#'. C'est le sujet où les notifications WIS2 sont publiées. Le Global Broker peut s'abonner avec ces identifiants publics pour recevoir les notifications.

L'utilisateur 'everyone' ne verra pas les sujets internes et ne pourra pas publier de messages.

Ouvrez un navigateur et accédez à http://YOUR-HOST/wis2box-webapp. Assurez-vous d'être connecté et d'avoir accès à la page 'dataset editor'.

Consultez la section Initialisation de wis2box si vous avez besoin de vous rappeler comment vous connecter au broker ou accéder à wis2box-webapp.

Créer un jeton d'autorisation pour processes/wis2box

Vous aurez besoin d'un jeton d'autorisation pour l'endpoint 'processes/wis2box' afin de publier votre ensemble de données.

Pour créer un jeton d'autorisation, accédez à votre VM de formation via SSH et utilisez les commandes suivantes :

cd ~/wis2box
python3 wis2box-ctl.py login

Ensuite, exécutez la commande suivante pour créer un jeton d'autorisation généré aléatoirement pour l'endpoint 'processes/wis2box' :

wis2box auth add-token --path processes/wis2box

Vous pouvez également créer un jeton avec une valeur spécifique en fournissant le jeton comme argument de la commande :

wis2box auth add-token --path processes/wis2box MyS3cretToken

Assurez-vous de copier la valeur du jeton et de la stocker sur votre machine locale, car vous en aurez besoin plus tard.

Une fois que vous avez votre jeton, vous pouvez quitter le conteneur wis2box-management :

exit

L'éditeur d'ensembles de données dans wis2box-webapp

Accédez à la page 'dataset editor' dans wis2box-webapp de votre instance wis2box en allant sur http://YOUR-HOST/wis2box-webapp et en sélectionnant 'dataset editor' dans le menu à gauche.

Sur la page 'dataset editor', sous l'onglet 'Datasets', cliquez sur "Create New ...":

Créer un nouvel ensemble de données

Une fenêtre contextuelle apparaîtra, vous demandant de fournir :

  • Centre ID : il s'agit de l'acronyme de l'agence (en minuscules et sans espaces), tel que spécifié par le Membre de l'OMM, qui identifie le centre de données responsable de la publication des données.
  • Template : Le type de données pour lequel vous créez des métadonnées. Vous pouvez choisir entre un modèle prédéfini ou sélectionner other.

Fenêtre contextuelle : Créer un nouvel ensemble de données

Centre ID

Votre Centre ID doit commencer par le TLD de votre pays, suivi d'un tiret (-) et d'un nom abrégé de votre organisation (par exemple fr-meteofrance). Le Centre ID doit être en minuscules et utiliser uniquement des caractères alphanumériques. La liste déroulante affiche tous les Centre IDs actuellement enregistrés sur WIS2 ainsi que tout Centre ID que vous avez déjà créé dans wis2box. Veuillez choisir un Centre ID approprié pour votre organisation.

Template

Le champ Template vous permet de sélectionner une liste de modèles disponibles dans l'éditeur d'ensembles de données de wis2box-webapp. Un modèle pré-remplit le formulaire avec des valeurs par défaut suggérées, adaptées au type de données. Cela inclut un titre et des mots-clés suggérés pour les métadonnées ainsi que des plugins de données préconfigurés.

Le sujet est automatiquement défini sur le sujet par défaut lié au modèle sélectionné, sauf si vous sélectionnez other. Si vous sélectionnez other, le sujet peut être défini à partir d'une liste déroulante basée sur la Hiérarchie des sujets WIS2.

Dans le cadre de la formation, vous créerez deux ensembles de données :

  • Un ensemble de données utilisant Template=weather/surface-based-observations/synop, qui inclut des plugins de données transformant les données au format BUFR avant publication.
  • Un ensemble de données utilisant Template=other, où vous êtes responsable de définir le sujet WIS2 et où vous utiliserez le plugin "Universal" pour publier les données sans transformation.

Template=weather/surface-based-observations/synop

Pour Template, sélectionnez weather/surface-based-observations/synop :

Formulaire : Informations initiales pour créer un nouvel ensemble de données

Cliquez sur continue to form pour continuer. Vous serez maintenant présenté avec le formulaire de l'éditeur d'ensembles de données.

Puisque vous avez sélectionné le modèle weather/surface-based-observations/synop, le formulaire sera pré-rempli avec certaines valeurs initiales liées à ce type de données.

Création des métadonnées de découverte

Le formulaire de l'éditeur d'ensembles de données vous permet de fournir les métadonnées de découverte pour votre ensemble de données, que le conteneur wis2box-management utilisera pour publier un enregistrement WCMP2.

Puisque vous avez sélectionné le modèle 'weather/surface-based-observations/synop', le formulaire sera pré-rempli avec certaines valeurs par défaut.

Veuillez vous assurer de remplacer l'ID local généré automatiquement par un nom descriptif pour votre ensemble de données, par exemple 'synop-dataset-wis2training' :

Éditeur de métadonnées : titre, description, mots-clés

Examinez le titre et les mots-clés, mettez-les à jour si nécessaire, et fournissez une description pour votre ensemble de données.

Notez qu'il existe des options pour changer la 'Politique de données de l'OMM' de 'core' à 'recommended' ou pour modifier votre identifiant de métadonnées par défaut. Veuillez conserver la politique de données sur 'core' et utiliser l'identifiant de métadonnées par défaut.

Ensuite, examinez la section définissant vos 'Propriétés temporelles' et 'Propriétés spatiales'. Vous pouvez ajuster le cadre géographique en mettant à jour les champs 'Latitude Nord', 'Latitude Sud', 'Longitude Est' et 'Longitude Ouest' :

Éditeur de métadonnées : propriétés temporelles et spatiales

Ensuite, remplissez la section définissant les 'Informations de contact du fournisseur de données' :

Éditeur de métadonnées : informations de contact

Enfin, remplissez la section définissant les 'Informations sur la qualité des données'.

Une fois que vous avez rempli toutes les sections, cliquez sur 'VALIDATE FORM' et vérifiez le formulaire pour toute erreur :

Éditeur de métadonnées : validation

S'il y a des erreurs, corrigez-les et cliquez à nouveau sur 'VALIDATE FORM'.

Assurez-vous qu'il n'y a pas d'erreurs et que vous obtenez une fenêtre contextuelle indiquant que votre formulaire a été validé :

Éditeur de métadonnées : validation réussie

Ensuite, avant de soumettre votre ensemble de données, examinez les mappages de données pour votre ensemble de données.

Configuration des mappages de données

Étant donné que vous avez utilisé un modèle pour créer votre jeu de données, les mappages de jeu de données ont été pré-remplis avec les plugins par défaut pour le modèle 'weather/surface-based-observations/synop'. Les plugins de données sont utilisés dans le wis2box pour transformer les données avant qu'elles ne soient publiées à l'aide de la notification WIS2.

Data Mappings: update plugin

Notez que vous pouvez cliquer sur le bouton "Update" pour modifier les paramètres du plugin, tels que l'extension de fichier et le modèle de fichier. Vous pouvez laisser les paramètres par défaut pour le moment.

À propos de la case à cocher pour le cache des données principales

Vous verrez la case à cocher suivante :

Dataset editor: cache-option

Si vous décochez cette case, le wis2box ajoutera properties.cache=False, indiquant que vous ne souhaitez pas que le Global Cache télécharge et stocke une copie de vos données. Par défaut, cette case est cochée, ce qui signifie que le Global Cache mettra en cache vos données principales, ce qui est la configuration recommandée pour la plupart des jeux de données.

Soumettre votre jeu de données

Enfin, vous pouvez cliquer sur 'submit' pour publier votre jeu de données.

Vous devrez fournir le jeton d'autorisation pour 'processes/wis2box' que vous avez créé précédemment. Si ce n'est pas encore fait, vous pouvez créer un nouveau jeton en suivant les instructions dans la section de préparation.

Vérifiez que vous obtenez le message suivant après avoir soumis votre jeu de données, indiquant que le jeu de données a été soumis avec succès :

Submit Dataset Success

Après avoir cliqué sur 'OK', vous serez redirigé vers la page d'accueil de l'éditeur de jeux de données. Maintenant, si vous cliquez sur l'onglet 'Dataset', vous devriez voir votre nouveau jeu de données listé :

Dataset Editor: new dataset

Examiner la notification WIS2 pour vos métadonnées de découverte

Accédez à MQTT Explorer. Si vous étiez connecté au broker, vous devriez voir une nouvelle notification WIS2 publiée sur le sujet origin/a/wis2/<your-centre-id>/metadata :

MQTT Explorer: WIS2 notification

Déclencher la republication des métadonnées de découverte

La notification WIS2 est publiée dès que les métadonnées de découverte sont soumises avec succès. Si vous ne voyez pas la notification, cela peut être dû au fait que vous n'étiez pas connecté au broker au moment de la publication.

Si vous ne voyez pas la notification WIS2, vous pouvez manuellement déclencher la republication des métadonnées de découverte en utilisant la commande suivante :

python3 wis2box-ctl.py execute wis2box metadata discovery republish

Inspectez le contenu de la notification WIS2 que vous avez publiée. Vous devriez voir un JSON avec une structure correspondant au format WIS Notification Message (WNM).

Question

Sur quel sujet la notification WIS2 est-elle publiée ?

Cliquez pour révéler la réponse

La notification WIS2 est publiée sur le sujet origin/a/wis2/<your-centre-id>/metadata.

Question

Essayez de trouver le titre, la description et les mots-clés que vous avez fournis dans les métadonnées de découverte dans la notification WIS2. Pouvez-vous les trouver ?

Cliquez pour révéler la réponse

Le titre, la description et les mots-clés que vous avez fournis dans les métadonnées de découverte ne sont pas présents dans le contenu de la notification WIS2 !

À la place, essayez de chercher le lien canonique dans la section "links" de la notification WIS2 :

WIS2 notification for metadata, links sections

La notification WIS2 contient un lien canonique vers l'enregistrement WCMP2 qui a été publié.

Copiez-collez ce lien canonique dans votre navigateur pour accéder à l'enregistrement WCMP2. Selon les paramètres de votre navigateur, vous pourriez être invité à télécharger le fichier ou il pourrait s'afficher directement dans votre navigateur.

Vous trouverez le titre, la description et les mots-clés que vous avez fournis à l'intérieur de l'enregistrement WCMP2.

wis2box fournit seulement un nombre limité de modèles prédéfinis. Ces modèles sont conçus pour des types de jeux de données courants, mais ils peuvent ne pas toujours correspondre à des données spécialisées. Pour tous les autres types de jeux de données, vous pouvez créer votre jeu de données en sélectionnant Template=other.

Template=other

Ensuite, nous allons créer un 2e jeu de données en utilisant Template=other.

Cliquez sur "Create New ..." à nouveau pour créer un nouveau jeu de données. Utilisez le même centre-id que vous avez utilisé précédemment, il devrait être disponible dans la liste déroulante. Pour Template, sélectionnez other :

Create New Dataset Form: Initial information

Cliquez sur continue to form pour continuer, vous serez maintenant présenté avec le Dataset Editor Form à nouveau.

Créer des métadonnées de découverte

Fournissez vos propres valeurs pour les champs 'Title' et 'Description' et assurez-vous de remplacer le 'Local ID' généré automatiquement par un nom descriptif pour votre jeu de données :

Metadata Editor: title, description, keywords

Notez que puisque vous avez sélectionné Template=other, il vous revient de définir la hiérarchie des sujets WIS2 en utilisant les listes déroulantes pour 'Discipline' et 'Sub-Discipline'.

Pour cet exercice, veuillez sélectionner le sujet de sous-discipline "prediction/analysis/medium-range/deterministic/global" :

Metadata Editor: title, description, keywords

Puisque vous avez utilisé Template=other, aucun mot-clé n'a été prédéfini. Assurez-vous d'ajouter au moins 3 mots-clés de votre choix :

Metadata Editor: title, description, keywords

Après avoir rempli les champs requis, complétez les sections restantes du formulaire, y compris 'Temporal Properties', 'Spatial Properties' et 'Contact Information of the Data Provider', et assurez-vous de valider le formulaire.

Configurer les mappages de données

Lorsque Template=other est utilisé, aucun mappage de données par défaut n'est fourni. En conséquence, l'éditeur de mappages de jeu de données sera vide et les utilisateurs doivent configurer les mappages selon leurs besoins spécifiques.

Data Mappings: update plugin

Cliquez sur "ADD A PLUGIN +" pour ajouter un plugin de données à votre jeu de données.

Sélectionnez le plugin nommé "Universal data without conversion". Ce plugin est conçu pour publier des données sans appliquer de transformation.

Lors de l'ajout de ce plugin, vous devrez spécifier l'extension de fichier et un modèle de fichier (défini par une expression régulière) qui correspond au modèle de nommage de vos fichiers de données. Dans le cas du plugin "Universal", le modèle de fichier est également utilisé pour déterminer la propriété "datetime" pour les données.

Analyser la date et l'heure à partir du nom de fichier

Le plugin "Universal" suppose que le premier groupe dans l'expression régulière correspond à la date et l'heure des données.

Le modèle de fichier par défaut est ^.*?_(\d{8}).*?\..*$, qui correspond à 8 chiffres précédés d'un underscore et suivis de tout caractère et d'un point avant l'extension de fichier. Par exemple :

  • mydata_20250101.txt correspondra et extraira le 25 janvier 2025 comme propriété datetime pour les données
  • mydata_2025010112.txt ne correspondra pas, car il y a 10 chiffres au lieu de 8
  • mydata-20250101.txt ne correspondra pas, car il y a un tiret au lieu d'un underscore avant la date

Lors de l'ingestion de données à l'aide du plugin "Universal", renommez vos fichiers pour qu'ils correspondent au modèle par défaut ou mettez à jour le modèle de fichier en vous assurant que le premier groupe dans l'expression régulière correspond à la date et l'heure.

Conservez les valeurs par défaut pour "File Name" pour le moment, car elles correspondent aux données que vous ingérerez lors de la prochaine session pratique :

Data Mappings: update plugin

Cliquez sur "SAVE" pour enregistrer les paramètres du plugin et vérifiez que vous voyez maintenant le plugin listé dans l'éditeur de mappages de jeu de données :

Data Mappings: update plugin

Notez que lorsque vous ingérerez des données, l'extension de fichier et le modèle de fichier du nom de fichier doivent correspondre aux paramètres que vous avez fournis ici, sinon les données ne seront pas traitées et le conteneur wis2box-management enregistrera des messages d'erreur (ERROR).

Soumettre et examiner le résultat

Enfin, fournissez le jeton d'autorisation pour 'processes/wis2box' que vous avez créé précédemment et cliquez sur 'submit' pour publier votre jeu de données.

Après une soumission réussie, votre nouveau jeu de données apparaîtra dans l'onglet Dataset :

Dataset Editor: new dataset

Accédez à MQTT Explorer, si vous étiez connecté à votre broker, vous devriez voir une autre nouvelle notification WIS2 publiée sur le sujet origin/a/wis2/<your-centre-id>/metadata.

Question

Visitez l'interface wis2box-UI à http://YOUR-HOST.

Combien de jeux de données voyez-vous listés ? Comment pouvez-vous consulter la hiérarchie des sujets WIS2 utilisée pour chaque jeu de données et comment pouvez-vous voir la description de chaque jeu de données ?

Cliquez pour révéler la réponse

En ouvrant l'interface wis2box à http://YOUR-HOST, vous devriez voir 2 jeux de données listés avec leur hiérarchie des sujets WIS2. Pour voir la description de chaque jeu de données, vous pouvez cliquer sur "metadata", ce qui redirigera vers l'élément 'discovery-metadata' correspondant, tel que servi par le wis2box-api.

Question

Essayez de mettre à jour la description du dernier jeu de données que vous avez créé. Après avoir mis à jour la description, voyez-vous une nouvelle notification WIS2 publiée sur le sujet origin/a/wis2/<your-centre-id>/metadata ? Quelle est la différence entre la nouvelle notification et la précédente ?

Cliquez pour révéler la réponse

Vous devriez voir un nouveau message de notification de données envoyé après la mise à jour de votre jeu de données sur le sujet origin/a/wis2/<your-centre-id>/metadata.

Dans le message, la valeur de "rel": "canonical" changera en "rel": "update", indiquant que des données publiées précédemment ont été modifiées. Pour consulter la description mise à jour, copiez-collez l'URL dans votre navigateur et vous devriez voir la description actualisée.

Question

Essayez de mettre à jour la hiérarchie des sujets du dernier jeu de données que vous avez créé en modifiant la sélection dans "Sub-Discipline Topics". Voyez-vous une nouvelle notification WIS2 publiée sur le sujet origin/a/wis2/<your-centre-id>/metadata ?

Cliquez pour révéler la réponse

Vous ne pouvez pas mettre à jour la hiérarchie des sujets d'un jeu de données existant. Le champ de la hiérarchie des sujets est désactivé dans le formulaire d'édition du jeu de données après la création du jeu de données. Si vous souhaitez utiliser une hiérarchie des sujets différente, supprimez d'abord le jeu de données existant, puis créez un nouveau jeu de données avec la hiérarchie des sujets souhaitée.

Conclusion

Félicitations !

Lors de cette session pratique, vous avez appris à :

  • utiliser l'éditeur de jeux de données de l'application wis2box-webapp
  • créer de nouveaux jeux de données en utilisant Template=weather/surface-based-observations/synop et Template=other
  • définir vos métadonnées de découverte
  • examiner vos mappages de données
  • publier des métadonnées de découverte et examiner la notification WIS2