REX de l’ORE Agrhys#
1. Qui parle ?#
Christophe Geneste, ingénieur d’étude INRAE, administrateur d’infrastructures informatiques, d’applications web et de bases de données à l’UMR SAS.
2. Contexte#
Appliquer le modèle de données Sensorthings à un observatoire, tel que l’ORE AgrHyS n’est pas trivial au premier abord. Comment restranscrire la réalité de terrain vers le modèle Sensorthings ?
Sachant que:
Je ne suis pas spécialiste en base de données
L’utilisation de l’API SensorThings m’est difficile
La compréhension du modèle de données SensorThings n’est pas aisée
Important
Pour lever ces verrous, ce travail nécessite 3 compétences. Vous les possédez, alors vous êtes autonomes!
Fig. 4 Collaboration de 3 compétences#
3. Configurer une instance STEAN#
STEAN est une implémentation de l’API SensorThings. Pour en savoir plus
La première difficulté est de déterminer les Things et Features of Interest. Que doivent-ils représenter? Ici, le/la scientifique intervient majoritairement. La seconde étape est la définition de Sensors et Observed Properties. La/le scientifique travaillent de concert avec le personnel de terrain essentiellement.
Dans le cas de l’ORE Agrhys :
Le point de mesure est attribué aux entités Things Exemple : le point de mesure E30 correspond à l’éxutoire du bassin versant du Puits, dont les coordonnées géographiques sont [-4.1208244,47.9441891]
Sensors = capteur, analyseur (données d’analyses, relevés manuels)
Observed Properties = grandeur physique mesurée ou analysée.
3.1. Fichier de configuration#
Maintenant que les Things, les Features of Interest, les Sensors et les Observed Properties sont définis, comment configurer une instance STEAN ? C’est ici que le Data Scientist intervient. Il doit fournir les outils et les formalismes pour accompagner le scientifique et le personnel de terrain dans l’intégration de leurs données vers le modèle de données SensorThings.
Dans le cas d’un observatoire, nous avons produit un fichier tableur dit de configuration. Les informations collectées au travers de ce fichier sont traitées par un script Python permettant de configurer une instance STEAN. L’alimentation en données sera effectuée ultérieurement.
3.4. Traitement du fichier de configuration#
Dans un premier temps, le traitement consiste à analyser le fichier de configuration via un script Python. Ensuite, ce même script génère les requêtes nécessaires pour configurer une instance STEAN vierge. Ce script est sous la forme d’un Jupyter Notebook. Télécharger les Notebook Python dédiés à l’observatoire ORE Agrhys.
Tip
Pensez à créer un fichier de paramètrage. Voir un exemple param_template.conf.
4. Les données#
Bref rappel du contexte : l’observatoire ORE Agrhys dispose déjà d’un système de données que nous voulons faire évoluer vers le standard OGC Sensorthings. Ce transfert nécessite 2 étapes, l’import des données historiques et actualisation des nouvelles données.
4.1 Exportation CSV#
Quelle que soit la source des fichiers CSV (logiciel Hydras, tout à flux, production d’un scientifique, données d’analyses, etc …), il doivent se conformer au format suivant :
Un fichier par capteur
Chaque ligne du fichier CVS au format jj/mm/aaa;hh:mm:seconde;x.xxx
Important
Le séparateur décimal doit être le point et le codage en UTF8.
4.2 Importation des CSV#
L’importation, de données historiques ou nouvelles, s’effectue à l’aide du Notebook import_new_data.ipynb..
Le Notebool [import_big_data.ipynb](https://forge.inrae.fr/christophe.geneste/agrhys_stean/-/blob/main/import_big_data.ipynb?ref_type=heads est gardé pour mémoire. Depuis la version 1.2 de STEAN, il n’est plus utile. Le partitionnement de le table Datastream a amélioré les performances. L’injection de fichier CSV de grande taile (13 million de lignes) est supportée.
Au préalable, renseigner le fichier de paramétrage template_param.conf.
4.3 Après importation des csv#
Après l’injection importante de données, il est nécessaire de relancer STEAN. Au démarrage, un processus d’indexation est lancé. Il peut prendre beaucoup de temps, mais le service est maintenu. Des lenteurs sont possibles selon les requêtes effectuées.
3.2. Comment ce fichier de configuration fonctionne-t-il?#
Il est composé d’un onglet d’information et de 5 onglets correspondant aux entités du modèle de données Sensorthings. Télécharger un modèle du fichier de configuration
Lisez-moi : guide l’utilisateur dans la saisie sur les données attendues
1_observedProperty
2_sensor
3_thing
4_datastream
5_featureOfInterest
Les 5 onglets (en rouge) seront interprétés par un script Python pour configurer une instance STEAN.
Le fichier de configuration contient une macro VBA effectuant des contrôles de saisies et produit automatiquement la liste des datastreams à l’aide du bouton Actualiser de l’onglet 4_datastream.
3.2.1 Instruction générales#
Renseigner les onglets 1_observedProperty, 2_sensor, 3_thing, 5_featureOfInterest, puis actualiser les données dans l’onglet 4_datastream.
Adapter les noms des datastreams si nécessaire. Ils doivent être uniques.
Important
Attention : une action sur le bouton Actualiser effacera vos modifications.
Le séparateur décimal : point.
Ne modifier pas la structure des onglets en rouge. Si présence de doublons dans la colonne name , les cellules passent en rouge.
Ne pas utliser les caractères _ et -. Ces caractères seront automatiquement supprimés des colonnes name.
Vérifier les menus déroulants des onglets 2_sensor (colonnes observedPropertyn), 3_thing (colonnes sensorn ) et 4_datastream (colonne featureOfInterest ).
Pas de lignes vides.
Le nom des colonnes en fond blanc sont standards et ne doivent pas être modifiés.
Les colonnes grisées correspondent aux propriétés de chaque entité. Elles sont personnalisables.
Données obligatoires repérées par une * et en rouge.