Superviser les données d'observatoires magnétiques
Application web de supervision et de saisie de données géomagnétiques développée sur mesure entre 2016 et 2017 pour un organisme national de recherche scientifique. Elle permet de visualiser les séries de mesures des observatoires, de saisir les mesures absolues et de suivre les événements des capteurs.
J'en ai assuré la conception et le développement complet, en freelance, de l'architecture à la mise en production.
Contexte
Les observatoires géomagnétiques mesurent en continu les composantes du champ magnétique terrestre. Ces séries alimentent la recherche en géophysique et doivent être contrôlées : un capteur qui dérive ou une perturbation mal identifiée fausse les données en aval.
En complément des enregistrements automatiques, des opérateurs réalisent des mesures absolues avec des instruments de précision. Ces relevés servent de référence pour corriger les séries continues.
Le problème à résoudre
- Visualiser les séries — afficher les composantes magnétiques dans le temps et repérer les perturbations.
- Saisir les mesures absolues — disposer d'un formulaire structuré et contrôlé pour les relevés de précision.
- Tracer la vie des capteurs — alertes, anomalies et opérations de maintenance dans un journal unique.
- Couvrir plusieurs observatoires — une seule interface pour plusieurs stations.
Contraintes
- Précision des saisies — unités angulaires, horodatages précis, séries de visées : une erreur de saisie se propage dans les calculs.
- Volume de points — des séries temporelles longues à afficher sans figer le navigateur.
- Deux publics — des chercheurs qui analysent et des opérateurs qui saisissent, avec des droits différents.
Choix techniques et pourquoi
- Un modèle de données métier explicite — observatoires, capteurs, séries, mesures absolues et événements modélisés avec Doctrine, pour que les règles du domaine vivent dans le code et non dans des conventions de saisie.
- Validation métier à la saisie — les formulaires de mesures absolues contrôlent les valeurs et effectuent les calculs dérivés, au lieu de laisser l'opérateur les faire à la main.
- Graphiques côté navigateur — une bibliothèque de graphiques JavaScript avec jQuery pour la navigation temporelle, le zoom et le filtrage par composante.
- Rôles différenciés — chercheur, opérateur et administrateur n'ont pas accès aux mêmes actions.
Ce qui a été livré
- Graphiques interactifs — courbes par composante magnétique, zoom, navigation temporelle et comparaison entre observatoires.
- Mesures absolues — formulaire structuré : référence d'azimut, mesures DI-flux, pilier, visées de mire et séries de mesures angulaires.
- Filtres — choix des composantes affichées et paramètres d'affichage.
- Journal d'événements — alertes capteurs avec type, niveau et message, par ordre chronologique.
- Multi-observatoires — sélection de la station active et paramétrage par site.
- Gestion des utilisateurs — authentification et droits par rôle.
Résultats
L'application a été livrée et mise en production en 2017. Elle réunit dans un même outil la consultation des séries, la saisie des mesures absolues et le suivi des capteurs.
Stack
- Back-end — PHP, Symfony, Doctrine ORM
- Front-end — Bootstrap, jQuery, bibliothèque de graphiques JavaScript
- Données — MySQL
- Hébergement — Ubuntu, Nginx
Pour aller plus loin
Ce projet relève de mon offre de développement web sur mesure. Pourquoi un outil dédié plutôt qu'un logiciel standard : voir application sur mesure ou SaaS, six critères pour décider.