Connexion d'une interface pour la modélisation en
hydraulique
Java , IHM, connexion Java/C++, XML, Eclipse, modélisation numérique en hydraulique
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 :
- é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.)
- 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).
- é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.
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)
Projet ORION INRIA Sophia-Antipolis.
Sabine MOISAN
Projet ORION, INRIA-Sophia Antipolis
2004 route des Lucioles BP 93
06902 Sophia Antipolis Cedex
Email : Sabine.Moisan@sophia.inria.fr
Tel: 04 92 38 78 47