OpenFLUID Logo

Une plateforme logicielle
pour la modélisation spatialisée
dans les paysages


UMR LISAH, Département AgroEcoSystem, INRAE
Licence Creative Commons

Comprendre

Pourquoi une plateforme logicielle
de modélisation dans les paysages?

Modéliser le paysage?


Le paysage est un système complexe spatialisé et multifonctionnel,
où de nombreux objets et processus sont en fortes interactions
(écosystème, agrosystème, agroécosystème, …)

Etude de l'organisation et du fonctionnement du paysage
⇒ modélisation pluridisciplinaire
de la structure et de la dynamique du système

Selon les objectifs:
  • choix des échelles
  • détermination des éléments pertinents dans le paysage,
    et des relations entre ces éléments,
  • identification des processus à prendre en compte,

Initiative pour un outil
de modélisation des paysages


  • ouvert et extensible, pouvant constituer un socle commun
  • architecture logicielle moderne et modulaire
  • fonctionnalités pour le développement, le couplage,
    l'exécution, le partage et la réutilisation de modèles
  • technologies orientées vers la performance et le calcul

Pas d'existant au niveau national et international
⇒ Lancement du projet de plateforme OpenFLUID en 2006
⇒ Release fonctionnelle en juillet 2007 (version 0.7)

Connaître

Les fondements d'OpenFLUID

Principes généraux


Proposer un méta-modèle de représentation de l'espace
aussi générique et ouvert que possible

Favoriser l'indépendances entres codes de calcul ("loose-coupling")

Intégrer un moteur de composition et de couplage des codes de calcul

Faciliter l'extraction et le formatage des résultats de simulations

Libérer autant que possible les développeurs et utilisateurs de modèles
de l'ingénierie logicielle

Représentation de l'espace


L'espace est représenté sous la forme d'un graphe orienté
  • Les noeuds sont les unités spatiales composant l'espace,
    rangés par classes d'unités spatiales
  • Les arcs orientés sont les relations entre les unités spatiales
  • Chaque noeud porte des attributs propres
    qualifiant l'unité spatiale qu'il représente

Représentation de l'espace


Un noeud peut contenir un graphe pour des approches multi-échelles



Nombreux algorithmes disponibles sur les graphes
calculs de connexité, parcours, parallélisation, …

Représentation des dynamiques


La dynamique est représentée par des simulateurs OpenFLUID
= codes de calcul développés à partir de modèles mathématiques
  • simulent un ou plusieurs processus spatiaux ou locaux (transferts, évolutions, …)
  • produisent et consomment des variables attachées aux unités spatiales
  • peuvent utiliser l'ensemble des informations disponibles pour leurs calculs
    (structures et attributs spatiaux, paramètres généraux, …)


Un simulateur est construit sous la forme d'un module indépendant
pour la plateforme OpenFLUID

Chaque simulateur intègre une signature
qui décrit le comportement du simulateur
variables produites et consommées, unités et attributs spatiaux utilisés, paramètres nécessaires, …

Couplage

OpenFLUID intègre un moteur de couplage spatio-temporel

  • Ordonnancement séquentiel non-itératif pour les simulateurs

  • Analyse des signatures pour réalisation automatique du couplage

  • Couplage par échanges spatialisés,
    synchrones ou asynchrones,
    de variables entre simulateurs

Observateurs


Les données produites peuvent être observées en direct
pendant les simulations par des observateurs OpenFLUID

Un ensemble d'observateurs forment le monitoring de simulation
  • Export de données vers différents formats ou flux de données
  • Bilan, contrôle, ...

Explorer

Des exemples de modélisations et d'applications
réalisées avec OpenFLUID

Hydrologie des agroécosystèmes
pluviaux et irrigués


Transfert en réseau hydrographique
sur petit bassin versant méditerranéen
Moussa et al., 2002
Evaluation de l'impact hydrologique de retenues en tenant compte des prélèvements pratiqués
Modèle COGERE, Bureau d'étude CEREG

Devenir des pesticides


Devenir de produits phytosanitaires
avec prise en compte des pratiques agricoles
Voltz et al.
Méthodologie de diagnostic et de gestion des réseaux de fossés agricoles infiltrants pour la limitation de la contamination des masses d’eau par les pesticides
Dagès, C. et al., 2016

Devenir des pesticides

Initiative MIPP (INRAE, AgroEcoSystem)

Construction
d'une modélisation intégrée
des pesticides dans les paysages

~15 simulateurs produits
par plusieurs laboratoires et communautés
Voltz et al., 2017

Decision-Pilotage agronomique


Évaluation numérique des impacts du changement climatique en milieu viticole pour co-construire des stratégies d’adaptation
Naulleau et al., 2022
Diagnostic de l’efficience des tours d’irrigation par simulation débits et pertes dans le réseau, humidité des parcelles, croissance des cultures
Romàn-Villafane, S., 2018

