Aller au contenu

Service Interopérable de Modélisation des Flux d’Eau Non-influencés (SIMFEN)

Publié le: at 10:00

Mesurer un débit d’eau nécessite une station de mesure, qu’il n’est pas possible d’implanter en tous points d’un réseau hydrographique pour une question de coût. À partir d’un débit, il est possible de gérer et comprendre un milieu aquatique, mais aussi de simuler d’autres éléments, tel que des flux de nutriments. Ainsi, de multiples recherches ont été réalisées afin de parvenir à modéliser les flux d’eau de manière précise, mais souvent sans s’assurer de l’utilisation des modèles. Ce sujet a fait l’objet d’une thèse1 à l’UMR SAS et a servi de base pour créer une application web de modélisation de flux d’eau sur le territoire breton dans le cadre du projet SIMFEN.

Sommaire

Afficher le sommaire

Qu’est-ce que le projet SIMFEN ?

Le projet SIMFEN, porté par l’Institut Agro Rennes Angers et financé par le Conseil Régional de Bretagne et l’Agence de l’Eau Loire Bretagne dans le cadre de l’Appel à Manifestation d’Intérêt de 2016, vise à permettre la simulation d’un débit d’eau naturel en tout point du réseau hydrographique breton à partir d’une application web. Ces simulations de débits d’eau peuvent être au pas journalier ou horaire et cela, depuis une cinquantaine d’années. Pour cela, le modèle utilise les débits mesurés sur le territoire, sans prise en compte particulière des influences anthropiques (prélèvement, rejets, ouvrages…).

Ce projet a été proposé pour répondre à la demande de techniciens (animateurs de bassin versant et SAGE, gestionnaires, collectivités, instances publiques) de suivre des points d’intérêt où aucune mesure de débit n’est disponible : lieu de prise d’eau, ouvrage hydraulique, plan d’eau, zone vulnérable, site d’observation d’autres variables (flux d’azote, phosphore, etc.), confluence, embouchure. C’est pour cette diversité d’utilisateurs et d’utilisatrices que le résultat est une application web permettant d’exécuter le modèle simplement.

Ainsi, avec cette estimation de débit d’eau, il est possible de simuler des flux hydrochimiques (nutriments, pesticides, etc.), mais aussi assurer des suivis de qualité de l’eau, une gestion quantitative, etc.

Et surtout, au-delà de la cible initiale, étant un service accessible librement sur internet, n’importe qui peut effectuer des simulations par curiosité ou bien pour imaginer de nouvelles réutilisations.

Comment fonctionne le modèle hydrologique ?

Le modèle utilise les débits mesurés par les stations présentes sur le territoire et qui sont disponibles au travers du service Hub’Eau (et lors de la v1 de ce projet, à partir de la banque Hydro). En transposant ces données grâce à une modélisation à base géomorphologique (travaux de recherche développés à l’UMR SAS), le modèle permet d’avoir des chroniques de débit en tout site d’intérêt.

La modélisation à base géomorphologique s’appuie sur la description mathématique du versant et de son réseau hydrographique, et d’une variable intermédiaire, appelée “pluie nette” (Rn, pour “net rainfall”). On en déduit une fonction de transfert (TF) qui décrit les dynamiques de l’eau à travers le réseau hydrographique (la convolution). L’inversion de cette fonction de transfert permet de déconvoluer les flux hydrologiques observés à un exutoire jaugé (Qobs) et permet d’estimer la pluie nette non mesurable dans la nature d’un bassin versant jaugé.

La pluie nette est ensuite transposée d’un ou plusieurs “bassins versants sources” (5 au maximum dans le modèle) vers un “bassin versant cible”, sur la base de la similarité, si possible, de bassins versants dans une configuration d’emboîtement ou de voisinage, afin de simuler la chronique de débit à l’exutoire cible (Qsim) par reconvolution avec la fonction de transfert propre à ce bassin versant cible. Cette approche permet de ne pas avoir à considérer en détail les processus hétérogènes et fortement non linéaires internes aux versants, qui déterminent la genèse des écoulements et donc de la pluie nette à partir de la pluie brute.

