From 9799e225a4d4652b63efe4520e0be245a7bcddb2 Mon Sep 17 00:00:00 2001 From: Theophile Terraz Date: Fri, 8 Sep 2023 16:25:54 +0200 Subject: [PATCH] relecture --- doc/paper/2023/simhydro/paper.odt | Bin 971796 -> 972241 bytes doc/paper/2023/simhydro/paper.txt | 48 +++++++++++++++--------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/doc/paper/2023/simhydro/paper.odt b/doc/paper/2023/simhydro/paper.odt index 554bffdaf97ea9c9973a0ad643b35806b85619a0..ddef222bf1a384edff859db1001e624e6cc9187a 100644 GIT binary patch delta 44861 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 delta 44439 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 diff --git a/doc/paper/2023/simhydro/paper.txt b/doc/paper/2023/simhydro/paper.txt index 0f685ac7..3de63619 100644 --- a/doc/paper/2023/simhydro/paper.txt +++ b/doc/paper/2023/simhydro/paper.txt @@ -1,5 +1,5 @@ Pamhyr2: a graphical user interface for 1D hydro-sedimentary modelling of rivers -Pierre-Antoine Rouby1, Benoît Camenen, Lionel Penard, Léa Kieffer, Théophile Terraz2 +Pierre-Antoine Rouby1, Benoît Camenen, Lionel Penard, Léa Kieffer, Théophile Terraz1 INRAE, UR RiverLy, centre de Lyon-Grenoble, 5 rue de la Doua, CS20244, 69625, Villeurbanne, France. pierre-antoine.rouby@inrae.fr, benoit.camenen@inrae.fr, lionel.penard@inrae.fr, lea.kieffer@inrae.fr, theophile.terraz@inrae.fr @@ -8,9 +8,9 @@ KEY WORDS Abstract In numerical river simulation, one-dimensional models are commonly used to study water level and discharge for large domains or long time series. These models are less time-consuming than two- and three-dimensional numerical models, and require fewer input parameters and allow ensemble runs. To build a one-dimensional hydraulic model, a pre- and post-processing tool is needed for creating reach geometry, specifying initial and boundary conditions, friction coefficients and other numerical parameters. Such a tool needs to ensure the consistency of the model and provide a user-friendly graphical user interface. In this article, we present Pamhyr2, the fully rebuilt version of the PAMHYR modelling platform. It is developed using Python, PyQt and MatPlotLib. Pamhyr2 is free and open-source, multilingual, cross-platform (Linux, Windows) and is generic enough to accept various one-dimensional solvers. Pamhyr2 includes and enhances all the features from the previous version: multiple-reach modelling, geometry definition from cross-section data, initial and boundary conditions, friction coefficients, hydraulic structures, lateral inflow, punctual intake and the results visualization window. In addition, this version includes new features such as pollutants modelling, bed-load and bed evolution. We describe several windows: the creation of sedimentary layers in the river bed, the sediment characteristics for each layer, the sediment, and pollutant boundary conditions and the lateral inputs. These functionalities are illustrated with simple examples. We finally show the visualization windows for bed evolution. 1. introduction -Numerous tools are available to simulate river flow. Among them, one-dimensional (1D) numerical hydraulic models have the advantage of being accurate while being inexpensive in terms of computation time, making it possible to simulate long rivers over very long timescales. A lot of 1D numerical solvers for river hydraulics are available, including HEC-RAS3, Mike 114 and Mascaret5 for example. However, in order to investigate specific research issues it is essential to have the ability to edit the source code of numeric solvers and to have an ergonomic Graphical User Interace (GUI). Most of the widespread 1D modeling tools are either written with a proprietary source code (such as HEC-RAS and Mike 11) or are research tools with irregularly maintained GUI. On its side, INRAE has been developing two 1D solvers for over 40 years: Mage6 and RubarBE7. In parallel, a GUI named PAMHyR has been developed to enable modelers to build river models, parameterize calculations, launch Mage and RubarBE solvers and post-process the results [1]. +Numerous tools are available to simulate river flow. Among them, one-dimensional (1D) numerical hydraulic models have the advantage of being accurate while being inexpensive in terms of computation time, making it possible to simulate long rivers over very long timescales. A lot of 1D numerical solvers for river hydraulics are available, including HEC-RAS2, Mike 113 and Mascaret4 for example. However, in order to investigate specific research issues it is essential to have the ability to edit the source code of numeric solvers and to have an ergonomic Graphical User Interace (GUI). Most of the widespread 1D modeling tools are either written with a proprietary source code (such as HEC-RAS and Mike 11) or are research tools with irregularly maintained GUI. On its side, INRAE has been developing two 1D solvers for over 40 years: Mage5 and RubarBE6. In parallel, a GUI named PAMHyR has been developed to enable modelers to build river models, parameterize calculations, launch Mage [5] and RubarBE solvers and post-process the results [3]. - PAMHyR, developed in Java since 1998, now suffers from complexity due to highly specific interface, as well as a significant technological debt: old external library no longer maintained, numerous modifications by multiple developers over short periods of time, with no vision of long-term maintainability. What's more, the software is only in French and the code is closed (the sources are not available), which is a hindrance to the notoriety of the software as well as to the vitality of development. No significant changes have been made in the application since 2016, even if PAMHyR is still often used for river modeling [6]. + PAMHyR, developed in Java since 1998, now suffers from complexity due to highly specific interface, as well as a significant technological debt [4]: old external library no longer maintained, numerous modifications by multiple developers over short periods of time, with no vision of long-term maintainability. What's more, the software is only in French and the code is closed (the sources are not available), which is a hindrance to the notoriety of the software as well as to the vitality of development. No significant changes have been made in the application since 2016, even if PAMHyR is still often used for river modeling [4]. INRAE needs a new tool to keep up with today’s technologies and with the development of its numerical solvers. In this paper we introduce the current work on the new graphical user interface Pamhyr2. 2. Objective 2.1 History and need @@ -22,9 +22,9 @@ PAMHyR is available for two solvers, with two different types of studies: Mage a 2.2 Technical choices From a technical point of view, choices were made on the basis of the above-mentioned objectives (modernity, maintainability, multiplatform, multilingual, user-friendliness, flexibility), as well as: the ease of learning the technology to facilitate contribution to the software, the popularity of the technology in the scientific community and the interoperability of this technology. - We chose Python8 as our programming language, it is a popular language in the scientific world, but also in many other fields, with lot of very active software libraries to facilitate development. What's more, it's a simple and interpreted language, often recommended for beginners, and practiced by beginners and experienced developers. In addition, there is the PyQT9 software library that lets you use the Qt10 GUI library, which is ideal for this project. It is very popular and active, and available on many platforms (GNU/Linux, Windows, MacOS, Unix, BSD, Android, iOS). Qt also includes a number of tools for translating interfaces into different languages. For graphics, the choice fell on MatPlotLib11, which is very popular in the scientific community and can be used to draw a wide variety of graphics. For saving studies, the choice was made to use SQLite12, unlike the previous version which used a text file formatted in XML. The advantages of a SQLite database, in addition to being supplied with Python, include ease of use, interoperability, fast, formal structuring by table and consistency checking between tables. We have chosen to version the database to allow it to evolve with the software, now it is possible to add columns to tables or make other minor modifications to the database without breaking the compatibility of studies from previous versions. However, PAMHyR and Pamhyr2 study files are incompatible, and old studies have to be recreated for this version. + We chose Python7 as our programming language. It is a popular language in the scientific world, but also in many other fields, with lot of very active software libraries to facilitate development. What's more, it's a simple and interpreted language, often recommended for beginners, and practiced by beginners and experienced developers. In addition, there is the PyQT8 software library that lets you use the Qt9 GUI library, which is ideal for this project. It is very popular and active, and available on many platforms (GNU/Linux, Windows, MacOS, Unix, BSD, Android, iOS). Qt also includes a number of tools for translating interfaces into different languages. For graphics and visualization, the choice fell on MatPlotLib10, which is very popular in the scientific community and can be used to draw a wide variety of graphics. For saving studies, the choice was made to use SQLite11, unlike the previous version which used a text file formatted in XML. The advantages of a SQLite database, in addition to being supplied with Python, include ease of use, interoperability, fast, formal structuring by table and consistency checking between tables. We have chosen to version the database to allow it to evolve with the software, now it is possible to add columns to tables or make other minor modifications to the database without breaking the compatibility of studies from previous versions. However, PAMHyR and Pamhyr2 study files are incompatible, and old studies have to be recreated for this version. - This new version of PAMHyR remains closely linked to the Mage solver with which it is supplied. But the ambition of flexibility and generalization gives us the opportunity to develop an interface that can be adapted to other solvers. There can be two solutions for using a solver with Pamhyr2: either the solver adapt to Pamhyr2, or Pamhyr2 adapt to the solver. So Pamhyr2 must integrate a generic output containing the study data that can be used by other solvers, which will be launched via an external executable, and then a generic result input that must be supplied by the solver. In addition, Pamhyr2 must be able to handle the execution and reading of results for specific solvers, and the addition of a solver to PAMHYR must be reasonably easy for the solver developer. We have opted for a free (as in freedom/liberty) and open source software (FOSS) [5] license the GPLv313, which guarantees freedom to access, study, modify, redistribute and share. In addition, it guarantees that Pamhyr2's code will remain free and will not be able to add any closed-source modifications. However, it will still be possible to use closed-source solvers, because solver is not a part of Pamhyr2. + This new version of PAMHyR remains closely linked to the Mage solver with which it is supplied. But the ambition of flexibility and generalization gives us the opportunity to develop an interface that can be adapted to other solvers. There can be two solutions for using a solver with Pamhyr2: either the solver adapt to Pamhyr2, or Pamhyr2 adapt to the solver. So Pamhyr2 must integrate a generic output containing the study data that can be used by other solvers, which will be launched via an external executable, and then a generic result input that must be supplied by the solver. In addition, Pamhyr2 must be able to handle the execution and reading of results for specific solvers, and the addition of a solver to PAMHYR must be reasonably easy for the solver developer. We have opted for a free (as in freedom/liberty) and open source software (FOSS) [6] license the GPLv312, which guarantees freedom to access, study, modify, redistribute and share. In addition, it guarantees that Pamhyr2's code will remain free and will not be able to add any closed-source modifications. However, it will still be possible to use closed-source solvers, because solver is not a part of Pamhyr2. 3. DEVELOPMENTS 3.1 New version of PAMHYR Pamhyr2 currently features the following interfaces: Editing of river network, geometry, boundary conditions, lateral contribution, friction, initial conditions, solver numerical parameters, as well as the interface for launching a solver and displaying hydraulic and sediment results. @@ -43,11 +43,11 @@ Geometry editing (Figure 2) is linked to a reach; the reach used will be the las Figure 2: Geometry window for Saar river on the unique reach of the Saar river study. 3.1.3 Boundary conditions -Boundary conditions (BC) are associated with a network node. There are different types: Hydrograph, limnigraph or rating curve, in three different categories: Liquid, solid and suspension. Boundary conditions can be added, deleted and edited. Editing a BC (Figure 3) takes the form of a two-column table (the type of column varies according to the type of BC) and a graph representing the data. Data can be copied and pasted from a spreadsheet, or edited by hand. +Boundary conditions (BC) are associated with a network node. There are three different types: hydrograph, water level chart or rating curve, in three different categories: Liquid, solid and suspension. Boundary conditions can be added, deleted and edited. Editing a BC (Figure 3) takes the form of a two-column table (the type of column varies according to the type of BC) and a graph representing the data. Data can be copied and pasted from a spreadsheet, or edited by hand. -Figure 3: Edition window of the boundary conditions hydrograph for the Saar river upstream node named Amount Upstream. +Figure 3: Edition window of the boundary conditions hydrograph for the Saar river upstream node named Upstream. 3.1.3 Lateral contribution The user interface for lateral contributions is similar to that for boundary conditions, except that it applies to a part of a reach between two KP, and not to a node. 3.1.4 Friction @@ -59,14 +59,14 @@ Friction editing is linked to a reach, a friction coefficient is defined and the Figure 4: The reach portions for friction coefficient edition window for the Saar study. 3.1.5 Initial conditions -The initial conditions (Figure 5) are also linked to the reach, corresponding to the water level and flow rate at the initial time of the simulation. These two values can be defined separately for each reach profile. It is also possible to use predefined functions to generate a water line and flow rate. +The initial conditions (Figure 5) are also linked to the reach, corresponding to the water level and flow rate at the initial time of the simulation. These two values can be defined separately for each reach cross-section. It is also possible to use predefined functions to generate a water line and flow rate. -Figure 5: Initial conditions edition window for the Saar study and the Saar reach. Initial conditions initialized with minimal height of 3 meter and a constant discharge of 100 m3/s. +Figure 5: Initial conditions edition window for the Saar study and the Saar reach. Initial conditions initialized with minimal height of 3 meter and a constant flow rate of 100 m3/s. 3.1.6 Running a solver -Solver numerical parameters are defined using a key/value table specific to each type of solver known to Pamhyr2. You can select and run the desired solver from the list of configured solvers. Then a window appears with a text area where you can follow the progress of file export and solver output in (Figure 6) zone 3. You can also pause, stop or restart the solver using buttons zone 1. Once the simulation has finished, you can open a solver trace file, and if the simulation has finished correctly, you can open the results using the “results” button zone 2. +Solver numerical parameters are defined using a key/value table specific to each type of solver known to Pamhyr2. You can select and run the desired solver from the list of configured solvers. Then a window appears with a text area where you can follow the progress of file export and solver output in (Figure 6 zone 3). You can also pause, stop or restart the solver using buttons (zone 1). Once the simulation has finished, you can open a solver trace file, and if the simulation has finished correctly, you can open the results using the “results” button (zone 2). @@ -84,7 +84,7 @@ Some new features are already implemented in Pamhyr2. First of all, the software Another novelty lies in the initial conditions window. Previously the water line could be generated by constant height or altitude. It is now possible to give a minimum height with an increasing function from downstream to upstream, thus avoiding physically unrealistic water holes and getting a little closer to a real and physically coherent water line (Figure 5). - An important new feature in this version is the presence of sediment layers. They can be defined as show Figure 8. Sediment layers can be applied separately for each cross sections (Figure 9). As with friction, they must first be defined and then applied to a profile. They can also be applied separately to each point of a cross sections. Layers are defined by a height, a median diameter (D50), a sediment diameter range (Sigma) and a critical shear stress as described in Pierre Balayn PhD[4]. The visualization of sedimentary results is currently done using a plot of the river profile, which shows the evolution of the bed bottom and the thickness of layers as a function of time (Figure 10). + An important new feature in this version is the presence of sediment layers. They can be defined as show Figure 8. Sediment layers can be applied separately for each cross sections (Figure 9). As with friction, they must first be defined and then applied to a profile. They can also be applied separately to each point of a cross sections. Layers are defined by a height, a median diameter (D50), a sediment diameter range (Sigma) and a critical shear stress as described in Pierre Balayn PhD thesis [1]. The visualization of sedimentary results is currently done using a plot of the river profile, which shows the evolution of the bed bottom and the thickness of layers as a function of time (Figure 10). @@ -99,29 +99,29 @@ Figure 9: Sediment layers defined in Figure 8 applied to the reach Saar. Figure 10: Sedimentary results window for “Elargissement” tests case at timestamps 2113200,0 sec for reach R1 and cross-section at KP 427,7778. This example have only two sediment layers. 4. Future work -Functionalities that may or may not have been present in the old PAMHYR, enabling the definition of structures, traps, suspended solids or dissolved pollutants in water, have yet to be developed. Additional options for visualizing results also need to be added. One possibility would be a graph generation tool that would allow the user to select absis and ordinate values, as well as the time range, to create a customized graph. We planned also an advanced features with code-editing window to enable the user to define his own Matplotlib drawing function, which would be saved in the study. Presentation work is also planned to harmonize the application's icons and visuals (images, graphics, etc.). The aim is to make the application clearer and more user-friendly. +Functionalities that may or may not have been present in the old PAMHYR, enabling the definition of structures, traps, suspended solids or dissolved pollutants in water, have yet to be developed. Additional options for visualizing results also need to be added. One possibility would be a graph generation tool that would allow the user to select x-axis and y-axis values, as well as the time range, to create a customized graph. We also planned an advanced feature with code-editing window to enable the user to define his own Matplotlib drawing function, which would be saved in the study. Presentation work is also planned to harmonize the application's icons and visuals (images, graphics, etc.). The aim is to make the application clearer and more user-friendly. - Supporting new solvers and generic solvers will also be an important part of the remaining work. To use any solver, we need to define a generic output format for Pamhyr2 that is simple enough to be given as solver input without major code modification, or that can be processed by a simple Python script (for example). The same applies to the results file that Pamhyr2 will have to read. The main avenues for these generic formats are : + Supporting new solvers and generic solvers will also be an important part of the remaining work. To use any solver, we need to define a generic output format for Pamhyr2 that is simple enough to be given as solver input without major code modification, or that can be processed by a simple Python script (for example). The same applies to the results file that Pamhyr2 will have to read. The main candidates for these generic formats are : • SQLite, because it's easy to use and the library is compatible with most programming languages, - • HDF514, a hierarchical file format widely used in scientific circles and compatible with many programming languages. + • HDF513, a hierarchical file format widely used in scientific circles and compatible with many programming languages. - As the project progresses, it becomes more and more complicated to test all the functionalities by hand. A suite of tests and unit tests is needed to prevent regression bugs and ensure that the code remains maintainable. For the moment, no tests have been defined. Unit tests will have to be developed on the model and each sub-module will have to include tests, but higher-level functionalities will also have to be tested, such as the recording and playback of a complete study. As for the graphical part, it will be difficult to test automatically, so tests will continue to be carried out manually. + As the project progresses, it becomes more and more complicated to test all the functionalities by hand. A suite of tests and unit tests is needed to prevent regression bugs and ensure that the code remains maintainable. For the moment, no test have been defined. Unit tests will have to be developed on the model and each sub-module will have to include tests, but higher-level functionalities will also have to be tested, such as the recording and playback of a complete study. It will be difficult to test the graphical par automatically, so tests will continue to be carried out manually. Full documentation must also be provided to give users an overview of the features offered by Pamhyr2. This documentation must include descriptions of the configuration options, as well as explanations and examples of how to use each feature. In addition, this documentation must include a section for contributors and developers, with a technical presentation of the application, as well as a presentation of the translation, development and debugging tools available. - The French translation of Pamhyr2 is still incomplete, and work is needed on translating technical terms. For translations into other languages, we hope that external contributors will take on this work, but no languages other than English and French are currently planned on our part. + The French translation of Pamhyr2 is still incomplete, and work is needed on translating technical terms. For translations into other languages, we hope that external contributors will take on this work, but no languages other than English and French are currently planned from the development team. - The application packages are currently available for GNU/Linux and Windows, under GNU/Linux a “.tar.xz” archive is available for download. It contains a “pamhyr” executable and all the software libraries needed to run it. It also contains a version of Mage compatible with this version of Pamhyr2. For Windows, this is an installer for application and a compatible version of Mage. Once installed, you can launch PAMHYR without any further action on your part. An installer for GNU/Linux systems is a work in progress. There are many choices for creating an installer, but their scope depends on the distribution for which they are intended. “.deb”, for example, is intended for Debian distributions and their derivatives (Ubuntu, Linux Mint, ...). But there are other, more generic options. + The application packages are currently available for GNU/Linux and Windows. Under GNU/Linux, a “.tar.xz” archive is available for download. It contains a “pamhyr” executable and all the software libraries needed to run it. It also contains a version of Mage compatible with this version of Pamhyr2. For Windows, this is an installer for application and a compatible version of Mage. Once installed, you can launch Pamhyr2 without any further action on your part. An installer for GNU/Linux systems is a work in progress. There are many choices for creating an installer, but their scope depends on the distribution for which they are intended. “.deb”, for example, is intended for Debian distributions and their derivatives (Ubuntu, Linux Mint, ...). We do not exclude other, more generic options. 5. Conclusion -After a great deal of preparatory work, experimentations, technical selection, proof-of-concept and several months of development, Currently, Pamhyr2 is in version “v0.0.0”15 and contains almost 20,000 lines of Python code. It allows to create a minimal 1D hydro-sedimentary study, run a Mage simulation and visualize some of the results obtained, all with a more user-friendly interface. But the software is still unstable and under development, and many modifications and improvements are still to be made before it can really be used by everyone. What's more, even though many of the features of the original version of PAMHYR are already available (see 3.1 page 3), there are still many to be added to make Pamhyr2 a complete, useful and fully functional piece of software. +After a great deal of preparatory work, experimentation, technical selection, proof-of-concept and several months of development, Pamhyr2 is currently in version “v0.0.0”14 and contains almost 20,000 lines of Python code. It allows to create a minimal 1D hydro-sedimentary study, run a Mage simulation and visualize some of the results obtained, all with a more user-friendly interface. But the software is still unstable and under development, and many modifications and improvements are still to be made before it can really be used by everyone. What's more, even though many of the features of the original version of PAMHyR are already available (see 3.1 page 3), there are still many to be added to make Pamhyr2 a complete, useful and fully functional piece of software.. ACKNOWLEDGEMENTS TODO citer PITI The authors thank Sylvain Coulibaly for his preparatory work and his technical choices. REFERENCES and Citations -[1] Faure, J. (2013). An Integrated Simulation platform - PAMHyR. In John Wiley & Sons, Inc. eBooks (pp. 245–252). https://doi.org/10.1002/9781118557891.ch21 -[2] Faure, J. (2017). Développement d’Adis-TS. OSR4 | Action V.1. https://hal.science/hal-03749339 -[4] Balayn, P. (2001). Contribution à la modélisation numérique de l'évolution morphologique des cours d'eau aménagés lors de crues. Université Claude Bernard - Lyon 1 -[5] Walt, S. 2007. Free/open source software development. In Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering (ESEC-FSE '07). Association for Computing Machinery, New York, NY, USA, 459–468. https://doi.org/10.1145/1287624.1287689 -[6] Camenen, B., Faure, J. Décanis, S. Diéval, L. (2021) A 1D numerical tool for real time modelling of a complex river network, SimHydro 2021 -[7] Faure, J-B., (2019). Mage, Résolution des équations de Barré de St Venant 1D en réseaux complexes, Documentation théorique et mode d’emploi. Techreport (in French) +[1] Balayn, P. (2001). Contribution à la modélisation numérique de l'évolution morphologique des cours d'eau aménagés lors de crues. Université Claude Bernard - Lyon 1 +[2] Camenen, B., Faure, J. Décanis, S. Diéval, L. (2021) A 1D numerical tool for real time modelling of a complex river network, SimHydro 2021 +[3] Faure, J. (2013). An Integrated Simulation platform - PAMHyR. In John Wiley & Sons, Inc. eBooks (pp. 245–252). https://doi.org/10.1002/9781118557891.ch21 +[4] Faure, J. (2017). Développement d’Adis-TS. OSR4 | Action V.1. https://hal.science/hal-03749339 +[5] Faure, J-B., (2019). Mage, Résolution des équations de Barré de St Venant 1D en réseaux complexes, Documentation théorique et mode d’emploi. Techreport (in French) +[6] Walt, S. 2007. Free/open source software development. In Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering (ESEC-FSE '07). Association for Computing Machinery, New York, NY, USA, 459–468. https://doi.org/10.1145/1287624.1287689