Accueil / Réalisations / Applicatif "Hydroportail" pour le compte du SCHAPI

Applicatif "Hydroportail" pour le compte du SCHAPI

L'hydroportail est un applicatif web métier permettant de gérer le référentiel des stations hydrométriques ainsi que la consultation des séries de données associées.

Nom du projet : Hydroportail

Client : SCHAPI
Le SCHAPI (Service Central d’Hydrométéorologie et d’Appui à la Prévision des Inondations) est un service rattaché au MTES (Ministère de la Transition Écologique et Solidaire). Créé en 2003 en réponse aux graves inondations du Sud de la France dans les années 90, il est basé sur le Météopôle de Toulouse et travaille en étroite relation avec Météo France. Le SCHAPI produit et diffuse une information continue de vigilance sur les crues publiées sur le site www.vigicrues.gouv.fr. Le SCHAPI dispose de plusieurs milliers de stations de mesure sur les rivières dont les capteurs surveillent les hauteurs et/ou les débits. Le SCHAPI fournit aux différents services de l’état ainsi qu’à des producteurs de données privés les outils nécessaires à la modélisation des comportements des rivières.

www.hydroportail.developpement-durable.gouv.fr

  • Accueil
  • Recherche
  • Recherche résultat carte
  • Calendrier d'une entité
  • Visualisation des hauteurs avec seuils
  • Différentes couleurs de statut des données
  • Gestion de la discontinuité des données
  • Superposition des pluies de bassin (pluviométrie)
  • Cumuls pluviométriques

Projet

L’hydroportail est un outil métier central du système d’information du SCHAPI, qui s'inscrit dans le cadre d'un projet pluriannuel Hydro3. C'est un outil très riche, qui a été développé sur plusieurs années dont les principales fonctions sont :

  • gestion du référentiel des sites hydrométriques, stations et capteurs répartis sur toute la France

  • consultation des séries de données (hauteurs, débits)

  • gestion de tous les concepts métiers du client liés à l'hydrométrie : courbes de corrections, tarages, jaugeages, seuils et crues dont certaines sont visibles par ailleurs sur Vigicrues

  • exports/imports de données au format CSV simplifié et XML SANDRE (norme hydrométrie)

  • gestion de plus d’une quarantaine de nomenclatures SANDRE, c’est à dire des référentiels de valeurs normalisées pour décrire des types d’entités, des droits de publication, des listes de grandeurs et leurs différentes valeurs (statuts, qualifications, méthodes, continuités)

  • appliquer des lois de distribution mathématiques sur les données caractéristiques des rivières pour en anticiper les comportements

Cet outil métier en mode web cible des professionnels comme des profils plus grand publics qui ont besoin de plus d’information que celle accessible dans Vigicrues. Cet outil interagit en permanence via API avec la Plate-forme HYDRO Centrale (PHyC) développée par le SCHAPI qui stocke les données de référence.

Challenge

Un challenge technique évident est lié au système d’information constitué de nombreuses applications métier travaillant sur les mêmes données et API pour accéder aux données. Le SCHAPI gère plusieurs milliers d’entités ayant pour certaines plus d’un siècle de données, ce qui fait des millions de points de mesure qu’il faut pouvoir gérer de manière performante et afficher de manière lisible.

Dans ce contexte, avec un accès à l’information qui coûte cher en terme de performance ainsi qu'avec un applicatif dont la cible est l’accès public, la conception et mise en place d'un système de cache flexible et performant est critique pour tenir la charge.

L’autre challenge est la complexité fonctionnelle liée au métier, mais aussi aux droits d’accès complexes hérités de réorganisations administratives et aux nombreux acteurs différents, publics ou non, qui n’ont pas tous les mêmes permissions.

Enfin, l’hydroportail est une brique centrale du système d’information du SCHAPI, lui même en cours de mutation depuis de nombreuses années. Tout en gardant la compatibilité avec les anciennes versions, il faut donc pouvoir fournir un nouvel applicatif basé sur un tout nouveau socle technique ainsi que sur les technologies modernes, de manière itérative et incrémentale sur plusieurs années.

Solution

L’hydroportail est une application métier développée en web, avec plusieurs modules basés sur le framework Symfony et une interface web traditionnelle. L'application possède des écrans dans lesquels sont injectés, via Javascript, du dynamisme sous forme de dataviz (graphe D3, cartes Mapbox GL JS) ou qui servent aussi à faciliter l'ergonomie comme des sélecteurs d’unités convertissant les données à la volée sans avoir à les redemander au serveur.

Les interfaces avec les composants externes se font via XML SANDRE, via SOAP ou encore des API REST/JSON. Certains calculs mathématiques sont réalisés avec un module R développé en partenariat avec l’INRAE.

Expertise

L’expertise technique a bien sûr été mise en œuvre sur les différentes technologies utilisées sur ce projet : PHP/Symfony, Javascript/React/D3, PostgreSQL. Une attention particulière a été donnée à la performance. D’une part pour des raisons de sécurité et ne pas « écrouler » les composants qui interagissent avec l’hydroportail. D’autre part pour améliorer la réactivité à l’usage pour les utilisateurs. Ceci a été possible par le biais du système de cache de Symfony, qui permet de déporter des informations dans Redis et de taguer les contenus pour faire de l’invalidation sélective.

La réussite d’un aussi gros projet n’a été possible que par la mise en place d’une méthodologie itérative avec des livraisons tous les 1-2 mois, en étroite collaboration avec les équipes du client. L’usage d’un outillage commun, notamment le partage de l’accès à la forge logicielle pour le travail au quotidien a permis de se rapprocher d’un mode agile, permettant de coller le plus vite possible au besoin et d’obtenir un feedback rapide des équipes du client.

Enfin, maintenir un niveau de qualité important sur une aussi grosse base de code nécessite la mise en place d’un outillage d’adapté, avec des tests automatisés (unitaires ou fonctionnels, avec Cypress), des analyseurs de code statiques dans l'intégration continue (Gitlab-CI) déclenchés sur chaque modification et « merge request » ainsi que des déploiements facilités (DevOps) là aussi via Gitlab-CI.