Principe de modélisation à base géomorphologique. A. de Lavenne, 2013

Principe de modélisation à base géomorphologique. A. de Lavenne, 2013

Sur quelles solutions techniques repose le projet ?

L’objectif de ce projet est de produire un service web avec interface, qui permet d’utiliser des scripts se trouvant sur un serveur et qui requiert un important volume de données. Ainsi, je suis parti sur un développement à la fois côté client et côté serveur (full stack).

Côté serveur, j’ai repris le modèle, rédigé en R, afin de le formater, identifier les portions pouvant être optimisées et surtout, le rendre utilisable dans la chaîne de traitement que j’ai développé. Celle-ci repose sur du Python, que ce soit pour l’alimentation et l’exécution du modèle, mais aussi pour le dialogue entre l’interface client et le serveur. Ce dialogue s’effectue au travers du logiciel PyWPS qui permet d’exécuter des services web selon le standard OGC Web Processing Service (WPS). Pour stocker les données nécessaires au modèle, j’ai utilisé une base de données PostgreSQL. Également, le service MNTSurf a été utilisé pour calculer les bassins versants.

Côté client, j’ai utilisé l’application MViewer développée en JavaScript et utilisant OpenLayers à laquelle j’ai développé une extension pour répondre aux besoins de notre application (exécution du modèle, visualisation des résultats).

Ainsi, voici une représentation graphique de l’application SIMFEN :

Schéma de la structure technique du projet SIMFEN. Celle-ci distingue le côté client et serveur.

Schéma représentant les éléments techniques de l'application SIMFEN

Application côté serveur

L’application côté serveur se distingue en 3 parties :

Chaque étape va être précisée afin d’en apprendre plus sur la solution technique que j’ai mis en place à l’époque.

Fonctionnement du modèle de simulation de flux d’eau

Le fonctionnement du modèle hydrologique ayant été présenté précédemment, voici les étapes techniques de son fonctionnement :

  1. Déterminer l’endroit où l’on souhaite simuler un débit d’eau
  2. Indiquer la période et le pas de temps que l’on souhaite simuler
  3. Calculer un bassin versant à partir de ce point selon un MNT (MNTSurf)
  4. Localiser les stations de mesures présentes dans un rayon de 50km du point où on souhaite simuler le débit
  5. Calculer le bassin versant de chacune de ces stations
  6. Sélectionner 5 stations qui ont un bassin versant qui ressemble le plus à celui de notre station à simuler (bassins sources précalculés et stockés dans la PostgreSQL)
  7. “Recréer” les nuages de précipitation en faisant “remonter” le débit d’eau mesuré à la station dans le bassin versant et en prenant en compte les facteurs de perte (évaporation, infiltration, etc.) (données précalculées et stockées dans PostgreSQL)
  8. “Faire pleuvoir” ces nuages simulés sur notre bassin versant d’intérêt jusqu´à la station fictive en prenant en compte les caractéristiques géomorphologiques du bassin versant
  9. Récupérer le résultat

Ainsi, l’objectif de ce projet était donc d’automatiser ces étapes, mais aussi d’identifier les parties devant être dissociées du coeur du modèle pour permettre son optimisation, par exemple le précalcul des débits de l’étape 7.

Ensuite, une fois le modèle reformaté, il était nécessaire de le mettre en lien avec l’application PyWPS au travers de scripts Python pour pouvoir le rendre utilisable au travers d’un service web.

Principe de PyWPS

Cet outil repose sur des process qui correspondent à des scripts Python dans lesquels nous détaillons les paramètres en entrées et en sorties, mais aussi les traitements qui sont à effectuer. Reposant sur le standard OGC WPS, il a été nécessaire de suivre ce standard afin de produit une application interopérable. Cela concerne les arguments, la façon de dialoguer avec le service, mais aussi le formatage des résultats dans le fichier XML retourné par le service.