Impact de l'organisation spatiale des aménagements et des pratiques




Optimisation spatiale d'un réseau de fossés en milieu viticole

→ limiter l'érosion, faciliter l'évacuation de l'eau,
réduire les longueurs (coûts d'entretien)

Levavasseur et al., 2012

Exemples "Proof of Concept"


Propagation d'incendie sur maillage grille
Prise en compte de la dynamique des directions et forces du vent
Equipe OpenFLUID
Trafic routier en milieu urbain,
intégrant signalisation et capacité des axes de circulation
Equipe OpenFLUID

Utiliser

Travailler avec OpenFLUID

Installer OpenFLUID

OpenFLUID est un environnement logiciel libre et open-source
disponible pour Linux, MacOS et Windows
Téléchargeable depuis
https://www.openfluid-project.org/

Données:
Projet de simulation OpenFLUID

Un projet OpenFLUID est une structure normalisée
de fichiers en formats ouverts

Un projet OpenFLUID est utilisable indifféremment
dans tous les outils de simulation OpenFLUID
Données standard
  • Définition du modèle (liste de simulateurs)
  • Définition du domaine spatial
  • Paramètres du modèle, Attributs,
    Evènements spatiaux
  • Définition du monitoring (liste d'observateurs)
Données libres
  • Données propres aux simulateurs
  • Données de forçage
  • Autres données ...

Ligne de commande openfluid



    $ openfluid run /path/to/project
    
  • Exécution de simulations
  • Reporting sur les simulateurs et observateurs disponibles
  • Construction de la doc scientifique


Aide complète avec la commande openfluid --help

OpenFLUID-Builder

Environnement graphique
pour la préparation et l'exécution
de simulations

  • Définition et paramétrage du modèle
  • Paramétrage du domaine spatial
  • Définition et paramétrage du monitoring
  • Configuration de la simulation
  • Visualisations
  • Accès aux résultats

Package ROpenFLUID


Pilotage d’OpenFLUID depuis l’environnement R
Paramétrage, Exécution de simulations, Exploitation des résultats

 library('ROpenFLUID')

 ofsim = OpenFLUID.loadDataset('/path/to/dataset')

 OpenFLUID.runSimulation(ofsim)

 data = OpenFLUID.loadResult(ofsim,'SU',15,'water.surf.Q.downstream')
    

→ Profiter des fonctionnalités d’exploration de simulations
disponibles sous R

Codes de calcul


Les codes de calculs sont intégrés sous la forme de simulateurs
basés sur des codes/modèles existants ou développés from scratch
C++, compatibilité C/Fortran (Python/R en expérimental)

OpenFLUID-Devstudio : Environnement graphique
pour le développement de simulateurs et d'observateurs
  • Génération automatique du code source (sans code de calcul)
  • Assistance à la définition de la signature
  • Assistance au développement
  • Automatisation de la construction
  • Génération de la documentation scientifique des simulateurs

Partage de simulateurs

OpenFLUID-WaresHub

Service web et application de capitalisation et partage
de simulateurs et d'observateurs
  • code source (git)
  • tâches (bugs, évolutions, review)
  • documentation scientifique associée
  • méta-information : licence, contributeurs, contacts,…


API REST
FAIRisation des modèles,
  interaction avec Devstudio, …

Service opérable par un groupe de travail, un laboratoire, une entreprise, ...

Workflow

Ressources pour les utilisateurs


https://community.openfluid-project.org

Echanger avec la communauté


Espace de discussion, d'information, d'échange et d'entraide entre utilisateurs via le service Slack

Accessible sur openfluid.slack.com

Stack technique

Partie développement de modèles et simulation
Architecture logicielle en C++
Chaîne de construction CMake/GCC

Framework logiciel indépendant,
fully embedabble, API complète et ouverte

Simulateurs et observateurs sont
des plugins logiciels pour le framework

Process de travail documentés et partagés
pour le développement, les tests, l'intégration continue, …

Une démarche de science ouverte


Code source disponible sur https://github.com/OpenFLUID

Statut juridique


OpenFLUID est disponible sous licence libre GPLv3

OpenFLUID peut être licencié à la demande
avec des conditions différentes
selon contexte
OpenFLUID est la propriété d'INRAE
OpenFLUID est un logiciel déposé sous le numéro IDDN.FR.001.360006.000.R.P.2009.000.30100

OpenFLUID® est une marque déposée propriété d'INRAE

L'équipe



David Crevoisier

Jean-Christophe Fabre

Armel Thoni
Modélisation numérique
Direction de plateforme
Architecture logicielle
Développement logiciel


contact@openfluid-project.org

Aller plus loin...


https://www.openfluid-project.org
https://community.openfluid-project.org

@OpenFLUID

https://www.youtube.com/user/openfluidproject