Proposition de stage

Connexion d'une interface pour la modélisation en hydraulique

 

Mots clefs

Java , IHM, connexion Java/C++, XML, Eclipse, modélisation numérique en hydraulique

Contexte et Objectifs

L'hydraulique utilise des modèles numériques pour, par exemple, faire des prédictions de crues.
L'objectif global de notre étude est l'automatisation une tâche nommée "calage du modèle" qui consiste à ajuster au mieux les paramètres d'un modèle numérique en fonction des caractéristiques d'une rivière et des données disponibles (par exemples des courbes relevées lors de précédentes crues). Pour cela nous avons développé un système (à base de connaissances) en C++ qui automatise en quasi totalité le calage. L'inconvénient de ce système est qu'il faut entrer à la main les données disponibles pour une rivière, ce qui est fastidieux. Il existe d'autre part une interface graphique  (en fait un Environnement de Modélisation Hydraulique (Emhy)) écrite en Java qui permet une saisie conviviale de la majorité des informations nécessaires


Sujet du stage et travail à réaliser

L'objectif du stage est de connecter le système de calage et l'interface, afin qu'un modeleur puisse plus facilement décrire une rivière, son découpage en biefs, diverses courbes et mesures relevés au cours d'événements passés,  etc. puis lancer le processus de calage de manière transparente, à partir de la même interface.

L'interface actuelle, nommée PAMHYR, permet de gérer l'ensemble des données nécessaires à la construction d'un modèle numérique d'un réseau hydraulique, y compris sa description topologique.  On peut saisir et afficher (sous forme graphique ou pas) l'ensemble des données d'un modèle numérique et l'ensemble des résultats produits par ce modèle.  Une part importante des données est constituée de courbes y(x) (profils en travers et profils en long pour la géométrie, conditions aux limites variables en temps, etc.) qui sont bien entendu représentées graphiquement. De la même façon PAMHYR permet de visualiser les résultats du modèle numérique : lignes d'eau, hydrogrammes, limnigrammes,  champs d'inondation, etc.
PAMHYR est constitué de plusieurs modules utilisés depuis une interface commune, tels que le module "Géométrie" qui permet la saisie et la visualisation des données géométriques mais permet aussi de piloter le mailleur, le module "Hydraulique" qui gère l'ensemble des données hydrauliques (paramètres de résistance à l'écoulement, CL, apports, débordements, etc.). Le module "Exécuteur" permet de réaliser les simulations  numériques en pilotant le code de calcul (par exemple le code MAGE dévelppé au Cemagref). Enfin les modules "Graphiques" et "Cartographie" permettent de visualiser les résultats de simulation sous différentes formes.
Pour que PAMHYR permette effectivement de réaliser complètement une modélisation hydraulique il manque donc un module "Calage" qui permettrait d'une part de définir les données propres au calage (événements observés, intervalles de définition des paramètres à ajuster) et d'autre part de récupérer les données du modèle (dont les tronçons de rugosité homogène) et de réaliser le calage.

Travail à réaliser:  Le stagiaire devra :
  1. étudier l'interface actuelle afin d'identifier et de récupérer uniquement les informations nécessaires au système de calage (par exemple pour une ligne d'eau les information intéressantes sont : le bief, des dates et une liste de niveaux associés). Toutes ces données sont sérialisées en XML par PAMHYR. Cette ptremière étape devra aussi récupérer tout ce qui concerne l'exécution du code de calcul (chemin, répertoire de travail, fichier de données produits, etc.)
  2. mettre en place un protocole d'échange d'objets entre Java et C++, Cette étape peut se faire en rendrant compatibles les formats XML actuels de PAMYHYR et du  système de  de calage. On pourra utiliser un fichier texte dans un premier temps, mais un mécanisme de sockets est à envisager (une communication par sockets et un protocole d'échange C++/Java existent déjà dans le système, et peuvent être facilement étendus).
  3.  étendre l'interface en ajoutant de nouvelles fonctionalités et fenêtres graphiques pour la saisie de quelques élements non encore pris en compte, et nécessaire pour le calage :  principalement la description d'événements, pour référencer toutes les données disponibles sur un système donné (par exemple une crue, avec ses dates de début et fin et les courbes associées). Ces données devront ensuite être elles aussi exportés - en XML par exemple - vers le système de calage. Dans cette étape, il faudra adapter et réutiliser des éléments qui existent déjà dans PAMHYR.

Prérequis

Connaissance de Java et de la connexion Java/C++. L'utilisation du framework Eclispe est souhaitable.
Aucune connaissance des systèmes à base de connaissances ni de l'hydralique n'est nécessaire (mais un intérêt pour le sujet est un plus)

Lieu du stage

Projet ORION  INRIA Sophia-Antipolis.

Encadrement

Sabine MOISAN
Projet ORION, INRIA-Sophia Antipolis
2004 route des Lucioles BP 93
06902 Sophia Antipolis Cedex
 
Contact


Email : Sabine.Moisan@sophia.inria.fr
Tel: 04 92 38 78 47