Base de données PostgreSQL

Pour stocker nos données de débit, mais aussi des données spatiales, j’ai choisi d’utiliser PostgreSQL avec l’extension PostGIS. Cette base de données est également connectée à PyWPS, par exemple pour gérer les traitements en cours ou la file d’attente lorsque trop de requêtes sont effectuées en parallèle.

Une fois le back-end mis en place, je me suis attelé au front-end, tout en veillant à revenir au back-end au besoin.

Application côté Client

À l’initial, j’avais développé une interface avec une composante spatiale (OpenLayers) à partir de rien. Ensuite, a été proposé d’utiliser le MViewer afin d’utiliser ce projet comme démonstration pour la création d’une extension faisant appel à un service WPS. L’utilisation de ce logiciel a permis de gagner du temps sur la création de l’interface et m’a permis de me focaliser sur l’application SIMFEN.

Le MViewer

Le MViewer est une application cartographique initiée et développée par la Région Bretagne. Le code source de l’application est librement réutilisable et est disponible sur ce dépôt GitHub. L’application est facilement configurable et repose sur les technologies également libres et largement utilisées, facilitant les développements. De même, l’aspect Open Source a permis à de nombreuses personnes de participer à son évolution, raison pour laquelle la page d’exemples est très complète.

De cette façon, il m’a été aisé de développer une extension pour permettre aux utilisateurs et utilisatrices de renseigner les paramètres nécessaires à l’exécution du modèle. J’ai également pu ajouter des éléments à l’interface nécessaire pour l’utilisation de l’application, tels que la possibilité d’agrandir en plein écran les résultats d’une simulation.

Je recommande vraiment l’utilisation de cette application pour mettre en place un web SIG rapidement et simplement.

Extension SIMFEN pour le MViewer

L’extension permettant d’interagir avec le back-end est disponible en Open Source sur ce dépôt GitHub. Celle-ci a été déclinée en plusieurs scripts correspondants à plusieurs fonctions de l’outil. J’ai rédigé un Wiki pour détailler le fonctionnement de l’extension, n’hésitez pas à le consulter.

J’ai réalisé la première version de cette extension entre 2017 et 2019, une seconde version de cet outil a été effectuée par Tom Loree pour y ajouter entre autres, un tutoriel interactif, poursuivre l’optimisation, mais aussi connecter l’outil à d’autres services web qui n’étaient pas encore disponibles lors de la v1.

Résultat

L’application SIMFEN est disponible à cette adresse : https://geosas.fr/simfen/.

Interface web du projet SIMFEN : résultat d'une simulation

1ère version de l'interface web

Sur cette capture, nous pouvons observer le bassin simulé (un label permet de l’identifier et sur l’interface web, il peut être mis en surbrillance), mais aussi les stations de mesures et leurs bassins versants qui ont été utilisés pour simuler de la station cible.

Le débit simulé est visualisable directement dans l’interface web, mais il est également possible de télécharger ces débits dans un fichier CSV.

Enfin, j’ai rédigé un rapport (disponible ici) décrivant l’ensemble du projet.

Valorisation du projet : publication scientifique

Au cours de ce projet, il m’a été possible de valoriser mes travaux sous la forme d’une publication scientifique disponible en Open Access (pour suivre la logique de l’application) ici.

Apport personnel

Ce projet, qui a été ma seconde expérience professionnelle, m’a permis d’apprendre beaucoup de chose au niveau du back-end, mais aussi sur le JavaScript (langage que je ne connaissais pas à l’époque). Ce projet m’a permis également de travailler sur la thématique de l’eau, que je connaissais peu. En plus du résultat, la valorisation scientifique a été vraiment une bonne reconnaissance du travail accompli.

Références

Footnotes

  1. A. de Lavenne. (2013) Modélisation hydrologique à base géomorphologique de bassins versants non jaugés par régionalisation et transposition d’hydrogramme. Thèse. https://hal.science/tel-02810356