Compare commits

...
453 Commits
Author SHA1 Message Date
Theophile Terraz 22771c7f3a debug + pep8 2025-11-06 16:40:12 +01:00
Theophile Terraz 6d60a2017c add sound option in results for Q 2025-11-06 16:28:59 +01:00
Theophile Terraz 02db91f3d7 debug 2025-11-06 15:13:20 +01:00
Theophile Terraz d934b5e381 add waiting dialog while meshing 2025-11-04 09:30:40 +01:00
Theophile Terraz 279fa0bf5e debug get_water_limits 2025-10-31 11:01:43 +01:00
parouby abe24611b3 Merge branch 'scenario-dev-pa' into scenarios 2025-10-31 10:44:04 +01:00
parouby 17a18dde18 Results: Fix compare dialog and remove dead code. 2025-10-31 10:40:46 +01:00
parouby 044818072e Scenario: Fix scenario reload. 2025-10-31 10:27:10 +01:00
Theophile Terraz 8bd791b2c4 Merge branch 'scenarios' of gitlab.com:pamhyr/pamhyr2 into scenarios 2025-10-31 09:38:15 +01:00
Theophile Terraz c8d0d0c212 fix typo 2025-10-31 09:37:56 +01:00
parouby d31be61af8 Merge branch 'scenario-dev-pa' into scenarios 2025-10-31 09:14:50 +01:00
Theophile Terraz a8a408b5d5 fix RubarBE friction export + extrapolation 2025-10-30 16:16:35 +01:00
parouby ff9d25412c Results: Fix results_data delete. 2025-10-30 16:14:41 +01:00
parouby de7f3e63b1 BC: Fix BC undo command. 2025-10-30 09:57:05 +01:00
Theophile Terraz 879c151524 pep8 2025-10-29 17:13:09 +01:00
Theophile Terraz 7990a60d8b take care of frictions in update_rk 2025-10-29 17:09:42 +01:00
Theophile Terraz 8aa0e25da2 pep8 2025-10-28 17:21:10 +01:00
parouby 1e6a578890 Results: Minor fix. 2025-10-28 17:01:37 +01:00
Theophile Terraz 1dca9b98df debug rubarBE 2025-10-28 15:56:53 +01:00
parouby de180b3635 Pamhyr2: Fix pep8. 2025-10-28 11:12:45 +01:00
parouby 5ca763ac8c Results: Disable simple compare between solvers to solvers/scenarios. 2025-10-28 11:09:48 +01:00
parouby 188486f33a Results: Compare scenarios. 2025-10-27 17:14:29 +01:00
parouby bc08d06bb1 Study: Add copy method to prepare scenario comparison. 2025-10-27 14:50:08 +01:00
parouby 05e039011a Scenario: Fix workdir path for last result opening. 2025-10-27 09:29:33 +01:00
Theophile Terraz 7640123299 merge 2025-10-24 16:41:34 +02:00
Theophile Terraz e6dd983f97 more work on compare results 2025-10-24 16:36:06 +02:00
parouby 002ebc5928 Solver: Mage: Fix path name with whitespaces. 2025-10-24 15:18:31 +02:00
Theophile Terraz 84486c03ed more work on import data results 2025-10-24 15:11:11 +02:00
parouby dc7dfb2414 Results: Compare: Minor change. 2025-10-24 15:02:53 +02:00
parouby ee01beb844 Results: Compare: Simplify compare method and add message box on error. 2025-10-24 11:23:43 +02:00
Theophile Terraz 68b62a5630 debug water limits 2025-10-23 15:30:41 +02:00
Theophile Terraz 990d44dd07 again 2025-10-23 14:50:06 +02:00
parouby 819ae41c00 Results: Add posibility to save multiple results for different solver. 2025-10-23 11:23:44 +02:00
Theophile Terraz bf95b7f7e6 work on import data in result window 2025-10-22 16:22:59 +02:00
Theophile Terraz 861b78b928 debug read rubar3 results 2025-10-22 15:01:10 +02:00
parouby 08c414a66e Network: Resize network zone. 2025-10-21 17:01:39 +02:00
Theophile Terraz 57a80d00aa work on import data in results 2025-10-21 15:01:16 +02:00
parouby 70eae5f7d2 Results: Try add explicite import for rasterio. 2025-10-21 14:23:40 +02:00
parouby e2a65e2cdd git: CI: Use HIDDEN_IMPORTS variable and try collect-submodules. 2025-10-21 11:04:22 +02:00
parouby f03b74614e git: CI: Add hiddenimport on windows pyinstaller command. 2025-10-21 10:11:22 +02:00
parouby 532b3fd7fd Results: Fix pep8 comment. 2025-10-21 09:51:47 +02:00
parouby 64df4129d4 Results: Reactivate geotiff if package is imported. 2025-10-21 09:50:40 +02:00
parouby f6e35e2045 git: CI: Try add rasterio.sample into hiddenimport. 2025-10-21 09:23:47 +02:00
parouby a97717a624 Pamhyr: Window: Fix title without study opened. 2025-10-20 18:48:40 +02:00
parouby 3f650de52f git: CI: Add rasterio at hidden import. 2025-10-20 17:51:59 +02:00
parouby 1f4bda7976 Results: Minor change. 2025-10-20 16:48:49 +02:00
parouby a4423e45f8 Git: Update guix manifest. 2025-10-20 15:23:25 +02:00
parouby 1386c592bf Geotiff: Try load geotiff otherelse disable features. 2025-10-20 15:18:20 +02:00
Theophile Terraz 016f3fc73c Merge branch 'master' into scenarios 2025-10-14 11:52:44 +02:00
Theophile Terraz 7ef3184699 debug + disable rasterio 2025-10-14 11:52:28 +02:00
Theophile Terraz 5f6c823301 debug results 2025-10-14 11:45:45 +02:00
Theophile Terraz a42c46f4d2 speed up internal meshing 2025-10-14 09:41:51 +02:00
Theophile Terraz fb09cf254e speed up internal meshing 2025-10-14 09:40:43 +02:00
Theophile Terraz 315b913fd0 Merge branch 'scenarios' of gitlab.com:pamhyr/pamhyr2 into scenarios 2025-10-14 09:01:16 +02:00
Theophile Terraz 0383dc18ae pep8 2025-10-13 17:50:15 +02:00
Theophile Terraz f16856d23b debug mesh + update_rk (verry slow mesh) 2025-10-13 17:48:48 +02:00
parouby e640fa1bc0 Solver: RubarBE: Fix results reading. 2025-10-10 16:44:16 +02:00
parouby df3b3b604d Solver: RubarBE: Factorise some code. 2025-10-10 16:44:16 +02:00
parouby 21e6c410e2 Solver: RubarBE: Add read results method. 2025-10-10 16:44:16 +02:00
Theophile Terraz 19045329dc merge master 2025-10-10 15:09:44 +02:00
parouby 4586ef79f7 Solver: RubarBE: Fix study export and minor change. 2025-10-09 10:54:42 +02:00
Theophile Terraz bc4557e21f keep selection after meshing 2025-10-08 09:45:35 +02:00
parouby f97d4ce3c5 Solver: RubarBE: Add devers file. 2025-10-07 16:26:06 +02:00
Theophile Terraz f6e08f203c purge + pep8 2025-10-07 15:28:36 +02:00
Theophile Terraz 5dcbc6b4e1 test clean mage rep 2025-10-07 11:56:01 +02:00
Theophile Terraz ebe906fce0 switch from MailleurTT to internal meshing 2025-10-07 11:52:31 +02:00
parouby cd4f626218 Solver: Rubarbe: Add export abshyd. 2025-10-07 11:16:31 +02:00
parouby c1eb2cf447 Solver: Rubar3: Minor change. 2025-10-06 17:20:12 +02:00
parouby 5fec95cc4d Network: Fix missing file and pep8. 2025-10-06 09:26:46 +02:00
parouby 46b943c800 Results: Message box where study version and results version are different. 2025-10-03 11:12:18 +02:00
parouby fa8fe508a7 Scenario: Save dialog at scenarios switch. 2025-10-02 11:14:26 +02:00
Theophile Terraz 911a2bbbff mesh on selection 2025-10-01 10:29:14 +02:00
parouby 2a926a8d73 Frictions: Split frictions list at reach split. 2025-09-30 15:54:00 +02:00
parouby d222842313 Merge branch 'scenarios' of gitlab.com:pamhyr/pamhyr2 into scenarios 2025-09-30 13:57:09 +02:00
parouby 2942b6e442 Network: Add split reach method. 2025-09-30 13:53:37 +02:00
parouby 926cade437 River: Add reach split methods. 2025-09-30 10:25:26 +02:00
Theophile Terraz 13b4413b36 merge master 2025-09-29 16:08:06 +02:00
Theophile Terraz 706a900c8e work on rubar3 2025-09-29 15:25:35 +02:00
Theophile Terraz da03f39425 debug 2025-09-29 11:23:46 +02:00
parouby f516db0e48 Results: Fix db update. 2025-09-26 16:36:14 +02:00
parouby 8744e1d73e Results: Fix tests. 2025-09-26 16:08:19 +02:00
parouby 6113d9f4cd Scenario: Results: Fix scenario load and save results. 2025-09-26 15:58:42 +02:00
parouby 1dd92cb089 Results: Fix db update from 0.2.0. 2025-09-26 15:12:19 +02:00
parouby 8f6255c2cd Results: Update to async db load for results. 2025-09-26 14:27:19 +02:00
parouby 6c4f6e269c Results: Clear db load code. 2025-09-26 10:46:57 +02:00
parouby 82b0837d8c Results: Minor change. 2025-09-26 10:35:24 +02:00
parouby 137489cc1f Results: Fix timestamps order. 2025-09-26 10:23:55 +02:00
parouby 4dc4dfdda0 Results: Minor change. 2025-09-25 17:46:01 +02:00
Theophile Terraz 7d42c164fc debug 2025-09-25 17:01:01 +02:00
parouby ae15311471 Results: Save sediment layers to db save. 2025-09-25 16:58:49 +02:00
parouby dbcdace348 Results: Fix db save results open and display. 2025-09-25 10:58:29 +02:00
parouby 9375827949 Pamhyr2: Fix PEP8. 2025-09-25 09:29:52 +02:00
parouby 739f401fac Model: Study: Fix db save without results. 2025-09-25 09:28:15 +02:00
parouby 5f5a47679d Result: Fix db load profiles list. 2025-09-23 17:09:11 +02:00
parouby 26d1d63edb Result: Fix solver name. 2025-09-23 16:08:38 +02:00
Theophile Terraz 1b2f98494b pep8 2025-09-23 15:53:49 +02:00
parouby 381bc37d13 Results: Fix save method. 2025-09-23 15:47:37 +02:00
Theophile Terraz e7b63fe270 debug 2025-09-23 14:55:31 +02:00
Theophile Terraz 80ae4c36ad import lateral contributions from file 2025-09-23 14:17:59 +02:00
parouby 936bfc753a Results: Simplify db load. 2025-09-23 10:23:36 +02:00
parouby f0ccf1f4f7 Results: Continue db load method. 2025-09-23 10:21:44 +02:00
parouby 3a3c4d9d73 Results: Prepare result save. 2025-09-22 17:20:31 +02:00
Theophile Terraz 41cffd13e0 debug 2025-09-19 16:33:06 +02:00
Theophile Terraz 9270dd0ff1 add HHLab test case 2025-09-19 16:04:10 +02:00
Theophile Terraz ba8a50e0b9 debug frictions 2025-09-19 16:03:23 +02:00
parouby 9c69f2ce6d Merge branch 'scenarios' of gitlab.com:pamhyr/pamhyr2 into scenarios 2025-09-18 17:10:34 +02:00
parouby e7a27c798a LC: Fix undo command. 2025-09-18 17:09:20 +02:00
Theophile Terraz ddc612328e Merge branch 'scenarios' of gitlab.com:pamhyr/pamhyr2 into scenarios 2025-09-18 11:34:52 +02:00
Theophile Terraz d05d1e6914 merge master 2025-09-18 11:34:47 +02:00
parouby 8bcf776813 Pamhyr: Fix PEP8. 2025-09-18 11:26:20 +02:00
parouby 589e591d3b Strickler: Fix undo command. 2025-09-18 11:19:30 +02:00
parouby e2e8c5ec9e AddFile: Fix undo commands. 2025-09-18 10:45:31 +02:00
Theophile Terraz fce034419d cleaning 2025-09-18 10:11:49 +02:00
parouby d9aea9eb3c REPLines: Fix undo commands. 2025-09-18 09:54:35 +02:00
parouby 4cddd43f5a BHS: Fix undo commands. 2025-09-16 15:09:42 +02:00
parouby becc1696cb HS: Fix undo commands. 2025-09-16 14:08:08 +02:00
parouby cf4957551f LC: Fix undo commands. 2025-09-16 11:08:26 +02:00
parouby 794b06d55a BC: Fix command rows. 2025-09-15 17:42:32 +02:00
parouby f51f742e00 Scenario: Fix contextual menu. 2025-09-15 15:43:13 +02:00
Theophile Terraz 31fe765e51 load frictions from file 2025-09-15 15:40:17 +02:00
parouby 40cc188815 SL: Fix save for scenario. 2025-09-15 14:13:24 +02:00
parouby 303f6bb35b Scenario: Duplicate: Fix data traversal and duplicate method. 2025-09-15 10:11:44 +02:00
parouby 9043b6e2a3 Scenario: Add duplicate command. 2025-09-12 17:36:22 +02:00
parouby 0608b9175e Scenario: Fix mistake. 2025-09-12 16:35:26 +02:00
parouby ea7fda6b28 Scenario: Fix scenario duplicattion. 2025-09-12 16:24:59 +02:00
parouby 090326b75c Pamhyr2: Model: Add data traversal method on each pamhyr object. 2025-09-12 15:09:05 +02:00
Theophile Terraz b582e133a1 load boundary conditions from file 2025-09-12 14:22:46 +02:00
parouby 78e6f7e5a7 River: Data traversal methode. 2025-09-12 11:13:57 +02:00
parouby 8173eb8de9 Pamhyr2: Create new generic methode '_data_traversal' for scenario duplicattion. 2025-09-12 10:52:41 +02:00
parouby 591cd8950c Rubar3: Minor change. 2025-09-12 09:33:58 +02:00
Theophile Terraz 7c4c772f43 load initial state from .INI 2025-09-11 17:15:48 +02:00
parouby 3a78d6d6f7 MainWindow: Create a study file copy in current dire before update. 2025-09-11 14:39:28 +02:00
parouby bbf85a6048 BC: Edit: Minor change. 2025-09-11 14:38:58 +02:00
parouby 6dfa876809 Pamhyr2: Fix pep8. 2025-09-11 11:35:08 +02:00
parouby aff86a2ffa CI: Add release job without create gitlab release. 2025-09-11 11:08:11 +02:00
parouby 1eb925f3dd Merge branch 'scenarios' of gitlab.com:pamhyr/pamhyr2 into scenarios. 2025-09-11 10:09:44 +02:00
parouby 701d76240e Results: Fix hs display. 2025-09-11 10:06:15 +02:00
parouby 37ea9e9083 Geometry: Reverte purge algorithme to previous version (modified). 2025-09-11 10:01:18 +02:00
Theophile Terraz 6457b3ad25 fix Hogneau step3 + bug fixes 2025-09-11 09:53:47 +02:00
Theophile Terraz cba5b948de fix Hogneau step2 2025-09-09 16:14:08 +02:00
parouby 4ba232a7e4 Doc: Minor change. 2025-09-09 11:16:00 +02:00
parouby 05f3f0fc7e Reservoir: Fix index for add and delete undo command. 2025-09-09 10:44:40 +02:00
parouby 89a5d78ced Reservoir: Fix delete reservoir (load and display). 2025-09-09 09:39:44 +02:00
Theophile Terraz 5fc4e3903a debug Hogneau case2 2025-09-09 09:22:43 +02:00
parouby 1b70e22a58 IC: Fix modification method and display. 2025-09-08 16:02:19 +02:00
parouby 22aeda105e Geometry: Minor change. 2025-09-08 14:19:49 +02:00
parouby 7181122a3a Geometry: Refacto and fix purge method. 2025-09-08 11:26:42 +02:00
parouby 76ce34c4ea Geometry: Continue to fix ponts operation. 2025-09-08 10:34:46 +02:00
parouby c58620fdc2 Geometry: Fix section modification command. 2025-09-05 16:57:12 +02:00
parouby a6341dedd2 Geometry: Fix move up method. 2025-09-05 15:13:49 +02:00
parouby ba7171326c Geometry: Section: Fix move up and down. 2025-09-05 11:07:10 +02:00
parouby 78b4269a69 Geometry: Section: Fix paste row position. 2025-09-05 10:46:25 +02:00
parouby a30bf8e364 Geometry: Section: Fix sort undo. 2025-09-05 10:28:09 +02:00
parouby bd1edbaf30 Pollutant: Fix db create. 2025-09-05 10:07:13 +02:00
parouby bdf9264963 MainWindow: Minor change. 2025-09-05 09:38:48 +02:00
parouby befe1a550d Geometry: Profile: Fix undo insert point. 2025-09-04 17:06:18 +02:00
parouby f4d3f2b28f Geometry: Fix profile copy/paste. 2025-09-04 16:41:07 +02:00
parouby 2a1c8c1e57 MainWindow: Try fix backup saved for multi scenario. 2025-09-04 14:53:20 +02:00
parouby a3da09cf5b Mainwindow: Add backup file dialog. 2025-09-04 09:59:24 +02:00
parouby 017f26c03d Geometry: Point: Fix modified status for SL setter and name setter. 2025-09-04 09:26:50 +02:00
parouby 1e2a123693 Model: Tools: Prepare scenario duplication. 2025-09-02 17:20:09 +02:00
parouby 2916afb974 Model: Tools: Minor change. 2025-09-02 16:57:08 +02:00
parouby 37963b7b21 Mainwindow: Fix save as for multiple scenarios. 2025-09-02 14:25:08 +02:00
parouby e5b4c998cb Scenario: Graph: Fix mouse button event. 2025-09-02 10:53:50 +02:00
parouby 4bf0ad40b1 IC, BC: Some fixes. 2025-09-02 10:47:50 +02:00
parouby 420d766ae5 Solver: Mage: Fix mage export. 2025-09-01 16:57:41 +02:00
parouby 645a76b0e8 Solver: Mage: Fix export where data is deleted. 2025-09-01 14:00:01 +02:00
parouby 6288f039d2 Pamhyr: Fix pep8. 2025-09-01 10:37:32 +02:00
parouby 3585b29b03 Solver: Mage: Minor change. 2025-09-01 10:36:13 +02:00
parouby 96bac8ee1f Graph: Minor change. 2025-09-01 10:35:07 +02:00
parouby e7d14e7aa3 BC: Fix status propagation to Data object. 2025-09-01 09:53:55 +02:00
parouby 6b14ed7efe tests_cases: Hogneau: Minor change. 2025-08-29 17:16:07 +02:00
parouby 3d40f599d6 tests_cases: Add Hogneau study with multiple scenario. 2025-08-29 16:28:17 +02:00
parouby 6ec677a047 Friction, Reservoir, Geometry: Some fixes and minor change. 2025-08-29 14:44:51 +02:00
parouby 7bb0c9d57e HS: Fix loading deleted HS. 2025-08-29 10:15:03 +02:00
parouby ec2a1da6b6 HS: Basic: Fix display. 2025-08-28 16:58:54 +02:00
parouby a072a28929 HS: Fix hs section set and display. 2025-08-28 15:23:33 +02:00
parouby fc7d732e0a Geometry: Profile: Optimize loading with reduce size of loaded pid set. 2025-08-28 11:09:12 +02:00
parouby cc5d86328b Reach: Fix deleted profile loading and manipulation. 2025-08-28 10:43:20 +02:00
parouby e3cbe3cf1f IC: Fix initial conditions generation. 2025-08-26 15:00:45 +02:00
parouby 9482aaf523 Geometry: Point: Fix points order at DB loading. 2025-08-26 14:23:31 +02:00
parouby e0cee0fbef Meshing: Fix meshing M file import. 2025-08-26 11:50:01 +02:00
parouby f9a8512477 Geometry: Points: Fix point insertions pamhyr_id creation and default value. 2025-08-26 10:03:54 +02:00
parouby 1457db721b Geometry: Fix profile modifications. 2025-08-26 09:31:23 +02:00
parouby 7774d2d7af Scenario: Minor fix at scenario creation and deletion. 2025-08-25 13:27:37 +02:00
parouby e6d3564d9b Scenarios: Fix scenarios table list after delete action. 2025-08-25 11:32:22 +02:00
parouby d62e703439 tests: Minor change. 2025-08-22 15:07:08 +02:00
parouby 0346080e16 Scenario: Simplify scenario update and minor change. 2025-08-22 14:14:22 +02:00
parouby 76559f6af8 tests: Add nodes scenario tests. 2025-08-22 11:07:50 +02:00
parouby 04ce79462c Adists: OutputRK: Fix mistake in save method. 2025-08-22 09:44:15 +02:00
parouby ffa065a3e6 Adists: OutputRK: Fix save and table display. 2025-08-22 09:36:54 +02:00
parouby 0e1e3665a6 Adists: Pollutants, BC: Fix update and save. 2025-08-21 15:30:33 +02:00
parouby c64bcd1ff7 Adists: BC: Put data into separate class. 2025-08-21 14:45:24 +02:00
parouby dd84b83302 Adists: Dif, LC: Minor fix. 2025-08-21 14:45:15 +02:00
parouby 084223037c tests: AdisTS: Add open MassZero study test. 2025-08-21 13:47:41 +02:00
parouby 072840a18c Adists: Fix update. 2025-08-21 13:47:14 +02:00
parouby 3ef13666dc Adists: dif: Fix update. 2025-08-21 11:35:39 +02:00
parouby e344678ac5 Adists: d90: Fix update pipeline. 2025-08-21 11:14:05 +02:00
parouby 1f79e6510d Adists: LC: Put lca data into separate class (to setup correct pamhyr_id). 2025-08-21 10:29:34 +02:00
parouby b94c37dd3b Adists: BC, IC: Some fixes. 2025-08-21 10:28:21 +02:00
parouby b61c4da8f1 AdisTS: Pollutant: Define 'characteristics' into a separate class. 2025-08-19 16:53:00 +02:00
parouby ba60585550 AdisTS: OutputRK, IC, LC: Add deleted tag in DB. 2025-08-19 14:27:46 +02:00
parouby 0ed7660e72 Adists: d90, dif, BC: Add deleted tag in DB. 2025-08-19 11:34:51 +02:00
parouby 8b4ff41b96 Adists: LC: View: Minor change. 2025-08-18 17:07:23 +02:00
parouby 8769fa260d View: IC: Fix RK table display. 2025-08-18 16:29:04 +02:00
parouby 2667737490 Adists: LC: Rename some 'edge' to 'reach' and fix plotXY error. 2025-08-18 15:56:15 +02:00
parouby 7cb3982a1f Pamhyr2: Update licence date. 2025-08-18 15:34:58 +02:00
parouby 2336dd22f3 tools: Update licence emacs script. 2025-08-18 15:32:16 +02:00
parouby f13ab03192 Adists: BC, IC, LC: Fix pollutant pamhyr_id update. 2025-08-18 14:47:31 +02:00
parouby 0df813b0d2 Adists: Fix update from id to pamhyr_id. 2025-08-18 13:59:12 +02:00
parouby 2faebfd402 Adists: d90, dif: Fix update for scenario. 2025-08-18 11:32:24 +02:00
parouby 7094ff3e62 Pollutants: Fix scenario update and minor fix. 2025-08-18 10:26:09 +02:00
parouby c6ab2647c1 Adists: Minor pep8 fix. 2025-08-18 09:56:24 +02:00
parouby b62d1429c0 Friction: Fix friction loading. 2025-08-18 09:39:52 +02:00
parouby 23a0bc33fa Adists: D90, DIF: Fix update for scenario. 2025-08-15 14:41:58 +02:00
parouby 93340a48b1 Adists: LC: Fix update for scenario. 2025-08-15 14:31:28 +02:00
parouby 0379a8ee02 Adists: BC: Fix update for scenario. 2025-08-15 14:31:09 +02:00
parouby 6cce02650b Adists: IC: Fix update for scenario. 2025-08-15 14:11:21 +02:00
parouby 6e79fe4cd5 Pollutants: Fix update for sceanrio. 2025-08-15 13:54:34 +02:00
parouby f66d8c7a34 OutputRKAdists: Fix update and DB table name. 2025-08-15 13:39:16 +02:00
parouby 826e532605 Pollutants: Fix delete sql request. 2025-08-15 13:10:25 +02:00
parouby fc35f2fbcc SQL: Minor sql loading request optimization. 2025-08-15 11:01:17 +02:00
parouby 216239bfce Scenario: Fix profile saving and loading for scenario. 2025-08-15 10:08:26 +02:00
parouby 739eb56006 Adists: Pollutants: Update for scenario. 2025-08-14 17:49:21 +02:00
parouby 468405d4ea Adists: Fix missing and update outputrk for scenario. 2025-08-14 16:32:22 +02:00
parouby 31af83ba02 Adists: DIF: Update for scenario. 2025-08-14 16:07:01 +02:00
parouby 45fddb9459 Adists: D90: Update for scenario. 2025-08-14 16:06:21 +02:00
parouby 05dcd3bcca Adists: BC: Update for scenario. 2025-08-14 15:08:32 +02:00
parouby 89a898410f Adists: LC: Update for scenario. 2025-08-14 10:52:47 +02:00
parouby 4a0456cbce Adists: IC: Update load and save for scenario. 2025-08-14 10:31:17 +02:00
parouby a525d8a2b0 Adists: Scenario: Minor fix. 2025-08-13 16:23:46 +02:00
parouby d7fcf62e12 Adists: Scenario: Some minor fix. 2025-08-13 15:03:25 +02:00
parouby 4ac86b9acb Study: Set version to 0.2.0. 2025-08-12 17:00:09 +02:00
parouby 00c9ecde52 Scenarios: Change update version number for scenarios from 0.1.0 to 0.2.0. 2025-08-12 16:23:19 +02:00
parouby ae49908a42 Adists: Continue to prepare scenario. 2025-08-12 16:09:24 +02:00
parouby 37cf42c524 Adists: Prepare for scenarios update (commit code is not working). 2025-08-12 15:36:19 +02:00
parouby c43a26870e Adists: LC: Prepare update for scenarios. 2025-08-12 10:44:58 +02:00
parouby 5a6574921a Adists: OutputRK: Prepare update for scenarios. 2025-08-12 10:44:20 +02:00
parouby 7fa86c29e7 Geometry: Fix profile modifications update status. 2025-08-12 10:43:17 +02:00
parouby a3f20796d7 Modules: Add Scenarios to modelling list. 2025-08-12 09:53:10 +02:00
parouby 835d73789e Scenarios: Update data to delete. 2025-08-12 09:40:44 +02:00
parouby f0ac170d2f Pamhyr: Fix tests and update adists obj id management. 2025-08-11 15:38:31 +02:00
parouby b154e3d03b Pamhyr: Fix pep8. 2025-08-11 14:30:23 +02:00
parouby 633e5a53dc tests: Update tests scripts. 2025-08-11 14:24:40 +02:00
parouby 3f98cf8625 DB: Fix DB update and set DB version to '0.1.7'. 2025-08-11 13:57:08 +02:00
parouby 36fe9a51c4 AdisTS: Update '_db_update' for the new methode prototype. 2025-08-11 11:41:45 +02:00
parouby 74ab3aa522 Merge: branch 'master' into 'scenarios'. 2025-08-11 11:12:59 +02:00
parouby cfdf175f9d git: Add Guix manifest and run script. 2025-08-11 09:38:45 +02:00
Theophile Terraz c07a863018 change Mage repo 2025-07-28 16:46:14 +02:00
Theophile Terraz 243941db51 pep8 2025-06-24 14:19:10 +02:00
Theophile Terraz d6c1316178 undo command for reach selection in geometry 2025-06-24 11:22:00 +02:00
Theophile Terraz f35048b89f add reach selection in geometry 2025-06-23 18:07:46 +02:00
Theophile Terraz 24d92b2ac0 debug 2025-06-16 11:49:54 +02:00
Theophile Terraz c702862bc4 pep8 2025-06-10 09:10:58 +02:00
Theophile Terraz 400f6be9e3 add image icon 2025-06-06 17:53:24 +02:00
Theophile Terraz 5fc6951060 more work on import geo image 2025-06-06 17:32:02 +02:00
Theophile Terraz 5ba38d5cd6 test background img import 2025-06-06 10:16:44 +02:00
Theophile Terraz 3e8132646d debug 2025-06-05 11:01:46 +02:00
Theophile Terraz 5aef0bbf3c work on auto bondary and init cond 2025-05-26 14:53:47 +02:00
Theophile Terraz bb3dadc0c7 debug 2025-05-05 11:50:07 +02:00
Theophile Terraz 7bb176e7c7 debug 2025-05-05 11:32:51 +02:00
Theophile Terraz 8c16e4ed58 add guidelines in res view 2025-04-11 13:58:28 +02:00
Theophile Terraz e9315d9be7 improve previous commit 2025-03-20 11:14:43 +01:00
Theophile Terraz 46738cec6b enable multiple profiles in discharge visualization window 2025-03-19 16:55:09 +01:00
Theophile Terraz e576bb15f1 test gitlab-ci last solver version 2025-03-19 11:21:17 +01:00
Theophile Terraz 26d18d26e9 debug 2025-02-21 14:42:06 +01:00
Theophile Terraz 8bac416ab5 debug AdisTS BCs 2025-02-18 14:54:33 +01:00
Theophile Terraz e6aa840633 debug custom plot (time) 2025-02-17 10:02:44 +01:00
Theophile Terraz 4b976d3b5f add copy/paste in pollutant BC + debug 2025-02-17 09:43:02 +01:00
Theophile Terraz e3315c8f81 add 'cancel' button when closing Pamhyr2 from x button 2025-02-14 14:48:40 +01:00
Theophile Terraz 6bcbd006f1 debug 2025-02-14 14:39:25 +01:00
Theophile Terraz c60a0938eb pep8 2025-02-13 15:10:53 +01:00
Theophile Terraz 4d026afb2c debug CI 2025-02-13 14:49:17 +01:00
Theophile Terraz 4e888d9db0 more debug 2025-02-11 12:16:17 +01:00
Theophile Terraz 440996b636 debug 2025-02-11 11:59:58 +01:00
Theophile Terraz ed1a1a71ac debug 2025-02-11 10:20:12 +01:00
Theophile Terraz cbe3ad0084 debug adists windows 2025-02-06 14:46:34 +01:00
Theophile Terraz 46935fde45 forgotten file 2025-02-04 18:06:11 +01:00
Theophile Terraz ca8dc19c83 work on export CSV compare results 2025-02-04 16:24:42 +01:00
Theophile Terraz e4a31b3497 move custom export to sub folder 2025-02-04 14:31:17 +01:00
Theophile Terraz 406dc2bdd4 update tuto2 2025-02-04 14:07:56 +01:00
Theophile Terraz c325f61fce debug 2025-02-04 13:58:50 +01:00
Theophile Terraz d3729cfe77 cosmetic 2025-02-04 11:50:41 +01:00
Theophile Terraz fa8f07b97e work on multiple results plot 2025-02-04 11:12:56 +01:00
Theophile Terraz 52c153fa84 debug water fill 2025-02-03 11:46:55 +01:00
Theophile Terraz 21bd87f74b debug 2025-02-03 11:17:19 +01:00
Theophile Terraz 4d08f3c271 pep8 2025-02-03 10:09:45 +01:00
Theophile Terraz e44bbd5a3c unit translation 2025-02-03 09:45:19 +01:00
Theophile Terraz f827f6bf13 area unit for reservoirs 2025-02-03 09:34:34 +01:00
Theophile Terraz 4be68ba98d work on custom plots and exports aof compare results 2025-01-31 11:59:08 +01:00
Theophile Terraz e47edea63b debug custom plots (compare resuts) 2025-01-31 10:08:05 +01:00
Theophile Terraz 8daf89d1c4 debug read_bin when .bin does not exist 2025-01-31 10:07:32 +01:00
Theophile Terraz 0fa3ca5fad debug compare results 2025-01-30 12:31:02 +01:00
Theophile Terraz e3229c8183 debug plotH 2025-01-29 15:50:56 +01:00
Theophile Terraz c8606cf445 Merge branch 'master' into compare_results 2025-01-29 14:38:36 +01:00
Theophile Terraz 09029dc993 add copy AdisTS results table 2025-01-29 14:29:28 +01:00
Theophile Terraz 0a97070b90 add copy results table 2025-01-29 14:19:42 +01:00
Theophile Terraz 4f57179a2e add TP in Windows release 2025-01-28 14:01:07 +01:00
Theophile Terraz d0d7d91ab7 update tuto charriage 2025-01-28 11:57:49 +01:00
Theophile Terraz 8497d151ab Merge branch 'master' of gitlab.com:pamhyr/pamhyr2 2025-01-28 11:13:17 +01:00
Theophile Terraz 8a98f2bbca debug CI 2025-01-28 11:12:52 +01:00
Dorian Hernandez 181aea2805 Merge branch 'master' of https://gitlab.com/pamhyr/pamhyr2 2025-01-28 11:04:51 +01:00
Dorian Hernandez 6a762275b6 Mise-a-jour TP_AdisTS 2025-01-28 10:57:26 +01:00
Theophile Terraz a64430691c replace Lea's TP by Jerôme's 2025-01-28 10:54:44 +01:00
Theophile Terraz 3cd6d31731 debug windows paths 2025-01-28 10:04:12 +01:00
Theophile Terraz af30fde81a debug adis path windows 2025-01-27 17:57:44 +01:00
Theophile Terraz 589b8dcd23 compare_results: debug timestamps 2025-01-27 17:34:47 +01:00
Theophile Terraz 4e87135bf4 compare_results: debug timestamps + disable multiple selection for solver table 2025-01-27 11:48:25 +01:00
Theophile Terraz f636236935 debug open results multiple times 2025-01-27 11:04:13 +01:00
Theophile Terraz c3d732b426 merge master 2025-01-27 09:35:08 +01:00
Theophile Terraz 9b6abadb5a debug release 2025-01-23 16:57:03 +01:00
Theophile Terraz 686b01c43a Merge branch 'master' of gitlab.com:pamhyr/pamhyr2 2025-01-23 15:17:52 +01:00
Theophile Terraz 04afbf2f84 debug CI 2025-01-23 15:16:22 +01:00
Dorian Hernandez 75f2796748 Ajout du TP AdisTS dans la release 2025-01-23 14:29:07 +01:00
Dorian Hernandez 45179bc542 Ajout du TP AdisTS 2025-01-23 14:11:11 +01:00
Theophile Terraz 67729e94bf add Tuto 2 (thanks to Celine Berni) 2025-01-23 10:03:00 +01:00
Theophile Terraz c53e82a423 debug remove sediment 2025-01-22 16:01:59 +01:00
Theophile Terraz 02ccfa9ed7 disable custom plot adists 2025-01-22 11:59:39 +01:00
Theophile Terraz fc5de2a097 pep8 2025-01-22 11:46:08 +01:00
Theophile Terraz 0753c4e1b7 debug profile geometry window 2025-01-22 11:15:07 +01:00
Theophile Terraz d8c2634a66 debug 2025-01-22 09:13:13 +01:00
Theophile Terraz 6f7a891a6d optimization + debug 2025-01-20 16:24:17 +01:00
Theophile Terraz e4224e6358 force Mage sulver type in open from file 2025-01-17 13:54:27 +01:00
Theophile Terraz aa8a9dccbf translation 2025-01-17 12:00:42 +01:00
Theophile Terraz 1732e30e58 debug 2025-01-17 09:31:37 +01:00
Theophile Terraz 9eedd1fff9 debug results 2025-01-17 09:20:01 +01:00
Theophile Terraz ac6e8a3704 debug Adis-TS files generation 2025-01-16 15:54:50 +01:00
Theophile Terraz c5f918c885 pep8 2025-01-16 15:08:24 +01:00
Theophile Terraz 230712c3ea debug Adis-TS 2025-01-16 15:03:52 +01:00
Theophile Terraz 2e2f054a4f debug Adis-TS 2025-01-16 14:16:24 +01:00
Theophile Terraz 8913a774ea force Mage sulver type in open from file 2025-01-15 14:50:06 +01:00
Theophile Terraz 36c3785cde Merge branch 'master' into compare_results 2025-01-15 14:27:58 +01:00
Theophile Terraz f75a25d010 debug 2025-01-15 14:26:31 +01:00
Theophile Terraz 5ed905df71 Merge branch 'master' into compare_results 2025-01-15 14:25:12 +01:00
Theophile Terraz ea4fa81cc4 debug 2025-01-15 14:13:46 +01:00
Theophile Terraz 8862be991e Merge branch 'master' into compare_results 2025-01-15 14:08:02 +01:00
Theophile Terraz 8aea55909e debug 2025-01-15 14:07:19 +01:00
Theophile Terraz 1289967abb debug 2025-01-15 14:05:11 +01:00
Theophile Terraz 41d1fb9d59 put compare solvers in results window 2025-01-10 16:54:02 +01:00
Theophile Terraz 8d9a196059 merge 2025-01-09 13:47:26 +01:00
Theophile Terraz 9db90debeb translation 2024-12-20 17:13:44 +01:00
Theophile Terraz 558085705f start to work on compare results 2024-11-28 09:20:20 +01:00
Pierre-Antoine Rouby 1b8f9b2abc .gitignore: Update. 2024-10-15 16:04:00 +02:00
Pierre-Antoine Rouby f3ad4414b6 doc: paper: 2023: simhydro: Add missing image. 2024-10-15 16:04:00 +02:00
Pierre-Antoine Rouby 8930c39fbe doc: dev: scenarios: Add gitkeep for images. 2024-10-15 16:04:00 +02:00
Pierre-Antoine Rouby 7c2908569e doc: paper: 2023: simhydro: Add presentation. 2024-10-15 16:04:00 +02:00
Pierre-Antoine Rouby 5598464081 doc: dev: Add note about scenarios. 2024-10-15 16:04:00 +02:00
Pierre-Antoine Rouby 40d90424a3 Merge branch 'master' into scenarios. 2024-09-24 15:54:10 +02:00
Pierre-Antoine Rouby bb33e8077a Results: Minor change. 2024-09-24 15:41:32 +02:00
Pierre-Antoine Rouby 2859d0f4ff Scenario: Add scenario separated repertory. 2024-09-23 17:33:11 +02:00
Pierre-Antoine Rouby cab1bceae8 Network: Fix tests. 2024-09-20 19:20:00 +02:00
Pierre-Antoine Rouby 48c389a27c Network: Add scenario support. 2024-09-20 18:35:43 +02:00
Pierre-Antoine Rouby 4199eb6ac5 Geometry: Add scenario support. 2024-09-20 16:10:00 +02:00
Pierre-Antoine Rouby 02c6430ed2 Geometry: Point: Add scenario support. 2024-09-20 11:15:00 +02:00
Pierre-Antoine Rouby 05ee0e86b1 SL: Fix modification status. 2024-09-18 13:58:36 +02:00
Pierre-Antoine Rouby 1ed6274f8b SL: Fix DB cleaning. 2024-09-18 11:25:47 +02:00
Pierre-Antoine Rouby 7857a2ea61 SL: Add scenario support. 2024-09-18 11:19:17 +02:00
Pierre-Antoine Rouby c01effbf4c LC: Add scenario support. 2024-09-17 16:14:06 +02:00
Pierre-Antoine Rouby a2ff3ecd9a IC: Add scenario support. 2024-09-17 12:01:02 +02:00
Pierre-Antoine Rouby a5ecc2383c BC: Add scenario support. 2024-09-16 16:25:47 +02:00
Pierre-Antoine Rouby e73f76024e Friction: Fix scenarios support. 2024-09-16 11:40:20 +02:00
Pierre-Antoine Rouby cd7a81d828 Reservoir: Add scenario support. 2024-09-06 15:33:20 +02:00
Pierre-Antoine Rouby 81264fa63e Friction: Add scenario support. 2024-09-06 14:41:25 +02:00
Pierre-Antoine Rouby 5e3dbc18c3 REPLines: Add scenario support. 2024-09-06 14:19:58 +02:00
Pierre-Antoine Rouby e43c20c1e6 Scenarios: Merge remote-tracking branch 'origin/master'. 2024-09-06 10:58:05 +02:00
Pierre-Antoine Rouby f65039d748 Pamhyr2: Fix pep8. 2024-09-06 10:26:19 +02:00
Pierre-Antoine Rouby d0e70ddddc SL: Add read only support. 2024-09-06 10:22:38 +02:00
Pierre-Antoine Rouby 3de96a8d9d BC, LC: Add read only mode support. 2024-09-06 10:04:21 +02:00
Pierre-Antoine Rouby b3fd673f33 Pamhyr2: Fix pep8. 2024-09-04 17:12:56 +02:00
Pierre-Antoine Rouby fb12f498a7 Pamhyr2: Extend RO mode to Friction, Strickler, HS, SP and REPLines. 2024-09-04 17:11:15 +02:00
Pierre-Antoine Rouby fd54116d55 Pamhyr2: Fix pep8. 2024-09-04 16:52:42 +02:00
Pierre-Antoine Rouby 83ecdc9a88 Study: Scenario: Fix stupidity. 2024-09-04 16:46:08 +02:00
Pierre-Antoine Rouby be1e868fc4 AddFiles: Add support to read only mode. 2024-09-04 16:29:27 +02:00
Pierre-Antoine Rouby a1e6e646f9 Scenario: Dont allow delete the default scenario. 2024-09-04 16:13:33 +02:00
Pierre-Antoine Rouby 29df56c8b4 Scenario: Add delete scenario command and use undo command. 2024-09-04 15:00:28 +02:00
Pierre-Antoine Rouby 064b3efa13 Pamhyr2: Fix pep8. 2024-09-03 15:57:08 +02:00
Pierre-Antoine Rouby 5cc5628956 Geometry: Add read only support. 2024-09-03 15:55:06 +02:00
Pierre-Antoine Rouby 8afa3d1e30 Pamhyr2, Scenario: Add Read only mode. 2024-09-03 15:25:29 +02:00
Pierre-Antoine Rouby 8f0535dc5c Scenario: Minor changes. 2024-09-03 11:47:46 +02:00
Pierre-Antoine Rouby a412f2f18f Scenario: Add waiting dialog. 2024-09-03 11:30:44 +02:00
Pierre-Antoine Rouby 8f4d233965 Scenario: Minor change. 2024-09-03 11:17:03 +02:00
Pierre-Antoine Rouby cc84b96024 Scenario: Add context menu with add scenario and select senario action. 2024-09-03 09:52:49 +02:00
Pierre-Antoine Rouby 4ff81a0b63 Scenario: Allow to move on board with mouse left click. 2024-09-03 09:22:55 +02:00
Pierre-Antoine Rouby 9b40b7eb39 Scenario: Add protected tag in front of name and alternative color. 2024-09-02 16:23:37 +02:00
Pierre-Antoine Rouby 5c3464a303 Scenario: Add some colors! 2024-09-02 16:13:43 +02:00
Pierre-Antoine Rouby 71bea2eea4 Scenario: Minor change. 2024-09-02 15:42:56 +02:00
Pierre-Antoine Rouby ed0a549027 Scenario: Some minor fix. 2024-09-02 15:02:02 +02:00
Pierre-Antoine Rouby 267f30849f Scenario: Minor fixes. 2024-09-02 11:49:54 +02:00
Pierre-Antoine Rouby b8ed3d8954 Scenario: Add X, Y position for tree display. 2024-09-02 11:47:37 +02:00
Pierre-Antoine Rouby b634acec67 HS, Stricklers: Minor change. 2024-09-02 11:46:51 +02:00
Pierre-Antoine Rouby 3035ea8d8b Scenario: Fix line display. 2024-09-02 11:11:43 +02:00
Pierre-Antoine Rouby abe7046d4f Scenario: Continue adapt network window to scenario. 2024-08-30 16:18:03 +02:00
Pierre-Antoine Rouby b60b922fef HS: Fixes pep8. 2024-08-30 11:05:08 +02:00
Pierre-Antoine Rouby 85d3345043 Scenarios: Add window scheme (from copy of network window). 2024-08-30 10:09:00 +02:00
Pierre-Antoine Rouby 60ee889794 HS: Add to scenarios. 2024-08-28 16:04:19 +02:00
Pierre-Antoine Rouby 9ec21d815d Stricklers: Add to scenarios. 2024-08-28 10:03:25 +02:00
Pierre-Antoine Rouby ac32995e01 AddFile: Add deleted flags. 2024-08-27 17:08:40 +02:00
Pierre-Antoine Rouby 8c99268bb8 SolverParameters: Switch to PamhyrID and add scenarios management. 2024-08-27 11:56:53 +02:00
Pierre-Antoine Rouby 237b2670f6 Pamhyr: Save: Minor fix. 2024-08-26 17:02:47 +02:00
Pierre-Antoine Rouby d50f617a85 tests: Add AddFiles scenario tests. 2024-08-26 15:10:36 +02:00
Pierre-Antoine Rouby 1cfc7e6638 AddFile: Activate scenarios. 2024-08-26 15:03:05 +02:00
Pierre-Antoine Rouby 8b9bb68ac5 Study: Add current scenario into study info. 2024-08-26 11:20:26 +02:00
Pierre-Antoine Rouby 71b631fbe4 Status: Rename SavedStatus to StudyStatus and add scenario to StudyStatus. 2024-08-23 14:35:04 +02:00
Pierre-Antoine Rouby 7274ff5e2d Pamhyr: Some fixe for db update to 0.1.1. 2024-08-21 15:10:39 +02:00
Pierre-Antoine Rouby 770ecdfa99 Pamhyr2: Pep8. 2024-08-21 14:12:48 +02:00
Pierre-Antoine Rouby 4023ae73ba IC: Use section ID instead of RK. 2024-08-21 12:03:55 +02:00
Pierre-Antoine Rouby 7f87d22249 HS: Use section ID instead of RK. 2024-08-21 11:31:43 +02:00
Pierre-Antoine Rouby 6225f8940e Study: DB: Set version to 0.1.0. 2024-08-20 15:57:45 +02:00
Pierre-Antoine Rouby 6a5183cc0c WaitingDialog: Minor change. 2024-08-20 15:37:40 +02:00
Pierre-Antoine Rouby 037f5ecfa5 WaitingDialog: Minor fixes. 2024-08-20 15:17:30 +02:00
Pierre-Antoine Rouby 63657151ea WaitingDialog: Minor change. 2024-08-20 15:15:18 +02:00
Pierre-Antoine Rouby c4e1a4c485 Results: Delete ReadingResultsDialog (switch to WaitingDialog). 2024-08-20 15:08:49 +02:00
Pierre-Antoine Rouby 4222503961 Pamhyr: Add waiting dialog at file loading. 2024-08-20 15:07:30 +02:00
Pierre-Antoine Rouby af779a1880 BC: Fix save. 2024-08-20 13:51:57 +02:00
Pierre-Antoine Rouby 84a5bed66d Point: Delete missing points at 0.1.0 update. 2024-08-19 15:19:28 +02:00
Pierre-Antoine Rouby fa9ffccb19 Solver: Mage: Fix node name generator. 2024-08-09 17:10:24 +02:00
Pierre-Antoine Rouby 4a333ff988 Pamhyr2: Some minor fixes. 2024-08-09 10:32:15 +02:00
Pierre-Antoine Rouby ce8c4ebd91 DB: Some fixes for db update 0.1.0. 2024-08-09 10:16:19 +02:00
Pierre-Antoine Rouby bc157fcde7 DB: Some fixes for db update 0.1.0. 2024-08-07 17:20:49 +02:00
Pierre-Antoine Rouby 9a0476aa46 DB: Some fixes for db update 0.1.0. 2024-08-07 15:00:03 +02:00
Pierre-Antoine Rouby c7b5b40eda DB: Some fixes for db update 0.1.0. 2024-08-07 11:11:32 +02:00
Pierre-Antoine Rouby 74c61262b7 DB: Some fixes for db update to 0.1.0. 2024-08-07 10:46:44 +02:00
Pierre-Antoine Rouby 2290e2eb6d Pamhyr2: Fix pep8. 2024-08-06 16:06:08 +02:00
Pierre-Antoine Rouby 0d33072a7e Pamhyr2: Some fixes. 2024-08-06 16:05:04 +02:00
Pierre-Antoine Rouby 19d9a29459 LC, BC: Fix save for update db 0.1.0. 2024-08-06 15:04:42 +02:00
Pierre-Antoine Rouby d2e5eecf22 DB: Some fixes for update 0.1.0. 2024-08-05 18:00:32 +02:00
Pierre-Antoine Rouby b9ca6bf4a9 Geometry: Profile: Fix id at save. 2024-08-05 17:35:54 +02:00
Pierre-Antoine Rouby aa68acea3d DB: Minor change to 0.1.0 update. 2024-08-05 17:05:42 +02:00
Pierre-Antoine Rouby bf7b18f158 DB: Prepare update to 0.1.0. 2024-08-05 15:40:06 +02:00
Pierre-Antoine Rouby 3675dc5b9d DB: Prepare to update 0.1.0. 2024-08-05 14:55:26 +02:00
Pierre-Antoine Rouby 1dfdcb0413 DB: Continue to prepare update 0.1.0. 2024-08-05 12:00:10 +02:00
Pierre-Antoine Rouby 32cda58064 DB: Update: Minor fixes. 2024-07-31 15:36:34 +02:00
Pierre-Antoine Rouby 4081f96d68 DB: Fixes some table fk to prepare update to 0.1.0. 2024-07-31 15:13:12 +02:00
Pierre-Antoine Rouby 16350b4dec Pamhyr2: Some fixes to prepare db update to 0.1.0. 2024-07-31 11:23:43 +02:00
Pierre-Antoine Rouby d8fe1d8b81 Pamhyr2: Some fixes for db update to 0.1.0. 2024-07-31 10:29:04 +02:00
Pierre-Antoine Rouby 5525fff1fe pamhyr: Fix pep8. 2024-07-30 09:00:51 +02:00
Pierre-Antoine Rouby 328f5656bf DB: Fixes for db 0.1.0 creation. 2024-07-29 16:28:46 +02:00
Pierre-Antoine Rouby 9ec080a107 HS: Prepare update db 0.1.0. 2024-07-29 15:47:17 +02:00
Pierre-Antoine Rouby 1bae755f1c Geometry: Prepare update db 0.1.0. 2024-07-29 14:00:14 +02:00
Pierre-Antoine Rouby 9deccb465e SL: Prepare update db 0.1.0. 2024-07-29 11:27:24 +02:00
Pierre-Antoine Rouby 2ff635d0cd Friction, Strickers: Prepare db 0.1.0. 2024-07-26 11:47:40 +02:00
Pierre-Antoine Rouby 9f4b297d23 IC: Add prepare db 0.1.0. 2024-07-24 11:15:29 +02:00
Pierre-Antoine Rouby aea308a5a2 Reservoir: Prepare db update 0.1.0. 2024-07-23 15:04:05 +02:00
Pierre-Antoine Rouby 5c4948bd6d Pamhyr: Database: Update data dictionary and some change to prepare db
0.1.0.
2024-07-23 14:15:46 +02:00
Pierre-Antoine Rouby d78d9167a0 BC: Prepare db version 0.1.0, add pamhyr_id and scenario. 2024-07-22 15:31:32 +02:00
Pierre-Antoine Rouby 9c9fcc3dd8 REPFiles: Add Scenarios and 'pamhyr_id' and update DB to 0.0.14. 2024-07-22 14:17:38 +02:00
Pierre-Antoine Rouby 4271fbb85f SolverParameters: Add Scenario reference. 2024-07-22 11:49:33 +02:00
Pierre-Antoine Rouby ba4603e850 pamhyr: Fix Pep8. 2024-07-22 10:53:22 +02:00
Pierre-Antoine Rouby f2bc31c97b AddFile: Fix version update. 2024-07-19 16:46:33 +02:00
Pierre-Antoine Rouby 62a1726ef1 PamhyrDB, PamhyrID, AddFile: Fix some bugs. 2024-07-19 16:29:47 +02:00
Pierre-Antoine Rouby f19941f6da PamhyrDB: Add PamhyrID at parent class and add PamhyrID and
Scenario to AdditionalFiles.
2024-07-19 15:27:10 +02:00
Pierre-Antoine Rouby 3917b84b56 Status: Minor change. 2024-07-17 17:01:46 +02:00
Pierre-Antoine Rouby 3ecf97ac82 Scenarios: Add scenarios table in db and default scenario in study. 2024-07-17 16:04:49 +02:00
455 changed files with 80582 additions and 8057 deletions

No files matched your search

+9 -3
View File
@@ -41,8 +41,14 @@ __old__
*-venv
mage8
adists
mage8/
adists/
rubarbe/
linux/
windows/
install/
### END CUSTOM ###
@@ -624,7 +630,7 @@ TSWLatexianTemp*
# auto folder when using emacs and auctex
./auto/*
*.el
# *.el
# expex forward references with \gathertags
*-tags.tex
+93 -30
View File
@@ -1,5 +1,5 @@
# .gitlab-ci.yml -- Pamhyr gitlab-ci
# Copyright (C) 2023-2024 INRAE
# Copyright (C) 2023-2025 INRAE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -24,12 +24,20 @@ stages:
- antivirus
- release
#########################
# PYINSTALLER VARIABLES #
#########################
variables:
HIDDEN_IMPORTS: "--hiddenimport rasterio --collect-submodules rasterio"
#############
# DOWNLOADS #
#############
variables:
MAGE_8_VERSION: "v8.3.6"
MAGE_8_VERSION: "permalink/latest"
ADISTS_VERSION: "permalink/latest"
dl-mage8-doc:
stage: downloads
@@ -40,7 +48,7 @@ dl-mage8-doc:
script:
- mkdir -p doc
- cd doc
- curl -L -o mage8.pdf https://gitlab.irstea.fr/jean-baptiste.faure/mage/-/releases/$MAGE_8_VERSION/downloads/documents/Mage-8_Documentation.pdf
- curl -L -o mage8.pdf https://forge.inrae.fr/river-hydraulics/mage/-/releases/$MAGE_8_VERSION/downloads/documents/Mage-8_Documentation.pdf
artifacts:
paths:
- doc/mage8.pdf
@@ -52,17 +60,13 @@ dl-mage8-linux:
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
script:
- curl -L -o mage8.tgz https://gitlab.irstea.fr/jean-baptiste.faure/mage/-/releases/$MAGE_8_VERSION/downloads/packages/mage_linux.tgz
- curl -L -o mage8.tgz https://forge.inrae.fr/river-hydraulics/mage/-/releases/$MAGE_8_VERSION/downloads/packages/mage_linux.tgz
- mkdir -p mage8-linux
- cd mage8-linux
- tar xvf ../mage8.tgz
artifacts:
paths:
- mage8-linux/mage
- mage8-linux/mage_as7
- mage8-linux/mage_extraire
- mage8-linux/mailleurTT
- mage8-linux/libbief.so
dl-mage8-windows:
stage: downloads
@@ -71,17 +75,13 @@ dl-mage8-windows:
rules:
- if: $CI_COMMIT_BRANCH == 'ci-test' || $CI_COMMIT_BRANCH == 'master' || $CI_COMMIT_TAG
script:
- curl -L -o mage8.tgz https://gitlab.irstea.fr/jean-baptiste.faure/mage/-/releases/$MAGE_8_VERSION/downloads/packages/mage_windows.tgz
- curl -L -o mage8.tgz https://forge.inrae.fr/river-hydraulics/mage/-/releases/$MAGE_8_VERSION/downloads/packages/mage_windows.tgz
- mkdir -p mage8-windows
- cd mage8-windows
- tar xvf ../mage8.tgz
artifacts:
paths:
- mage8-windows/mage.exe
- mage8-windows/mage_as7.exe
- mage8-windows/mage_extraire.exe
- mage8-windows/mailleurTT.exe
- mage8-windows/libbief.dll
dl-adists-linux:
stage: downloads
@@ -92,7 +92,7 @@ dl-adists-linux:
script:
- mkdir -p adists-linux
- cd adists-linux
- curl -L -o adists https://gitlab.irstea.fr/jean-baptiste.faure/adists/-/releases/v1.0.1/downloads/executables/adists
- curl -L -o adists https://forge.inrae.fr/river-hydraulics/adists/-/releases/$ADISTS_VERSION/downloads/executables/adists
artifacts:
paths:
- adists-linux/adists
@@ -106,7 +106,7 @@ dl-adists-windows:
script:
- mkdir -p adists-windows
- cd adists-windows
- curl -L -o adists.exe https://gitlab.irstea.fr/jean-baptiste.faure/adists/-/releases/v1.0.1/downloads/executables/adists_win64.exe.exe
- curl -L -o adists.exe https://forge.inrae.fr/river-hydraulics/adists/-/releases/$ADISTS_VERSION/downloads/executables/adists_win64.exe
artifacts:
paths:
- adists-windows/adists.exe
@@ -205,13 +205,32 @@ build-td:
- job: set-version
artifacts: true
script:
- cd ./doc/users/Tuto1/
- cd ./doc/users/TP_Hydraulique_Hogneau/
- ./build.sh
artifacts:
paths:
- doc/users/Tuto1/step-by-step.pdf
- doc/users/Tuto1/pas-a-pas.pdf
- doc/users/Tuto1/data/
- doc/users/TP_Hydraulique_Hogneau/step-by-step.pdf
- doc/users/TP_Hydraulique_Hogneau/pas-a-pas.pdf
- doc/users/TP_Hydraulique_Hogneau/Tuto-2-fr.pdf
- doc/users/TP_Hydraulique_Hogneau/data/
allow_failure: true
build-td-2:
stage: build
tags:
- linux
needs:
- job: set-version
artifacts: true
script:
- cd ./doc/users/TP_AdisTS_Vieux_Rhone/
- ./build.sh
artifacts:
paths:
- doc/users/TP_AdisTS_Vieux_Rhone/pas-a-pas.pdf
- doc/users/TP_AdisTS_Vieux_Rhone/data/
- doc/users/TP_AdisTS_Vieux_Rhone/Sujet.pdf
- doc/users/TP_AdisTS_Vieux_Rhone/Vieux_Rhone_TP_AdisTS.pamhyr
allow_failure: true
build-developers-doc:
@@ -268,6 +287,8 @@ build-linux:
# artifacts: true
- job: build-td
artifacts: true
- job: build-td-2
artifacts: true
script:
- mkdir -p linux
- cd linux
@@ -278,7 +299,7 @@ build-linux:
- pip3 install -r ../requirements.txt
- pip3 install -U -r ../requirements.txt
# Run Pyinstaller
- pyinstaller -y --paths linux-venv/lib/python3.8/site-packages ../src/pamhyr.py
- pyinstaller -y $HIDDEN_IMPORTS --paths linux-venv/lib/python3.8/site-packages ../src/pamhyr.py
# Create directory
- mkdir -p pamhyr
- mkdir -p pamhyr/_internal
@@ -327,16 +348,22 @@ build-linux:
- cp -r ../doc/dev/images/* pamhyr/doc/images
- cp -r ../doc/images/* pamhyr/doc/images
# Copy Tuto
- mkdir -p pamhyr/doc/Tuto1/
- mkdir -p pamhyr/doc/Tuto1/data
- cp ../doc/users/Tuto1/Hogneau_Engees2022.pdf pamhyr/doc/Tuto1/Hogneau_Engees2022.pdf
- cp ../doc/users/Tuto1/step-by-step.pdf pamhyr/doc/Tuto1/Tuto1-en.pdf
- cp ../doc/users/Tuto1/pas-a-pas.pdf pamhyr/doc/Tuto1/Tuto1-fr.pdf
- cp ../doc/users/Tuto1/*.pamhyr pamhyr/doc/Tuto1/
- cp ../doc/users/Tuto1/data/* pamhyr/doc/Tuto1/data/
- mkdir -p pamhyr/doc/TP_Hydraulique_Hogneau/
- mkdir -p pamhyr/doc/TP_Hydraulique_Hogneau/data
- cp ../doc/users/TP_Hydraulique_Hogneau/Hogneau_Engees2022.pdf pamhyr/doc/TP_Hydraulique_Hogneau/Hogneau_Engees2022.pdf
- cp ../doc/users/TP_Hydraulique_Hogneau/step-by-step.pdf pamhyr/doc/TP_Hydraulique_Hogneau/Tuto1-en.pdf
- cp ../doc/users/TP_Hydraulique_Hogneau/pas-a-pas.pdf pamhyr/doc/TP_Hydraulique_Hogneau/Tuto1-fr.pdf
- cp ../doc/users/TP_Hydraulique_Hogneau/Tuto-2-fr.pdf pamhyr/doc/TP_Hydraulique_Hogneau/Tuto2-fr.pdf
- cp ../doc/users/TP_Hydraulique_Hogneau/*.pamhyr pamhyr/doc/TP_Hydraulique_Hogneau/
- cp ../doc/users/TP_Hydraulique_Hogneau/data/* pamhyr/doc/TP_Hydraulique_Hogneau/data/
- mkdir -p pamhyr/doc/TP_AdisTS_Vieux_Rhone/
- mkdir -p pamhyr/doc/TP_AdisTS_Vieux_Rhone/data
- cp ../doc/users/TP_AdisTS_Vieux_Rhone/*.pdf pamhyr/doc/TP_AdisTS_Vieux_Rhone/
- cp ../doc/users/TP_AdisTS_Vieux_Rhone/data/* pamhyr/doc/TP_AdisTS_Vieux_Rhone/data/
- cp ../doc/users/TP_AdisTS_Vieux_Rhone/Vieux_Rhone_TP_AdisTS.pamhyr pamhyr/doc/TP_AdisTS_Vieux_Rhone/Vieux_Rhone_TP_AdisTS.pamhyr
# Copy TP charriage
- mkdir -p pamhyr/doc/TP_charriage/
- cp ../doc/users/TP_charriage/* pamhyr/doc/TP_charriage
- cp -r ../doc/users/TP_charriage/* pamhyr/doc/TP_charriage
artifacts:
paths:
- linux/pamhyr
@@ -364,6 +391,8 @@ build-windows:
# artifacts: true
- job: build-td
artifacts: true
- job: build-td-2
artifacts: true
script:
- mkdir windows
- cd windows
@@ -373,7 +402,7 @@ build-windows:
- python -m pip install -U -r ..\requirements.txt
# Run Pyinstaller
# - pyinstaller --noconsole -y ..\src\pamhyr.py
- pyinstaller -i ../src/View/ui/ressources/icon.ico --hide-console hide-early -y ..\src\pamhyr.py
- pyinstaller -i ../src/View/ui/ressources/icon.ico $HIDDEN_IMPORTS --hide-console hide-early -y ..\src\pamhyr.py
# Create directory
- mkdir pamhyr
- dir
@@ -552,6 +581,40 @@ pkg-check-clamav:
# RELEASE #
###########
shadow-release:
stage: release
tags:
- release
- linux
needs:
- job: linux-package-tar
artifacts: true
- job: windows-package-zip
artifacts: true
- job: windows-package-exe
artifacts: true
# - job: build-users-doc
# artifacts: true
- job: build-developers-doc
artifacts: true
- job: pkg-hash
artifacts: true
rules:
- if: $CI_COMMIT_BRANCH != 'master' && $CI_COMMIT_TAG
artifacts:
paths:
- linux/pamhyr-gnulinux.tar.xz
- windows/pamhyr-windows.zip
- windows/pamhyr-windows.exe
- linux/pamhyr-gnulinux.tar.xz.sha256
- windows/pamhyr-windows.zip.sha256
- windows/pamhyr-windows.exe.sha256
- doc/dev/documentation.pdf
# - doc/users/documentation.pdf
script:
- cd packages
tag-release:
stage: release
tags:
@@ -571,7 +634,7 @@ tag-release:
- job: pkg-hash
artifacts: true
rules:
- if: $CI_COMMIT_TAG
- if: $CI_COMMIT_BRANCH == 'master' && $CI_COMMIT_TAG
artifacts:
paths:
- linux/pamhyr-gnulinux.tar.xz
+1 -1
View File
@@ -1,3 +1,3 @@
Sylvain COULIBALY, INRAE, 2020 - 2022
Théophile TERRAZ, INRAE, 2022 - 2024
Pierre-Antoine ROUBY, INRAE, 2023 - 2024
Pierre-Antoine ROUBY, INRAE, 2023 - 2025
+1
View File
@@ -18,6 +18,7 @@ modelling of rivers.
+ Define river sedimentary layers
+ Save the study in a unique file
+ Run Mage 8 on a study and visualize results
+ Create and edit study alternative scenario tree
Let see the
[documentation](https://gitlab.irstea.fr/theophile.terraz/pamhyr/-/wikis/home)
+20 -15
View File
@@ -1,18 +1,23 @@
#! /bin/sh
echo " PDF documentation.org"
emacs -nw --batch \
--eval "(require 'org)" \
--eval "(require 'ox-latex)" \
--eval "(load-file \"../tools/setup.el\")" \
--file ./documentation.org \
-f org-latex-export-to-pdf
FILES="documentation.org scenario.org"
echo " HTML documentation.org"
emacs -nw --batch \
--eval "(require 'org)" \
--eval "(require 'ox-latex)" \
--eval "(require 'ox-html)" \
--eval "(load-file \"../tools/setup.el\")" \
--file ./documentation.org \
-f org-html-export-to-html
for file in $FILES
do
echo " PDF $file"
emacs -nw --batch \
--eval "(require 'org)" \
--eval "(require 'ox-latex)" \
--eval "(load-file \"../tools/setup.el\")" \
--file ./$file \
-f org-latex-export-to-pdf \
echo " HTML $file"
emacs -nw --batch \
--eval "(require 'org)" \
--eval "(require 'ox-latex)" \
--eval "(require 'ox-html)" \
--eval "(load-file \"../tools/setup.el\")" \
--file ./$file \
-f org-html-export-to-html
done
+1 -1
View File
@@ -1375,7 +1375,7 @@ contribution.
#+INCLUDE: "../../AUTHORS" src text
[fn:p2-gitlab] The {{{pamhyr2}}} Gitlab project page:
https://gitlab.irstea.fr/theophile.terraz/pamhyr
https://gitlab.com/pamhyr/pamhyr2
[fn:inrae] The INRAE web site: https://www.inrae.fr/
** Translate
+661
View File
@@ -0,0 +1,661 @@
# senario.org -- Pamhyr developers documentation
# Copyright (C) 2023-2024 INRAE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# -*- coding: utf-8 -*-
#+STARTUP: indent show2levels
#+INCLUDE: ../tools/macro.org
#+INCLUDE: ../tools/latex.org
#+TITLE: Scenario implementation in Pamhyr2: \textbf{Preparatory work}
#+SUBTITLE: Version: {{{version}}}
#+AUTHOR: {{{INRAE}}}
#+OPTIONS: toc:t
#+LANGUAGE: UKenglish
#+latex: \newpage
* COMMENT tools
#+begin_src emacs-lisp :export none
(add-to-list 'org-structure-template-alist
'("p" "#+begin_src python :python python3 :results output\n\n#+end_src"))
#+end_src
#+RESULTS:
#+begin_example
((p #+begin_src python :python python3 :results output
,#+end_src) (d . #+name: graph-XXX
,#+header: :results drawer
,#+header: :exports results
,#+header: :post attr_wrap(width="12cm", data=*this*, name="graph-XXX", caption="Graph XXX", float="t")
,#+begin_src dot :file "images/graph-XXX.png" :cache no
digraph {
bgcolor="transparent";
node[colorscheme=set19,shape=box,style="filled",fillcolor=9];
}
,#+end_src) (p . src python :python python3 :results output :noweb yes
src) (t . EXPORT latex
\begin{table}
\centering
\resizebox{0.6\linewidth}{!}{
}
%\vspace{0.5pt}
%\caption{Number of tests by errors types}
\end{table}
,#+E) (B . src shell :session *shell* :results output :exports both) (a . export ascii) (c . center) (C . comment) (e . example) (E . export) (h . export html) (l . export latex) (q . quote) (s . src) (v . verse))
#+end_example
#+name: dbg-execute
#+begin_src python :python python3 :results output :noweb yes
def execute(db, query):
print(query)
return db.execute(query)
#+end_src
#+RESULTS: dbg-execute
#+name: execute
#+begin_src python :python python3 :results output :noweb yes
def execute(db, query):
return db.execute(query)
#+end_src
#+RESULTS: execute
* Principe
** Scenario
A scenario is defined by a name, a description and a parent
scenario. If a scenario as no parent, parent value is =None=. So, in
Pamhyr2 the list of scenario must by a tree with a root defined by a
default scenarios with no parent.
#+begin_src sql
CREATE TABLE scenario(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL, -- Name of the scenario
description TEXT NOT NULL, -- Rich text description
parent_id INTEGER REFERENCES scenario(id) -- Recursive references
-- for parent scenario
)
#+end_src
** Data
Each data is associated with one and only one scenario. This senario
is defined by the =id=. So, each data structure who can saved in DB
must add the following lines in table définition:
#+begin_src sql
scenario_id INTEGER NOT NULL,
FOREIGN KEY(scenario_id) REFERENCES scenario(id)
#+end_src
To avoid, at least, memory usage exploitation, by default, a scenario
must saved only the modified data from its parent. This contrains
require to wrap any data modification to update the data scenario id
to current scenario id in source code. In addition, we need to modify
the data loading méthode to take in considération this recursive
dependencies.
#+CAPTION: Recursive loading method
#+begin_src python :python python3 :results output :noweb yes
def rec_load(cls, db, current_scenario):
# Default case, end of recursion
if current_scenario is None:
return [] # Default value
table = db.execute(f"<MY SELECT> WHERE scenario_id = {current_scenario}")
# If no data for this scenario, recursion
if len(table) == 0:
parent_id = db.get_parent_id(current_scenario)
return cls.rec_load(db, parent_id)
# Otherelse, parse data and return...
#+end_src
With this method, modify a data in parent scenario, modify this data
in child scenario too. Unless is value has been previously modified in
the child scenario. Deny tree node modification, except for leaf.
This method work, but it dont allow to delete data un child scenarios,
because if we dont found data for this scenario we search for parent
scenario. So, we need a condition to stop recursion in case of data
deletion in child scenario. To stop the recurtion, we can use a dummy
data flag. By default, this flags is =false=, but if this flags is
=true= the data is ignored at loading.
So, we can use this flags for each data structure who can saved in DB:
#+begin_src sql
is_dummy BOOLEAN, -- True if this data as been deleted
#+end_src
Modify the loading method:
#+CAPTION: Recursive loading method with possible dummy data
#+begin_src python :python python3 :results output :noweb yes
def rec_load_2(cls, db, current_scenario):
# Default case, end of recursion
if current_scenario is None:
return [] # Default value
table = db.execute(f"<MY SELECT> WHERE scenario_id = {current_scenario}")
# If no data for this scenario, recursion
if len(table) == 0:
parent_id = db.get_parent_id(current_scenario)
return cls.rec_load(db, parent_id)
for data in table:
if is_dummy(data):
continue
# Otherelse, parse data ...
# return ...
#+end_src
#+RESULTS:
And add a data reduction method:
#+caption: Data reduction method for data subtree
#+begin_src python :python python3 :results output :noweb yes
def reduce_change(self):
# Get the greater scenario
scenar = reduce(
lambda acc, x: max(acc, x._scenario),
self._values,
self._scenario
)
# Apply change on this subtree
self._scenario = scenar
if is_dummy(self): # There are no more subtree
self.values = []
else: # Update data subtree scenario id
for value in self._values:
value.set_scenario(self._scenario)
# Dummy data is no more necessary in this subtree
self._values = list(
filter(
lambda v: not is_dummy(v),
self._values
)
)
# Keep data id unique for all subtree
self.get_new_db_id()
#+end_src
#+RESULTS:
#+latex: \newpage
* Prototype
** Scenario
#+name: scenario
#+begin_src python :python python3 :results output :noweb yes
class Scenario():
def __init__(self, id, name, parent):
self._id = id
self._name = name
self._parent = parent
@classmethod
def create_db(cls, db):
execute(
db, """
CREATE TABLE scenario(
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
parent_id INTEGER REFERENCES scenario(id)
)
"""
)
@classmethod
def load_db(cls, db):
cur = execute(
db, f"SELECT * FROM scenario"
)
table = cur.fetchall()
new = []
for values in table:
new.append(
cls(
values[0], values[1], values[2],
)
)
return new
def save(self, db):
sid = 'NULL' if self._parent is None else self._parent
execute(
db,
"INSERT INTO scenario (id, name, parent_id) " +
f"VALUES ({self._id}, '{self._name}', {sid})"
)
def __repr__(self):
return f"Scenario {{ {self._id}, {self._name}, parent {self._parent} }}"
def __str__(self):
return f"{self._name}({self._id})"
#+end_src
#+RESULTS: scenario
** Data
#+name: data-b
#+begin_src python :python python3 :results output :noweb yes
class B():
def __init__(self, value, scenario):
self._value = value
self._scenario = scenario
self._dummy = False
@classmethod
def create_db(cls, db):
execute(db, """
CREATE TABLE b(
id INTEGER PRIMARY KEY AUTOINCREMENT,
dummy_data BOOLEAN,
x INTEGER,
a_id INTEGER NOT NULL,
scenario_id INTEGER NOT NULL,
FOREIGN KEY(a_id) REFERENCES a(id),
FOREIGN KEY(scenario_id) REFERENCES scenario(id)
)
""")
def save(self, db, a_id):
execute(
db,
"INSERT INTO b (x, dummy_data, a_id, scenario_id) " +
f"VALUES ({self._value}, {self._dummy}, {a_id}, {self._scenario})"
)
@classmethod
def load_db(cls, db, a_id, senar):
if senar is None:
return []
cur = execute(
db,
"SELECT x, scenario_id, dummy_data FROM b " +
f"WHERE scenario_id = {senar} AND a_id = {a_id}"
)
table = cur.fetchall()
if len(table) == 0:
parent = execute(
db,
f"SELECT parent_id FROM scenario WHERE id = {senar}"
).fetchone()
return cls.load_db(db, parent[0])
new = []
for values in table:
if values[2]: # Is dummy
continue
new.append(cls(values[0], values[1]))
return new
def set_value(self, value, scenario):
self._value = value
self._scenario = scenario
def set_dummy(self, scenario):
self._scenario = scenario
self._dummy = True
def __repr__(self):
if self._dummy:
return ""
return f"{self._value}"
def __str__(self):
if self._dummy:
return ""
return f"{self._value}"
#+end_src
#+RESULTS: data-b
#+name: data-a
#+begin_src python :python python3 :results output :noweb yes
class A():
def __init__(self, id, values, scenario):
self._id = id
self._values = values
self._scenario = scenario
self._dummy = False
@classmethod
def create_db(cls, db):
execute(db, """
CREATE TABLE a(
id INTEGER PRIMARY KEY,
dummy_data BOOLEAN,
scenario_id INTEGER,
FOREIGN KEY(scenario_id) REFERENCES scenario(id)
)
""")
def save(self, db):
self.reduce_change()
execute(db, f"DELETE FROM a WHERE scenario_id = {self._scenario}")
execute(
db,
"INSERT INTO a (id, dummy_data, scenario_id) " +
f"VALUES ({self._id}, {self._dummy}, {self._scenario})"
)
execute(
db,
"DELETE FROM b " +
f"WHERE scenario_id = {self._scenario} " +
f"AND a_id = {self._id}"
)
for value in self._values:
value.save(db, self._id)
def reduce_change(self):
diff_scenar = reduce(
lambda acc, x: max(acc, x._scenario),
self._values,
self._scenario
)
print(f" ~> Reduce: {self._scenario} to {diff_scenar}")
self._scenario = diff_scenar
# Reduce new scenario value on each value
for value in self._values:
value._scenario = self._scenario
# Delete useless dummy data
self._values = list(
filter(
lambda v: not v._dummy,
self._values
)
)
# HACK: keep id unique
self._id = self._id * 100 + diff_scenar
@classmethod
def load_db(cls, db, senar):
if senar is None:
return []
cur = execute(
db,
f"SELECT id, scenario_id, dummy_data FROM a WHERE scenario_id = {senar}"
)
table = cur.fetchall()
if len(table) == 0:
parent = execute(
db,
f"SELECT parent_id FROM scenario WHERE id = {senar}"
).fetchone()
return cls.load_db(db, parent[0])
new = []
for values in table:
if values[2]:
continue
bb = B.load_db(db, values[0], senar)
new.append(cls(values[0], bb, values[1]))
return new
def set_dummy(self, scenario):
self._scenario = scenario
self._dummy = True
def add(self, b):
self._values.append(b)
def delete(self, index, scenario):
self._values[index].set_dummy(scenario)
self._scenario = scenario
def __repr__(self):
if self._dummy:
return "{ }"
return f"{{ {self._values}, ({self._scenario}) }}"
def __str__(self):
if self._dummy:
return "{ }"
return f"{{ {list(map(str, self._values))}, ({self._scenario}) }}"
#+end_src
#+RESULTS: data-a
** Full prototype
#+begin_src python :python python3 :results output :exports both :noweb yes :cache yes
from functools import reduce
def execute(db, query):
# print(query)
return db.execute(query)
def get_tree(db):
from treelib import Node, Tree
tree = Tree()
for senar in db.execute("SELECT * FROM scenario").fetchall():
if senar[1] is None:
tree.create_node(
str(Scenario(senar[0], senar[1], senar[2])) +
" : " + str(A.load_db(db, senar[0])[0]),
senar[0]
)
else:
tree.create_node(
str(Scenario(senar[0], senar[1], senar[2])) +
" : " + str(A.load_db(db, senar[0])[0]),
senar[0],
parent=senar[2]
)
return tree
### --- Scenario ---
<<scenario>>
### --- class B ---
<<data-b>>
### --- class A ---
<<data-a>>
### --- Script ---
import sqlite3
import pprint
pp = pprint.PrettyPrinter(width=79, compact=True, depth=6)
with sqlite3.connect(":memory:") as db:
cur = db.cursor()
Scenario.create_db(cur)
A.create_db(cur)
B.create_db(cur)
print("--- Default scenario (s0) ---")
# One scenario
s0 = Scenario(0, "s0", None)
a0 = A(
1,
[
B(0, s0._id),
B(1, s0._id),
B(2, s0._id),
],
s0._id
)
s0.save(cur)
a0.save(cur)
print("--- New scenario (s1) -- copy without modification ---")
# New scenario
s1 = Scenario(1, "s1", s0._id)
s1.save(cur)
print("--- New scenario (s2) -- data modification ---")
# New scenario 2 with data
s2 = Scenario(2, "s2", s0._id)
s2.save(cur)
a2 = a0
bb = list(map(
lambda b: b.set_value(b._value + 1, s2._id),
a2._values
))
a2.save(cur)
print("--- New scenario (s3) -- delete data ---")
# New scenario 3 with data
s3 = Scenario(3, "s3", s0._id)
s3.save(cur)
a3 = A.load_db(cur, s3._id)[0]
a3._values[0].set_dummy(s3._id)
a3.save(cur)
print("--- New scenario (s4) -- new data ---")
s4 = Scenario(4, "s4", s3._id)
s4.save(cur)
a4 = A.load_db(cur, s3._id)[0]
a4.add(B(666, s4._id))
a4.save(cur)
print("--- Scenario tree ---")
tree = get_tree(db)
print(tree)
print("--- Modify s0 data ---")
aa = A.load_db(db, s0._id)[0]
bb = list(map(
lambda b: b.set_value(b._value * 100 - 1, s0._id),
aa._values
))
aa.save(db)
print("--- Scenario tree ---")
tree = get_tree(db)
print(tree)
print("--- DB ---")
ss = db.execute("SELECT * FROM scenario").fetchall()
print(f"+ scenario ({len(ss)}):")
pp.pprint(ss)
aa = db.execute("SELECT * FROM a").fetchall()
print(f"+ a ({len(aa)}):")
pp.pprint(aa)
bb = db.execute("SELECT * FROM b").fetchall()
print(f"+ b ({len(bb)}):")
pp.pprint(bb)
#+end_src
#+RESULTS[96c84f23be557425ae2822ef7f174175ef69f9b9]:
#+begin_example
--- Default scenario (s0) ---
~> Reduce: 0 to 0
--- New scenario (s1) -- copy without modification ---
--- New scenario (s2) -- data modification ---
~> Reduce: 0 to 2
--- New scenario (s3) -- delete data ---
~> Reduce: 0 to 3
--- New scenario (s4) -- new data ---
~> Reduce: 3 to 4
--- Scenario tree ---
s0(0) : { ['0', '1', '2'], (0) }
├── s1(1) : { ['0', '1', '2'], (0) }
├── s2(2) : { ['1', '2', '3'], (2) }
└── s3(3) : { ['1', '2'], (3) }
└── s4(4) : { ['1', '2', '666'], (4) }
--- Modify s0 data ---
~> Reduce: 0 to 0
--- Scenario tree ---
s0(0) : { ['-1', '99', '199'], (0) }
├── s1(1) : { ['-1', '99', '199'], (0) }
├── s2(2) : { ['1', '2', '3'], (2) }
└── s3(3) : { ['1', '2'], (3) }
└── s4(4) : { ['1', '2', '666'], (4) }
--- DB ---
+ scenario (5):
[(0, 's0', None), (1, 's1', 0), (2, 's2', 0), (3, 's3', 0), (4, 's4', 3)]
+ a (4):
[(10000, 0, 0), (10002, 0, 2), (10003, 0, 3), (1000304, 0, 4)]
+ b (14):
[(1, 0, 0, 100, 0), (2, 0, 1, 100, 0), (3, 0, 2, 100, 0), (4, 0, 1, 10002, 2),
(5, 0, 2, 10002, 2), (6, 0, 3, 10002, 2), (7, 0, 1, 10003, 3),
(8, 0, 2, 10003, 3), (9, 0, 1, 1000304, 4), (10, 0, 2, 1000304, 4),
(11, 0, 666, 1000304, 4), (12, 0, -1, 10000, 0), (13, 0, 99, 10000, 0),
(14, 0, 199, 10000, 0)]
#+end_example
View File
Whitespace-only changes.
+525
View File
@@ -0,0 +1,525 @@
# presentation.org -- Pamhyr
# Copyright (C) 2023 INRAE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# -*- coding: utf-8 -*-
#+STARTUP: indent hideblocks content beamer
#+TITLE: \textbf{Pamhyr2}
#+SUBTITLE: Scenarios managements
# #+AUTHOR: Pierre-Antoine Rouby
#+LATEX_HEADER: \author[Pierre-Antoine Rouby]{\textbf{Pierre-Antoine Rouby}}
#+EMAIL: pierre-antoine.rouby@inrae.fr
#+INSTITUTE: INRAE Lyon-Villerbanne, teams River Hydraulics
#+LATEX_HEADER: \institute{INRAE Lyon-Villerbanne, River Hydraulics team}
#+DATE: 9th November
#+KEYWORDS: g ui, hydraulics, sedimentary, hydro-sedimentary, 1D modelling, freesoftware, foss
#+OPTIONS: H:2 toc:t num:t author:nil
#+LATEX_CLASS: beamer
#+LATEX_CLASS_OPTIONS: [slideopt,A4,showboxes,svgnames,aspectratio=169]
# #+LATEX_CLASS_OPTIONS: [presentation]
#+BEAMER_THEME: default
#+COLUMNS: %45ITEM %10BEAMER_ENV(Env) %10BEAMER_ACT(Act) %4BEAMER_COL(Col)
#+LANGUAGE: fr
#+LATEX_HEADER: \usepackage[frenchb]{babel}
#+BEGIN_SRC emacs-lisp :results silent :exports none
(setq org-latex-pdf-process (list
"latexmk -pdflatex='lualatex -shell-escape -interaction nonstopmode' -pdf -f %f"))
(add-to-list 'org-latex-packages-alist '("" "minted"))
(setq org-latex-listings 'minted)
(setq org-src-fontify-natively t)
(org-add-link-type
"cite" 'ebib
(lambda (path desc format)
(cond
((eq format 'html)
(format "(<cite>%s</cite>)" path))
((eq format 'text)
(format "[%s]" path))
((eq format 'latex)
(if (or (not desc) (equal 0 (search "cite:" desc)))
(format "\\cite{%s}" path)
(format "\\cite[%s][%s]{%s}"
(cadr (split-string desc ";"))
(car (split-string desc ";")) path))))))
#+END_SRC
# Wrapper
#+NAME: attr_wrap
#+HEADER: :var width="\\textwidth"
#+HEADER: :var caption=""
#+HEADER: :var smallcaption=""
#+HEADER: :var name=""
#+HEADER: :var data=""
#+HEADER: :var float="nil"
#+BEGIN_SRC sh :results output :exports none
echo "#+CAPTION[$smallcaption]: $caption"
echo "#+NAME: $name"
echo "#+ATTR_LATEX: :width $width :float $float"
echo "$data"
#+END_SRC
#+LATEX_HEADER: \setbeamertemplate{footline}[frame number]
#+LATEX_HEADER: \setbeamertemplate{headline}{}
#+LATEX_HEADER: \usepackage{multirow}
#+LATEX_HEADER: \usepackage{fontawesome5}
#+LATEX_HEADER: \usepackage{tcolorbox}
#+LATEX_HEADER: \usepackage{tikz}
#+LATEX_HEADER: \logo{\includegraphics[width=.1\textwidth]{../../../src/View/ui/ressources/Logo-INRAE.png}}
#+LATEX_HEADER: \newcommand{\R}[1]{\rotatebox[origin=c]{90}{#1}}
# Beamer colors
#+LATEX_HEADER: \setbeamersize{text margin left=0.5cm,text margin right=0.5cm}
#+LATEX_HEADER: \setbeamerfont{alerted text}{series=\bfseries}
#+LATEX_HEADER: \setbeamerfont{example text}{series=\bfseries}
#+LATEX_HEADER: \definecolor{inrae_1}{RGB}{102,193,191}
#+LATEX_HEADER: \definecolor{inrae_2}{RGB}{0,150,152}
#+LATEX_HEADER: \definecolor{inrae_3}{RGB}{39,86,98}
#+LATEX_HEADER: \setbeamercolor{alerted text}{fg=inrae_1}
#+LATEX_HEADER: \setbeamercolor{structure}{fg=inrae_2}
#+LATEX_HEADER: \setbeamercolor{normal text}{fg=inrae_3}
#+LATEX_HEADER: \setbeamercolor*{author}{fg=inrae_3}
#+LATEX_HEADER: \usepackage[absolute,showboxes,overlay]{textpos}
#+LATEX_HEADER: \TPshowboxesfalse
#+LATEX_HEADER: \textblockorigin{5mm}{0mm}
# Biblio
#+LATEX_HEADER: \usepackage{natbib}
# #+LATEX_HEADER: \bibliographystyle{apalike}
#+LATEX_HEADER: \setbeamertemplate{bibliography item}{}
#+LATEX_HEADER: \renewcommand\bibfont{\scriptsize}
#+LATEX_HEADER: \setbeamertemplate{frametitle continuation}[from second]
#+LATEX_HEADER: \setbeamercolor*{bibliography entry title}{fg=inrae_3}
#+LATEX_HEADER: \setbeamercolor*{bibliography entry author}{fg=inrae_3}
#+LATEX_HEADER: \setbeamercolor*{bibliography entry location}{fg=inrae_3}
#+LATEX_HEADER: \usepackage{bbding}
#+LATEX_HEADER: \usepackage{pdfpages}
# Renew title page
#+LATEX_HEADER: \defbeamertemplate*{title page}{customized}[1][]
#+LATEX_HEADER: {
# #+LATEX_HEADER: {
# #+LATEX_HEADER: \usebeamerfont{date}\usebeamercolor[fg]{date}
# #+LATEX_HEADER: \tikz[overlay,remember picture]
# #+LATEX_HEADER: \node[xshift=-1cm,yshift=-1cm,text width=10cm] at (current page.north east) {
# #+LATEX_HEADER: 7$^{th}$ International Conference\\
# #+LATEX_HEADER: 8TH-10TH November\\
# #+LATEX_HEADER: EDF Lab - CHATOU, FRANCE
# #+LATEX_HEADER: }
# #+LATEX_HEADER: }
#+LATEX_HEADER: {
#+LATEX_HEADER: \usebeamerfont{title}\inserttitle\par
#+LATEX_HEADER: \usebeamerfont{title}\usebeamercolor[fg]{title}
#+LATEX_HEADER: }
#+LATEX_HEADER: \bigskip
#+LATEX_HEADER: \begin{center}
#+LATEX_HEADER: \usebeamerfont{subtitle}\usebeamercolor[fg]{subtitle}
#+LATEX_HEADER: {
#+LATEX_HEADER: \LARGE\insertsubtitle\par
#+LATEX_HEADER: }
#+LATEX_HEADER: \bigskip
#+LATEX_HEADER: \usebeamerfont{author}\usebeamercolor[fg]{author}\insertauthor\par
#+LATEX_HEADER: \bigskip
#+LATEX_HEADER: \usebeamerfont{institute}\usebeamercolor[fg]{institute}\insertinstitute\par
#+LATEX_HEADER: \bigskip
#+LATEX_HEADER: \usebeamerfont{date}\usebeamercolor[fg]{date}\insertdate\par
#+LATEX_HEADER: \usebeamercolor[fg]{titlegraphic}\inserttitlegraphic
#+LATEX_HEADER: \end{center}
#+LATEX_HEADER: }
# #+LATEX_HEADER: \newcommand{\tred}[1]{\textcolor{rouge_inrae}{#1}}
#+TODO: TODO WIP TOREVIEW | DONE
#+MACRO: pamhyr \textsc{PAMHyR}
#+MACRO: pamhyr2 \textsc{Pamhyr2}
#+MACRO: pause \pause
#+MACRO: framebreak \framebreak
#+MACRO: no
# #+MACRO: OK \checkmark
#+MACRO: OK \faIcon{check}
#+MACRO: bf \textbf{$1}
# #+latex: \frame{\tocpage}
* Problématique
** Problématique
*** Utilisateur
- Définire une version modifier de l'étude (changement dans les
données)
- Comparé des résultats entre une variante et l'étude
{{{pause}}}
**** COMMENT Développeur
:PROPERTIES:
:BEAMER_COL: 0.5
:BEAMER_ENV: block
:END:
- Un unique fichier
- Limité la duplication de donnée à sauvegarder
- Garder une bonne cohérence entre données et résultats
{{{pause}}}
*** Scénarios
:PROPERTIES:
:BEAMER_COL: 1
:BEAMER_ENV: definition
:END:
Un scénario est une variate d'une étude.
** Problématique -- Avancer
*** Utilisateur
- Définire une version modifier d'un senarios
- Comparé des résultats entre plusieurs senarios
{{{pause}}}
**** COMMENT Développeur
:PROPERTIES:
:BEAMER_COL: 0.5
:BEAMER_ENV: block
:END:
- Un unique fichier
- Limité la duplication de donnée à sauvegarder
- Garder une bonne cohérence entre données et résultats
{{{pause}}}
*** Scénarios
:PROPERTIES:
:BEAMER_COL: 1
:BEAMER_ENV: definition
:END:
Un scénario peut être l'étude ou une variate d'un autre scénario.
** Problématique -- Encore plus avancer
*** Utilisateur
- Définire un ensemble fini de variante correspondant a un ensemble de
valeur pour un(des) paramètre(s) et executer un solveur sur
l'ensemble des variantes
- Pouvoir comparé des metrics sur un ensemble de résultats trop grand
pour une comparaisont à la mains
{{{pause}}}
**** COMMENT Développeur
:PROPERTIES:
:BEAMER_COL: 0.5
:BEAMER_ENV: block
:END:
- Un unique fichier
- Limité la duplication de donnée à sauvegarder
- Garder une bonne cohérence entre données et résultats
{{{pause}}}
*** Scénarios
:PROPERTIES:
:BEAMER_COL: 1
:BEAMER_ENV: definition
:END:
Un scénario peut être l'étude, une variate d'un scénarios ou un
ensemble fini de variantes d'un scénarios.
** Problématique -- Encore plus plus avancer
*** Utilisateur
- Définire un ensemble fini de variante correspondant a un ensemble de
valeur pour un(des) paramètre(s) et faire un nombre fini de tirage
aléatoire dans ces paramètre pour executer un solveur ces paramètres
- Pouvoir comparé des metrics sur un ensemble de résultats trop grand
pour une comparaisont à la mains
{{{pause}}}
*** Scénarios
:PROPERTIES:
:BEAMER_COL: 1
:BEAMER_ENV: definition
:END:
Un scénario peut être l'étude, une variate d'un scénarios ou un
ensemble fini ou un tirage aléatoire dans un ensemble de variantes
d'un scénarios.
** Problématique -- Développeur
*** Développeur
- Permetre a l'utilisateur de *garder une bonne cohérence entre
données et résultats* de façon claire
- Permetre a l'utilisateur de *géré les scénarios* de façon claire
(représentation graphique)
- Garder *un unique fichier* (=.pamhyr=)
- *Limité la duplication* de donnée à sauvegarder
- Permetre à l'utilisateur de garder les *résultats pertinant* sans
exploser la mémoire de l'ordinateur
* Proposition
** Proposition -- Concept
*** {{{no}}}
\vspace{-1.2cm}
**** Deux type de scénarios
:PROPERTIES:
:BEAMER_COL: 0.5
:BEAMER_ENV: block
:END:
- Scénarios simple
- Scénarios d'éxecution d'ensemble
{{{pause}}}
**** Scénarios simple
:PROPERTIES:
:BEAMER_COL: 0.5
:BEAMER_ENV: block
:END:
Est composer:
- d'un identifiant unique
- d'un nom (définie par l'utilisateur)
- d'une description (définie par l'utilisateur)
- d'un parent (définie par l'utilisateur)
{{{pause}}}
\vspace{-0.5cm}
*** Scénarios d'ensembles
**** {{{no}}}
:PROPERTIES:
:BEAMER_COL: 0.5
:BEAMER_ENV: block
:END:
\vspace{-1cm}
Est composer:
- d'un identifiant unique
- d'un nom (définie par l'utilisateur)
- d'une description (définie par l'utilisateur)
- d'un parent (définie par l'utilisateur)
- d'un ou plusieurs ensemble de valeur
**** {{{no}}}
:PROPERTIES:
:BEAMER_COL: 0.5
:BEAMER_ENV: block
:END:
\vspace{-0.5cm}
Un ensemble de valeurs est definie par:
- une valeurs de départ
- une valeurs de fin
- un pas de valeur
- un élément d'origine (élément définie dans l'étude)
- une fonctions (modification de l'élément à l'aide d'une valeur de
l'ensemble)
** Proposition -- Limitation
*** Scénarios simple
:PROPERTIES:
:BEAMER_COL: 0.5
:BEAMER_ENV: block
:END:
Si le scénarios est le *parent d'un autre scénarios*, il ne *peut plus
être modifier* sans risquer des comportement difficilement
comprehensible pour l'utilisateur.
{{{pause}}}
*** Scénarios d'ensembles
:PROPERTIES:
:BEAMER_COL: 0.5
:BEAMER_ENV: block
:END:
- Un scénarios d'ensemble *ne peut pas être parent* d'un autre
scénarios
- Le nombre d'exécution peut très rapidement grossir
** Proposition -- Affichage
#+name: graph-scenarios
#+header: :results drawer
#+header: :exports results
#+header: :post attr_wrap(width="7cm", data=*this*, name="graph-scenarios", caption="Exemple of scenarios graph", float="t")
#+begin_src dot :file "images/graph-scenarios.png" :cache no
digraph {
bgcolor="transparent";
node[colorscheme=pastel19,shape=ellipse,style="filled",fillcolor=9];
b[fillcolor=2];
aa[shape=box,fillcolor=2];
aa2[label="aa'", shape=box, fillcolor=2];
ad[shape=box, fillcolor=2];
re[shape=box, fillcolor=2];
rf[shape=box, fillcolor=2];
default -> a;
default -> b;
default -> c;
a -> aa;
a -> aa2;
a -> f -> rf;
c -> d -> ad;
c -> e -> re;
}
#+end_src
#+RESULTS[80ed2484b9cc71143f800ff23c10846fd04697c3]: graph-scenarios
:results:
#+CAPTION[]: Exemple of scenarios graph
#+NAME: graph-scenarios
#+ATTR_LATEX: :width 7cm :float t
[[file:images/graph-scenarios.png]]
:end:
* Solution technique
** Technique -- scénarios
#+begin_src sql
CREATE TABLE scenario(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL, -- Name of the scenario
description TEXT NOT NULL, -- Rich text description
parent_id INTEGER REFERENCES scenario(id) -- Recursive references
-- for parent scenario
)
#+end_src
** Technique -- Données -- Enregistrement
#+begin_src sql
-- Unique ID (Must be unused, to delete)
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
-- New ID (not unique)
pamhyr_id INTEGER NOT NULL,
-- (Optional) Flag for set there is no data in this scenario and
-- ignore parent scenario
dummy BOOLEAN NOT NULL,
-- Corresponding scenario
scenario_id INTEGER NOT NULL,
PRIMARY KEY(pamhyr_id, scenario_id),
FOREIGN KEY(scenario_id) REFERENCES scenario(id),
#+end_src
** Technique -- Données -- Chargement
#+begin_src python :python python3 :results output :noweb yes
def load(cls, db, current_scenario):
# Default case, end of recursion
if current_scenario is None:
return [] # Default value
table = db.execute(f"<MY SELECT> WHERE scenario_id = {current_scenario}")
# If no data for this scenario, recursion
if len(table) == 0:
parent_id = db.get_parent_id(current_scenario)
return cls.load(db, parent_id)
# Otherelse, parse data and return...
#+end_src
** Technique -- Données -- Modification
#+begin_src python :python python3 :results output :noweb yes
def set_modified(self, current_scenario):
self.scenario = current_scenario
#+end_src
#+begin_src python :python python3 :results output :noweb yes
def delete(self, current_scenario):
self.deleted = True
self.set_modified(current_scenario)
#+end_src
** Technique -- Exécution d'ensemble
#+begin_src sql
CREATE TABLE range_set(
id INTEGER PRIMARY KEY AUTOINCREMENT,
start REAL NOT NULL, -- Range start
end REAL NOT NULL, -- Range end
step REAL NOT NULL, -- Range step
generator_name TEXT NOT NULL, -- Generator function name (ex:
-- 'minor_strickler')
original_data_id INTEGER, -- (optional) Ref to data who apply
-- this range (ex: a strickler id)
scenario_id INTEGER NOT NULL,
FOREIGN KEY(scenario_id) REFERENCES scenario(id)
)
#+end_src
* Sauvegarde des résultats
** Sauvegarde des résultats
*** Scénarios simple
Sauvegarde d'un seul résultats complet par scénarios (et par solver).
*** Scénarios d'ensemble
Sauvegarde de metrics récupéré sur un ensemble de résultats (pas de
sauvegarde de tous les résultats) ou certain résultats particuliers.
* Question & remarque
** Question & remarque
- Solution satisfaisante ?
- Cas d'usage intéressent non couvert ?
- Contre exemple ?
- Meilleur solution ?
Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

@@ -424,7 +424,7 @@ Create a new version of {{{pamhyr}}} called {{{pamhyr2}}}
** Contribution
#+LaTeX: \begin{center}
\faIcon{gitlab} https://gitlab.irstea.fr/theophile.terraz/pamhyr/
\faIcon{gitlab} https://gitlab.com/pamhyr/pamhyr2/
#+LaTeX: \end{center}
*** For users
@@ -462,7 +462,7 @@ Create a new version of {{{pamhyr}}} called {{{pamhyr2}}}
# #+END_EXPORT
#+LaTeX: \begin{center}
\faIcon{gitlab} https://gitlab.irstea.fr/theophile.terraz/pamhyr/
\faIcon{gitlab} https://gitlab.com/pamhyr/pamhyr2/
#+LaTeX: \end{center}
#+LaTeX: \begin{center}
@@ -0,0 +1,68 @@
@article{camenen_simple_2007,
title = {Simple and {General} {Formula} for the {Settling} {Velocity} of {Particles}},
volume = {133},
language = {en},
number = {2},
urldate = {2025-01-23},
journal = {Journal of Hydraulic Engineering},
author = {Camenen, Benoit},
month = feb,
year = {2007},
pages = {229-233},
}
@article{meyer-peter_formulas_1948,
address = {Stockholm, Sweden},
title = {Formulas for bed-load transport.},
journal = {Report on Second Meeting of IAHR},
author = {Meyer-Peter, E and Mueller, R},
year = {1948},
pages = {39-64},
}
@article{elder_dispersion_1959,
title = {The dispersion of marked fluid in turbulent shear flow},
volume = {5},
issn = {0022-1120, 1469-7645},
language = {en},
number = {04},
urldate = {2025-01-23},
journal = {Journal of Fluid Mechanics},
author = {Elder, J. W.},
month = may,
year = {1959},
pages = {544},
}
@article{fischer_discussion_1975,
title = {Discussion of Simple Method for Predicting Dispersion in Streams},
volume = {101},
issn = {0090-3914, 2690-2435},
language = {en},
number = {3},
urldate = {2025-01-23},
journal = {Journal of the Environmental Engineering Division},
author = {Fischer, Hugo B},
month = mar,
year = {1975},
pages = {453-455},
}
@article{iwasa_predicting_1991,
address = {Hong Kong},
title = {Predicting longitudinal dispersion coefficient in open channel flows},
journal = {roc. Int. Symp. of Environmental Hydraulics},
author = {Iwasa, Y and Aya, S},
year = {1991},
pages = {505-510},
}
@book{soulsby_dynamics_1997,
address = {London},
edition = {Thomas Telford},
title = {Dynamics of {Marine} {Sands}: {A} {Manual} for {Practical} {Applications}},
urldate = {2025-01-23},
author = {Soulsby, Richard},
year = {1997},
}
+175
View File
@@ -0,0 +1,175 @@
%% LyX 2.0.2 created this file. For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[12pt,french]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{geometry}
\geometry{verbose,tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm,headheight=2cm,headsep=2cm,footskip=2cm}
\usepackage{textcomp}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[frenchb]{babel}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\newcommand{\noun}[1]{\textsc{#1}}
%% Because html converters don't know tabularnewline
\providecommand{\tabularnewline}{\\}
\makeatother
\usepackage{babel}
\addto\extrasfrench{%
\providecommand{\og}{\leavevmode\flqq~}%
\providecommand{\fg}{\ifdim\lastskip>\z@\unskip\fi~\frqq}%
}
\begin{document}
\includegraphics[width=5cm]{img/Logo-INRAE_Transparent.png}
~
~
~
\begin{center}
TP AdisTS - Pamhyr2\\
Version : Janvier 2025
\par\end{center}
~
~
\begin{center}
\textbf{\LARGE Modélisation 1D du transport sédimentaire : } \\
\textbf{\LARGE Cas du Vieux-Rhône de Miribel-Jonage}\\
\textbf{\LARGE (Lyon, France)}
\par\end{center}{\LARGE \par}
~
\begin{center}
\includegraphics[width=17cm]{img/Garde.jpeg}
\par\end{center}
~
\begin{center}
{\large INRAE Lyon-Grenoble Auvergne-Rhône-Alpes}
\par\end{center}{\large \par}
\begin{center}
RiverLy, Hydraulique des rivières
\par\end{center}
~
\begin{center}
\begin{tabular}{lll}
Auteur : & Dorian Hernandez & dorian.hernandez@inrae.fr\tabularnewline
& Théophile Terraz & theophile.terraz@inrae.fr\tabularnewline
\end{tabular}
\par\end{center}
~
\pagebreak{}
\begin{center}
\tableofcontents{}
\par\end{center}
~
\pagebreak{}
% \section{Introduction}
%
% TODO
%
% \pagebreak{}
\section{Contexte de l'étude - le colmatage du Vieux-Rhône}
Le champ de captage de Crépieux-Charmy est un site de pompage d'eau potable alimentant 97 \% de la ville de Lyon. Situé au nord-est de la ville, il est en contact hydraulique avec trois chenaux du Rhône. Le canal de Miribel au Nord, dont les débits varient entre 89 (débit réservé) et 2400 ~$m³/s$ (Crue extrême), le canal de Jonage au sud, imposant un débit quasi constant de 600 ~$m³/s$ pour alimenter la centrale de Cusset, et un Vieux-Rhône qui traverse le site. Les fortes variations hydrauliques le long de Miribel, ainsi que le débit constant le long de Jonage mènent à un dépôt général des sédiments fins et grossiers le long du Vieux-Rhône, avec la création d'un remous important causé par Jonage.
\begin{center}
\includegraphics[width=15cm]{img/Intro.jpeg}
\par\end{center}
Eau du grand Lyon, le gérant du champ de captage, souhaite identifier les zones de dépôts de sédiments fin le long du Vieux-Rhône, cause principale de colmatage, impactant les performances de pompage de l'eau dans les nappes.
\begin{center}
\includegraphics[width=15cm]{img/Champ_captant.jpeg}
\par\end{center}
Pour cela, une campagne expérimentale visant à identifier les zones colmatés du Vieux-Rhône a été réalisée et a mis en avant une hétérogénéité du site. Notamment, une forte zone de dépôts de grossier est présente en amont. Tandis qu'une présence plus importante de fines et sables dans la zone aval (zone de remous de Jonage) a été observée, ainsi qu'un colmatage plus important.
\begin{center}
\includegraphics[width=15cm]{img/Grossier_sable.jpeg}
\par\end{center}
En parallèle, un modèle numérique hydraulique 1D a été élaboré sous Pamhyr2 afin d'analyser l'écoulement sur le site. Les résultats numériques mettent alors bien en avant le remous généré par Jonage, ainsi qu'une diminution de la vitesse de l'écoulement à partir du point kilométrique (PK) 1000, fin de la zone amont.
\begin{center}
\includegraphics[width=15cm]{img/Simu.jpeg}
\par\end{center}
\section{Objectifs de l'étude}
Le modèle numérique 1D représente actuellement la partie hydraulique du système. L'objectif du TP est alors de mettre en donnée la partie sédimentaire (fines) du modèle, afin d'effectuer des calculs à l'aide de AdisTS , et in-fine, identifier les zones de dépôt et d'érosion des sédiments fins le long du Vieux-Rhône selon différents scénarios hydraulique. Les différentes étapes seront alors :
\begin{itemize}
\item Mettre en données le modèle Pamhyr2 du Vieux-Rhône pour le solveur AdisTS.
\item Lancer des calculs Mage - AdisTS pour différents scénarios hydrauliques.
\item Interpréter et discuter les résultats obtenus (comportement hydro-sédimentaire du site, impacts des débits, impact d'une crue, limites du modèle, etc..)
\end{itemize}
\section{Données fournies}
\textbf{Le modèle numérique du Vieux-Rhône}
Fichier \textit{Vieux\_Rhone\_TP\_AdisTS.pamhyr}.\\
\textbf{Les scénarios hydrauliques}
Quatre scénarios hydrauliques sont à analyser (voir les conditions initiales hydraulique) :
\begin{itemize}
\item Le premier correspond à un débit constant de 25~$m³/s$
\item Le deuxième consiste en une faible montée en débit puis à une redescente (25 - 50 - 25~$m³/s)$.
\item Le troisième correspondant à une plus forte montée en débit (25 - 100 - 25~$m³/s)$.
\item Le dernier correspond à une crue (25 - 600 - 25~$m3/s)$.\\
\end{itemize}
\textbf{Propriétés des sédiments}
Nous considérerons 2 classes de sédiments de types sable naturel, correspondant à une classe de Fines (limon) de diamètre moyen 63 microns et une classe de Sable de 500 microns. Les deux classes auront une masse volumique de 2650~$kg/m³$, et une porosité de 0,45 pourra être choisie. Leurs concentrations constantes en amont (conditions aux limites amont) seront de 60 $mg/l$ pour les fines et 30 $mg/l$ pour les sables. Nous considérerons dans un premier temps qu'il n'y a aucun dépôt initial de ces deux classes de sédiments et que la concentration initiale en sédiments dans le bief est nulle.\\
\textbf{Documentation}
\begin{itemize}
\item Un tutoriel guidé de mise en données : Pas-a-pas.pdf.
\item Un guide utilisateur de AdisTS : adis-TS\_usage.pdf
\item Un guide de conception de AdisTS : adis-TS\_conception.pdf
\end{itemize}
\section{Bonus}
Ajouter une épaisseur initiale de sédiments \textit{Sables} au fond de 1 $cm$ et relancer un calcul avec le scénario 1.
\pagebreak{}
\end{document}
+8
View File
@@ -0,0 +1,8 @@
#! /bin/sh
pdflatex -no-shell-escape pas-a-pas.tex
bibtex pas-a-pas.aux
pdflatex -no-shell-escape pas-a-pas.tex
pdflatex -no-shell-escape pas-a-pas.tex
pdflatex -no-shell-escape Sujet.tex
pdflatex -no-shell-escape Sujet.tex
File diff suppressed because it is too large. Load diff
Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

@@ -0,0 +1,291 @@
%% LyX 2.0.2 created this file. For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[12pt,french]{article}
\usepackage[T1]{fontenc}
\usepackage[latin9]{inputenc}
\usepackage{geometry}
\geometry{verbose,tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm,headheight=2cm,headsep=2cm,footskip=2cm}
\usepackage{textcomp}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[frenchb]{babel}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\newcommand{\noun}[1]{\textsc{#1}}
%% Because html converters don't know tabularnewline
\providecommand{\tabularnewline}{\\}
\makeatother
\usepackage{babel}
\addto\extrasfrench{%
\providecommand{\og}{\leavevmode\flqq~}%
\providecommand{\fg}{\ifdim\lastskip>\z@\unskip\fi~\frqq}%
}
\begin{document}
\includegraphics[width=5cm]{img/Logo-INRAE_Transparent.png}
~
~
~
\begin{center}
Tutoriel Pas-à-pas AdisTS - Pamhyr2
Version : Janvier 2025
\par\end{center}
~
~
\begin{center}
\textbf{\LARGE Modélisation 1D du transport sédimentaire : } \\
\textbf{\LARGE Cas du Vieux-Rhône de Miribel-Jonage}\\
\textbf{\LARGE (Lyon, France)}
\par\end{center}{\LARGE \par}
~
\begin{center}
\includegraphics[width=17cm]{img/Garde.jpeg}
\par\end{center}
~
\begin{center}
{\large INRAE Lyon-Grenoble Auvergne-Rhône-Alpes}
\par\end{center}{\large \par}
\begin{center}
RiverLy, Hydraulique des rivières
\par\end{center}
~
\begin{center}
\begin{tabular}{lll}
Auteurs : & Dorian Hernandez & dorian.hernandez@inrae.fr\tabularnewline
& Théophile Terraz & theophile.terraz@inrae.fr\tabularnewline
\end{tabular}
\par\end{center}
~
\pagebreak{}
\begin{center}
\tableofcontents{}
\par\end{center}
~
\pagebreak{}
% \section{Introduction}
%
% TODO
%
% \pagebreak{}
\section{Ouvrir l'étude}
Lancez Pamhyr2.
Cliquez sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/open.png} puis ouvrez le modèle Pamhyr2 \textit{Vieux\_Rhone\_TP\_AdisTS.pamhyr}.
Le modèle à un bief du Vieux-Rhône s'affiche sur la fenêtre graphique.
\begin{center}
\includegraphics[width=15cm]{img/Open_model.jpeg}
\par\end{center}
\section{Mise en donnée}
\subsection{Création des classes de sédiments}
Dans la fenêtre principale, cliquez sur \texttt{[AdisTS] => [Polluants]} pour créer des classes de sédiments.
\begin{center}
\includegraphics[width=15cm]{img/Model_menu_Adists.jpeg}
\par\end{center}
La fenêtre \textit{Polluants - Vieux-Rhône} s'affiche. Elle va nous permettre de définir l'ensemble des caractéristiques (type de sédiment, taille moyenne, masse volumique,..) de nos classes de sédiments, ainsi que les conditions sédimentaires initiales et aux limites du modèle.
A l'aide du bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/add.png} inclure deux nouvelles classes de sédiments et les nommer \textit{Fines} et \textit{Sables}.
\begin{center}
\includegraphics[width=15cm]{img/Polluants_fenetre.jpeg}
\par\end{center}
Pensez à sauvegarder régulièrement l'étude, à l'aide du bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/save.png} de la fenêtre principale.
\subsection{Caractéristiques et conditions initiales des sédiments}
Pour pouvoir attribuer des caractéristiques et des conditions initiales à une classe de sédiments, il faut d'abord la sélectionner.
Cliquez sur la classe de sédiments \textit{Fines}, puis ouvrez la fenêtre \texttt{[Caractéristiques]}.
\begin{center}
\includegraphics[width=15cm]{img/Pol_to_Caracteristique.jpeg}
\par\end{center}
La fenêtre d'édition de la classe de sédiments \textit{Fines} s'ouvre.
\begin{center}
\includegraphics[width=15cm]{img/caracteristique_fines_a_completer.jpeg}
\par\end{center}
Celle-ci contient les informations nécessaire à la résolution des termes sources (taux d'érosion et de dépôt) de l'équation de transport-dispersion. Notamment pour le calcul de la vitesse de chute selon \cite{camenen_simple_2007} et la contrainte critique de mise en mouvement via l'approximation de \cite{soulsby_dynamics_1997}.
Complétez les valeurs manquantes du tableau selon les données de l'énoncé. Puis, fermez la fenêtre des caractéristiques.
Ouvrez à présent la fenêtre de \texttt{[Conditions initiales]} (toujours pour les \textit{Fines}).
\begin{center}
\includegraphics[width=15cm]{img/CI.jpeg}
\par\end{center}
Cette fenêtre contient deux espaces permettant de définir la concentration initiale de \textit{Fines} (dans "l'eau" du bief) et l'épaisseur de dépôt de fines au fond du bief. Dans le compartiment de gauche, on définit les valeurs par défaut, appliquées à l'ensemble du bief. Le compartiment de droite permet d'imposer des conditions initiales différentes en fonction des PKs du bief.
Nous considérerons une concentration initiale nulle en sédiments fins, ainsi qu'une épaisseur nulle au fond.\\
\\
Fermez la fenêtre de conditions initiales.\\
\\
Sélectionnez la classe de sédiments \textit{Sables} et répétez les étapes précédentes en considérant cette fois-ci les caractéristiques propres aux sables selon l'énoncé.
\subsection{Conditions aux limites}
Pour les conditions aux limites il n'est pas nécessaire de mettre en surbrillance les classes de sédiments.\\
\\
Ouvrez la fenêtre de \texttt{[Conditions aux limites]} et ajouter deux conditions aux limites de type concentration au n½ud amont du bief. Il y aura alors une condition aux limites pour chaque classe de sédiments.
\begin{center}
\includegraphics[width=15cm]{img/CL.jpeg}
\par\end{center}
Éditez la condition aux limites \textit{Fines} en la mettant en surbrillance et en cliquant sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/edit.png}.\\
Créez une condition aux limites de type concentration constante de 0.060 $kg/m³$ en insérant deux lignes \textit{Temps/Concentration} à l'aide du bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/add.png}.
\begin{center}
\includegraphics[width=15cm]{img/CL_edit.jpeg}
\par\end{center}
Procédez de la même façon pour la classe de sédiments \textit{Sables}, mais avec une concentration de 0.030 $kg/m³$.\\
\\
Fermez les fenêtres d'éditions des conditions aux limites et des polluants.
\subsection{Caractéristiques du fond fixe}
Dans la fenêtre principale, cliquez sur \texttt{[AdisTS] => [D90]}. Cette fenêtre permet de définir le diamètre des particules fixes au fond du canal, nécessaire pour le calcul du coefficient de Strickler à la manière de \cite{meyer-peter_formulas_1948}. De même que pour les conditions initiales des polluants, la fenêtre d'édition est divisée en deux parties afin d'introduire un paramètres par défaut et de laisser la possibilité d'appliquer des valeurs de $d_{90}$ variables le long du bief.
\begin{center}
\includegraphics[width=15cm]{img/D90.jpeg}
\par\end{center}
Définissez 2 coefficients différents. Une valeur de 5 cm sur la partie amont (zone principale de dépôt de grossier) et 2 cm sur la partie avale.
\subsection{Coefficient de diffusion}
Le coefficient de diffusion $D_f$ comprend une part de diffusion moléculaire prise par défaut à $D_{mol}=10^{-6}$, à laquelle s'ajoutent les diffusions turbulentes et la dispersion sous forme d'un seul terme $D_{mix}$ défini selon les formules de \cite{fischer_discussion_1975}, \cite{elder_dispersion_1959} ou \cite{iwasa_predicting_1991}. Il est aussi possible d'utiliser une forme générique de $D_{mix}$ (voir doc utilisateur) ou encore d'imposer une valeur constante. Dans le cas tu TP nous choisirons Iwasa et Aya avec $\alpha=2$.
\begin{center}
\includegraphics[width=15cm]{img/Diff.jpeg}
\par\end{center}
\section{Paramètres du solveur}
Dans la fenêtre principale, cliquez sur \texttt{[Exécuter] => [Paramètres numériques des solveurs]}.
Dans la fenêtre \textit{Paramètres du solveur}, sélectionnez l'onglet \texttt{[Adis-TS\_WC]}.
Ces paramètres pilotent le comportement du solveur numérique. On retrouve notamment les temps de début et de fin de la simulation. Le pas de temps maximal en secondes pour le calcul. Le paramètre d'implicitation du schéma numérique de Crank-Nicholson (0.5 comme valeur recommandée). Les temps d'écriture des fichiers .bin, .csv (pour l'export à la volée), et de l'affichage à l'écran. On retrouve aussi la possibilité d'appliquer une concentration initiale.
Exemple de valeurs des paramètres :
\begin{center}
\includegraphics[width=15cm]{img/Execute_param.jpeg}
\par\end{center}
Fermez la fenêtre \textit{Paramètres du solveur}.
\section{Lancer une simulation}
Avant de lancer AdisTS, il est nécessaire d'avoir une première solution hydraulique.
Vérifiez que les conditions aux limites amont et aval sélectionnées sont bien celles correspondantes à l'hydrogramme et au limnigramme du scénrio souhaité.
\begin{center}
\includegraphics[width=15cm]{img/CL_verif.jpeg}
\par\end{center}
Dans la fenêtre principale, cliquez sur \texttt{[Exécuter] => [Lancer le solveur]}.
Sélectionnez \textit{Defaut-Mage - (Mage8)} et cliquez sur le bouton \textit{Lancer}.
La fenêtre \textit{Log du solveur} s'ouvre.
Cette fenêtre affiche les sorties texte du solveur.
À partir de la fenêtre \textit{Log du solveur}, il est possible de réexécuter le calcul en cliquant sur l'icône \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/run.png}. Cliquez sur le bouton \textit{Résultats} pour ouvrir la fenêtre \textit{Résultats} de Mage.
Dans la fenêtre principale, cliquez sur \texttt{[Exécuter] => [Lancer AdisTS]}.
Sélectionnez \textit{Defaut-AdisTS - (adistswc)} et cliquez sur le bouton \textit{Lancer}.
La fenêtre \textit{Log du solveur} s'ouvre.
Cette fenêtre affiche les sorties texte du solveur. Si le calcul s'est déroulé correctement, la fenêtre log devrait ressembler à celle-ci :
\begin{center}
\includegraphics[width=15cm]{img/log.jpeg}
\par\end{center}
Cliquez sur le bouton \textit{Résultats} pour ouvrir la fenêtre \textit{Résultats} de AdisTS. Il est aussi possible de ré-ouvrir les résultats de Mage en cliquant sur le bouton \textit{Résultats Mage}.
\section{Visualisation et export de résultats}
Il est aussi possible d'ouvrir la fenêtre \textit{Résultats} si vous avez fermé la fenêtre \textit{Log du solveur}, en cliquant sur \texttt{[Résultats] => [Visualiser les derniers résultats]} à partir de la fenêtre principale. Les résultats affichés sont ceux de AdisTS.
\begin{center}
\includegraphics[width=15cm]{img/Results.jpeg}
\par\end{center}
Le panneau supérieur gauche permet de sélectionner le bief, le panneau du milieu gauche permet de sélectionner une section dans ce bief et le panneau inférieur gauche permet de sélectionner la classe de sédiments dont on veut extraire des résultats.
La fenêtre de droite possède 4 onglets. Chaque onglet présente des résultats en fonction du temps (un curseur en bas de la fenêtre permet de visualiser les résultats à différents pas de temps) :
\begin{itemize}
\item Le premier onglet correspond aux données brutes de concentration dans l'eau et de masse déposée pour chaque classe de sédiments de l'étude.
\item Le deuxième onglet est divisée en deux sous-onglets permettant de visualiser de deux façons différentes la concentration de la classe de sédiments sélectionnée : soit en fonction du PK du bief, soit en fonction du temps.
\item De même, le troisième onglet est divisé en deux sous-onglets permettant de visualiser cette fois-ci la masse linéique de sédiments s'étant déposés.
\item Enfin le dernier onglet présente l'épaisseur des sédiments déposés.
\end{itemize}
Il est possible d'exporter les résultats au format CSV en cliquant sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/export.png} en haut à gauche de la fenêtre.
\begin{center}
\includegraphics[width=15cm]{img/Export_res_adis.jpeg}
\par\end{center}
Répétez les étapes 4 et 5, selon différents scénarios hydrauliques.
\section{Bonus}
Ajoutez une épaisseur initiale de 1 cm de sédiments \textit{Sables} au fond et relancer un calcul avec le scénario 1.
\bibliographystyle{plainnat}
\bibliography{Biblio.bib}
\pagebreak{}
\end{document}
+293
View File
@@ -0,0 +1,293 @@
%% LyX 2.0.2 created this file. For more info, see http://www.lyx.org/.
%% Do not edit unless you really know what you are doing.
\documentclass[12pt,french]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{geometry}
\geometry{verbose,tmargin=2cm,bmargin=2cm,lmargin=2cm,rmargin=2cm,headheight=2cm,headsep=2cm,footskip=2cm}
\usepackage{textcomp}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage[frenchb]{babel}
\makeatletter
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
\newcommand{\noun}[1]{\textsc{#1}}
\usepackage{amsthm}
\newtheorem{remark}{Q?}
%% Because html converters don't know tabularnewline
\providecommand{\tabularnewline}{\\}
\makeatother
\usepackage{babel}
\addto\extrasfrench{%
\providecommand{\og}{\leavevmode\flqq~}%
\providecommand{\fg}{\ifdim\lastskip>\z@\unskip\fi~\frqq}%
}
\begin{document}
\includegraphics[width=5cm]{img/Logo-INRAE_Transparent.png}
~
~
~
\begin{center}
Tutoriel pour Pamhyr2
- suite -
Janvier 2025
\par\end{center}
~
~
\begin{center}
\textbf{\LARGE Scénarii d'aménagement de la rivière } \\
\textbf{\LARGE Hogneau (Nord, France) avec Pamhyr2}
\par\end{center}{\LARGE \par}
~
~
\begin{center}
{\large INRAE Lyon-Grenoble Auvergne-Rhône-Alpes}
\par\end{center}{\large \par}
\begin{center}
RiverLy, Hydraulique des rivières
\par\end{center}
~
~
~
~
~
~
\begin{center}
\begin{tabular}{lll}
Auteurs : & Céline Berni & celine.berni@inrae.fr\tabularnewline
& Théophile TERRAZ & theophile.terraz@inrae.fr\tabularnewline
\end{tabular}
\par\end{center}
~
\pagebreak{}
\begin{center}
\tableofcontents{}
\par\end{center}
~
\pagebreak{}
% \section{Introduction}
%
% TODO
%
% \pagebreak{}
\section*{Préambule}
Dans ce document, nous expliciterons les fonctionnalités de PamHyr utiles à la modélisation de scénarii d'aménagement de la rivière Hogneau comme décrit dans le document de TP.
Il est utile au préalable d'avoir suivi le tutoriel pour la modélisation de la rivière Hogneau fourni avec le logiciel (Tuto1-fr.pdf).
Suivre le tutoriel 1 vous permettra de construire le modèle avec le scénario de référence (la rivière avant aménagement).
Notez que l'outil PamHyr ne permet pas au stade actuel de comparer plusieurs scenarii.
Vous devrez pour ce faire exporter les vos résultats à partir de la fenêtre \textit{Résultats} qui s'ouvre en cliquant sur \texttt{[Résultats] => [Visualiser les derniers résultats]} à partir de la fenêtre principale.
\begin{center}
\includegraphics[width=15cm]{img/export_resultats_commentee.png}
%\includegraphics[width=12cm]{../../../src/View/ui/ressources/export_resultats2.png}
\par\end{center}
Le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/export.png} vous permet d'exporter les résultats au format CSV pour une utilisation en dehors de Pamhyr2.
Deux options s'offrent à vous :
\begin{itemize}
\item Vous souhaitez avoir une vue d'ensemble du cours d'eau (et tracer une courbe de remous par exemple). Vous allez exporter une variable en un instant donné tout le long du cours d'eau. Il faut alors vous placer à un instant donné (à l'aide du curseur en bas à gauche) et exporter la grandeur de votre choix pour tous les points kilométriques de votre maillage. Dans la fenêtre d'export, vous devrez sélectionner \texttt{Point Kilométrique (m)} pour l'axe X, et la variable que vous souhaitez exporter pour l'axe Y.
Cocher \texttt{enveloppe} vous permettra d'exporter en plus les valeurs minimale et maximale au cours du temps pour la grandeur choisie.
Par exemple, vous choisissez d'exporter la cote du fond et la cote de l'eau et vous cochez \texttt{enveloppe}. Vous obtiendrez un tableau avec les colonnes suivantes :
\begin{itemize}
\item \texttt{Point Kilométrique (m)} : toutes les valeurs de PK le long de votre bief
\item \texttt{Cote du fond (m)} : la cote du fond correspondante à chaque PK
\item \texttt{Cote de l'eau (m)} : la cote de l'eau correspondante à chaque PK à l'instant sélectionné (voir figure ci-dessous)
\item \texttt{Cote de l'eau min (m)} : la cote de l'eau minimale atteinte correspondante à chaque PK
\item \texttt{Cote de l'eau max (m)} : la cote de l'eau maximale atteinte correspondante à chaque PK
\end{itemize}
ces deux dernières colonnes constituant l'enveloppe de la cote de l'eau.
\item Vous souhaitez regarder l'évolution au cours du temps de ce qu'il se passe en un point précis du cours d'eau (regarder l'hydrogramme de crue à l'aval d'un aménagement par exemple). Vous devez alors vous placer au point kilométrique (PK) qui vous intéresse (le PK sélectionné est marqué en rouge sur la visualisation du profil en long ou sélectionné dans le tableau) et exporter la hauteur d'eau, le niveau d'eau, le débit ou autre en fonction du temps. Dans la fenêtre d'export, vous devrez sélectionner \texttt{Temps (s)} pour l'axe X.
\end{itemize}
Ainsi dans l'exemple ci-dessus, les données exportées le seront au point kilométrique 34000\,m, à l'instant $t=1$ jour et 12h.
\pagebreak{}
\section{Premier scénario d'aménagement : abaissement du seuil}
Parmi les 3 options d'aménagement évoquées par la collectivité locale, jouer sur le contrôle aval en abaissant le seuil qui marque la jonction avec le canal de Condé-Pommeroeul peut faire baisser le niveau à l’amont.
\begin{remark}
Pourquoi jouer sur le contrôle aval peut-il avoir un effet sur le niveau d'eau en amont ?
\end{remark}
Pour modifier la hauteur du seuil, dans la fenêtre principale, cliquez sur \texttt{[Hydraulique] => [Ouvrages hydrauliques]} pour ouvrir la fenêtre des ouvrages hydrauliques.
Vous pouvez alors sélectionner le seuil Palplanche.
\begin{center}
\includegraphics[width=15cm]{img/ouvrage_seuilpalplanche.png}
\par\end{center}
Sélectionnez le seuil aval (SeuilPalplanche) et cliquez sur \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/edit.png"} pour modifier les lois de cet ouvrage.
Vous pouvez alors essayer de modifier la cote du seuil.
Lancez le calcul en exécutant le programme pour plusieurs hauteurs de seuil (dont celle initiale de référence) avec chacune des trois crues proposées en condition amont.
\begin{remark}
Exportez les données obtenues en fonction du PK pour 2 ou 3 hauteurs de seuil.
Sur quelle distance le seuil aval influence-t-il la hauteur d'eau ?
Est-ce suffisant pour limiter la hauteur d'eau au niveau du pont de l'A2 ($PK \approx 33000$\,m) ?
\end{remark}
\pagebreak{}
\section{Second scénario d'aménagement : élargissement du lit moyen}
Ce scénario d'aménagement consiste à essayer d’augmenter le laminage en créant un lit moyen en rive droite entre les PKs 32 015 et 33 920\,m. Pour rappel, cette localisation est imposée pour des raisons de disponibilité des terrains et on ne peut pas envisager une largeur du lit moyen supérieure à 50 mètres.
\begin{remark}
Pourquoi élargir le lit moyen peut-il avoir un effet sur le niveau d'eau durant la crue ?
\end{remark}
Pour élargir le lit moyen, la géométrie doit être modifiée.
Il est judicieux d'enregistrer votre étude sous un autre nom avant de procéder à ces modifications (cliquez sur \texttt{[Fichier] => [Sauvegarder sous]}).
Vous aurez un certain nombre de sections à modifier. Pour limiter leur nombre, le plus simple est de repartir de la géométrie initiale (avant maillage) avant de modifier les transects et de mailler à nouveau après les modifications.
Vous pouvez supprimer les sections interpolées (notées interpol\textit{i}) en les sélectionnant dans la fenêtre \textit{Géométrie} et en appuyant sur le bouton \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/del.png}.
Cliquez sur \texttt{[Géométrie] => [Modifier la géométrie]} ou sur l'icône \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/geometry.png} pour définir la géométrie du bief.
Sélectionnez la section en travers que vous souhaitez modifier.
Vous pouvez l'éditer en cliquant sur l'icône \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/edit.png"}.
S'ouvre alors la fenêtre suivante :
\begin{center}
\includegraphics[width=15cm]{img/modif_profil_en_travers.png}
\par\end{center}
En appuyant sur \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/add.png"} vous pourrez ajouter un point sur votre profil en travers que vous pourrez ensuite placer ou vous le souhaitez sur le profil grâce aux flèches \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/up.png"} ou \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/down.png"}.
Dans le cas présent, afin d'élargir le lit moyen de 50\,m, vous pourrez ajouter un point juste après le point qui correspond à la rive droite (rd) légèrement plus haut et 50\,m plus à droite (en $Y=61.5$\,m et $Z=20.1$\,m par exemple).
Il ne restera alors plus qu'à décaler tous les points suivants de 50\,m.
Vous devriez obtenir la géométrie suivante :
\begin{center}
\includegraphics[width=15cm]{img/modif_profil_en_travers2.png}
\par\end{center}
Vous pouvez appliquer cette méthode à l'ensemble des transects à élargir et lancer le calcul pour chacune des crues proposées avec ce nouvel aménagement.
\begin{remark}
Exportez les résultats obtenus pour la hauteur d'eau en fonction du PK pour ce nouveau scénario.
Quel est l'effet de cet aménagement sur la hauteur d'eau et sur quel secteur ?
Exportez également le débit en fonction du temps en quelques sections choisies.
Quel est l'effet de cet aménagement sur l'hydrogramme de crue ?
Peut-on s'attendre à ce résultat compte tenu du volume qu'il est possible de stocker en lit moyen et du volume total de la crue ?
\end{remark}
\pagebreak{}
\section{Troisième scénario d'aménagement : casier de stockage}
Ce troisième scénario consiste à faire baisser le débit dans la rivière en créant un déversement vers un casier de stockage en rive gauche juste en aval du pont de l'A2.
La surface de stockage disponible a été estimée à 42 ha pour une altitude moyenne du terrain naturel de 18\,m.
\begin{remark}
Quel volume d'eau ce réservoir peut-il stocker ?
Comment se compare-t-il au volume de la crue ?
Quel est alors l'effet attendu de cet ouvrage ?
\end{remark}
Pour modéliser ce scénario, il est nécessaire de dévier une part de l'écoulement pour le diriger vers un casier.
Il faut donc créer une difluence, soit modifier le réseau.
De nouveau, il est préférable d'enregistrer l'étude sous un autre nom avant de procéder à ces modifications.
Cliquez sur \texttt{[Réseau] => [Modifier le réseau]} ou sur l'icône \includegraphics[width=0.5cm]{img/network.png} pour modifier la structure de votre rivière.
Le réseau pour la configuration de référence ne comportait qu'un seul bief entre deux noeuds.
Pour ajouter un casier, il faut ajouter un noeud pour la diffluence, un noeud en amont du casier et un noeud en aval du casier.
Le casier ne peut en effet pas être en limite aval du modèle ni directement au niveau de la confluence.
Pour ajouter un noeud, cliquez sur \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/add.png} pour sélectionner l'outil ``d'addition'' et cliquez ensuite dans la fenêtre grise à l'endroit ou vous souhaitez ajouter un noeud.
De la même façon vous pourrez avec cet outil ajouter un bief entre deux noeuds en cliquant successivement sur l'un puis sur l'autre.
Vous pourrez alors créer un réseau tel que celui ci-dessous où DevLat est le noeud marquant la diffluence.
\begin{center}
\includegraphics[width=12cm]{img/reseau_casier.png}
\par\end{center}
Pour chacun des nouveau biefs crées, il vous faudra créer ou adapter la géométrie.
Deux exemples vous sont proposés ci-dessous pour les biefs amont et aval du casier.
\begin{center}
\includegraphics[width=10cm]{img/geom_am_casier.png}
\includegraphics[width=10cm]{img/geom_av_casier.png}
\par\end{center}
Vous noterez la présence d'un ouvrage sur le bief amont afin de pouvoir contrôler à partir de quelle hauteur d'eau on souhaite commencer le remplissage du casier.
Pour le bief principal constitué des deux biefs Crespin->DevLat et DevLat->SeuilAval, l'un d'eux porte la géométrie complète tandis que la géométrie de l'autre n'est pas définie.
Il vous faudra supprimer les sections dans l'un que vous implémenterez dans l'autre.
L'outil d'import de géométrie pourra vous aider.
Il faudra le cas échéant réimplémenter également les ouvrages.
Vous devrez ensuite implémenter le casier sur le noeud nommé casier. Cliquez sur \texttt{[Hydraulique] => [Casiers]}. Vous pouvez ajouter un casier en cliquant sur \includegraphics[width=0.5cm]{../../../src/View/ui/ressources/add.png}. Vous devrez ensuite configurer le casier en cliquant sur l'icône \includegraphics[width=0.5cm]{"../../../src/View/ui/ressources/edit.png"}. Pour chaque altitude, vous pouvez définir l'aire de stockage (en ha). Vous pourrez ainsi configurer votre casier de la façon suivante :
\begin{center}
\includegraphics[width=10cm]{img/Casier.png}
\par\end{center}
Lancez le calcul pour chacune des crues proposées avec ce nouvel aménagement.
\begin{remark}
Exportez les résultats obtenus pour la hauteur d'eau en fonction du PK pour ce nouveau scénario.
Quel est l'effet de cet aménagement sur la hauteur d'eau et sur quel secteur ?
Exportez également le débit en fonction du temps en quelques sections choisies.
Quel est l'effet de cet aménagement sur l'hydrogramme de crue ?
Comparer les crues centenale et décennale : comment l'ouvrage sur le bief amont impacte-t-il les hydrogrammes ?
Vos résultats sont-ils cohérent avec vos premières estimations ?
\end{remark}
\section{Conclusion}
\`A l'aide de la modélisation numérique du cours d'eau de l'Hogneau, vous avez pu comparer l'efficacité de 3 scenarii d'aménagement sur une crue historique, une crue centenale et une crue décennale.
\begin{remark}
Quel aménagement jugez-vous le plus efficace ?
Quels éléments vous ont apporté la modélisation ?
Que proposeriez-vous à la collectivité locale ?
\end{remark}
A travers cet exemple, avez pris en main l'outil PamHyr avec le code de calcul MAGE.
\pagebreak{}
\end{document}
@@ -4,3 +4,5 @@ pdflatex -no-shell-escape step-by-step.tex
pdflatex -no-shell-escape step-by-step.tex
pdflatex -no-shell-escape pas-a-pas.tex
pdflatex -no-shell-escape pas-a-pas.tex
pdflatex -no-shell-escape Tuto-2-fr.tex
pdflatex -no-shell-escape Tuto-2-fr.tex
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

File renamed without changes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

File renamed without changes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

File renamed without changes.
File renamed without changes.
File renamed without changes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

File renamed without changes.
@@ -101,7 +101,7 @@ Authors : & Pierre-Antoine Rouby & pierre-antoine.rouby@inrae.fr\tabularnewline
\section{Install Pamhyr2}
Pamhyr2 can be downloaded from \url{https://gitlab.irstea.fr/theophile.terraz/pamhyr}.
Pamhyr2 can be downloaded from \url{https://gitlab.com/pamhyr/pamhyr2}.
\begin{center}
\includegraphics[width=15cm]{img/dl.png}
\par\end{center}
Binary file not shown.
File renamed without changes.
@@ -0,0 +1,235 @@
# Exported from Pamhyr2
0 1 0 37 0.000000 p1013
0.0000 0.0000 14.0000
0.0000 0.0134 12.9933
0.0000 0.9213 12.5393
0.0000 1.8292 12.0854
0.0000 2.7370 11.6315
0.0000 3.6449 11.1775
0.0000 4.5528 10.7236
0.0000 5.4607 10.2697
0.0000 6.3685 9.8157
0.0000 7.2764 9.3618
0.0000 8.1843 8.9079
0.0000 9.0921 8.4539
0.0000 10.0000 8.0000 FD
0.0000 10.8333 8.0000
0.0000 11.6667 8.0000
0.0000 12.5000 8.0000
0.0000 13.3333 8.0000
0.0000 14.1667 8.0000
0.0000 15.0000 8.0000
0.0000 15.8333 8.0000
0.0000 16.6667 8.0000
0.0000 17.5000 8.0000
0.0000 18.3333 8.0000
0.0000 19.1667 8.0000
0.0000 20.0000 8.0000 FG
0.0000 20.9079 8.4539
0.0000 21.8157 8.9079
0.0000 22.7236 9.3618
0.0000 23.6315 9.8157
0.0000 24.5393 10.2697
0.0000 25.4472 10.7236
0.0000 26.3551 11.1775
0.0000 27.2630 11.6315
0.0000 28.1708 12.0854
0.0000 29.0787 12.5393
0.0000 29.9866 12.9933
0.0000 30.0000 14.0000
999.9990 999.9990 999.9990
1 2 0 37 350.000000 p1025
350.0000 0.0000 13.6500
350.0000 0.0134 12.6433
350.0000 0.9213 12.1893
350.0000 1.8292 11.7354
350.0000 2.7370 11.2815
350.0000 3.6449 10.8275
350.0000 4.5528 10.3736
350.0000 5.4607 9.9197
350.0000 6.3685 9.4657
350.0000 7.2764 9.0118
350.0000 8.1843 8.5579
350.0000 9.0921 8.1039
350.0000 10.0000 7.6500 FD
350.0000 10.8333 7.6500
350.0000 11.6667 7.6500
350.0000 12.5000 7.6500
350.0000 13.3333 7.6500
350.0000 14.1667 7.6500
350.0000 15.0000 7.6500
350.0000 15.8333 7.6500
350.0000 16.6667 7.6500
350.0000 17.5000 7.6500
350.0000 18.3333 7.6500
350.0000 19.1667 7.6500
350.0000 20.0000 7.6500 FG
350.0000 20.9079 8.1039
350.0000 21.8157 8.5579
350.0000 22.7236 9.0118
350.0000 23.6315 9.4657
350.0000 24.5393 9.9197
350.0000 25.4472 10.3736
350.0000 26.3551 10.8275
350.0000 27.2630 11.2815
350.0000 28.1708 11.7354
350.0000 29.0787 12.1893
350.0000 29.9866 12.6433
350.0000 30.0000 13.6500
999.9990 999.9990 999.9990
2 3 0 37 370.000000 p1026
370.0000 0.0000 13.6300
370.0000 0.0134 12.6233
370.0000 0.9213 12.1693
370.0000 1.8292 11.7154
370.0000 2.7370 11.2615
370.0000 3.6449 10.8075
370.0000 4.5528 10.3536
370.0000 5.4607 9.8997
370.0000 6.3685 9.4457
370.0000 7.2764 8.9918
370.0000 8.1843 8.5379
370.0000 9.0921 8.0839
370.0000 10.0000 7.6300 FD
370.0000 11.2500 7.6300
370.0000 12.5000 7.6300
370.0000 13.7500 7.6300
370.0000 15.0000 7.6300
370.0000 16.2500 7.6300
370.0000 17.5000 7.6300
370.0000 18.7500 7.6300
370.0000 20.0000 7.6300
370.0000 21.2500 7.6300
370.0000 22.5000 7.6300
370.0000 23.7500 7.6300
370.0000 25.0000 7.6300 FG
370.0000 25.9079 8.0839
370.0000 26.8157 8.5379
370.0000 27.7236 8.9918
370.0000 28.6315 9.4457
370.0000 29.5393 9.8997
370.0000 30.4472 10.3536
370.0000 31.3551 10.8075
370.0000 32.2630 11.2615
370.0000 33.1708 11.7154
370.0000 34.0787 12.1693
370.0000 34.9866 12.6233
370.0000 35.0000 13.6300
999.9990 999.9990 999.9990
3 4 0 37 630.000000 p1035
630.0000 0.0000 13.3700
630.0000 0.0134 12.3633
630.0000 0.9213 11.9093
630.0000 1.8292 11.4554
630.0000 2.7370 11.0015
630.0000 3.6449 10.5475
630.0000 4.5528 10.0936
630.0000 5.4607 9.6397
630.0000 6.3685 9.1857
630.0000 7.2764 8.7318
630.0000 8.1843 8.2779
630.0000 9.0921 7.8239
630.0000 10.0000 7.3700 FD
630.0000 11.2500 7.3700
630.0000 12.5000 7.3700
630.0000 13.7500 7.3700
630.0000 15.0000 7.3700
630.0000 16.2500 7.3700
630.0000 17.5000 7.3700
630.0000 18.7500 7.3700
630.0000 20.0000 7.3700
630.0000 21.2500 7.3700
630.0000 22.5000 7.3700
630.0000 23.7500 7.3700
630.0000 25.0000 7.3700 FG
630.0000 25.9079 7.8239
630.0000 26.8157 8.2779
630.0000 27.7236 8.7318
630.0000 28.6315 9.1857
630.0000 29.5393 9.6397
630.0000 30.4472 10.0936
630.0000 31.3551 10.5475
630.0000 32.2630 11.0015
630.0000 33.1708 11.4554
630.0000 34.0787 11.9093
630.0000 34.9866 12.3633
630.0000 35.0000 13.3700
999.9990 999.9990 999.9990
4 5 0 37 650.000000 p1036
650.0000 0.0000 13.3500
650.0000 0.0134 12.3433
650.0000 0.9213 11.8893
650.0000 1.8292 11.4354
650.0000 2.7370 10.9815
650.0000 3.6449 10.5275
650.0000 4.5528 10.0736
650.0000 5.4607 9.6197
650.0000 6.3685 9.1657
650.0000 7.2764 8.7118
650.0000 8.1843 8.2579
650.0000 9.0921 7.8039
650.0000 10.0000 7.3500 FD
650.0000 10.8333 7.3500
650.0000 11.6667 7.3500
650.0000 12.5000 7.3500
650.0000 13.3333 7.3500
650.0000 14.1667 7.3500
650.0000 15.0000 7.3500
650.0000 15.8333 7.3500
650.0000 16.6667 7.3500
650.0000 17.5000 7.3500
650.0000 18.3333 7.3500
650.0000 19.1667 7.3500
650.0000 20.0000 7.3500 FG
650.0000 20.9079 7.8039
650.0000 21.8157 8.2579
650.0000 22.7236 8.7118
650.0000 23.6315 9.1657
650.0000 24.5393 9.6197
650.0000 25.4472 10.0736
650.0000 26.3551 10.5275
650.0000 27.2630 10.9815
650.0000 28.1708 11.4354
650.0000 29.0787 11.8893
650.0000 29.9866 12.3433
650.0000 30.0000 13.3500
999.9990 999.9990 999.9990
5 6 0 37 1000.000000 p1048
1000.0000 0.0000 13.0000
1000.0000 0.0134 11.9933
1000.0000 0.9213 11.5393
1000.0000 1.8292 11.0854
1000.0000 2.7370 10.6315
1000.0000 3.6449 10.1775
1000.0000 4.5528 9.7236
1000.0000 5.4607 9.2697
1000.0000 6.3685 8.8157
1000.0000 7.2764 8.3618
1000.0000 8.1843 7.9079
1000.0000 9.0921 7.4539
1000.0000 10.0000 7.0000 FD
1000.0000 10.8333 7.0000
1000.0000 11.6667 7.0000
1000.0000 12.5000 7.0000
1000.0000 13.3333 7.0000
1000.0000 14.1667 7.0000
1000.0000 15.0000 7.0000
1000.0000 15.8333 7.0000
1000.0000 16.6667 7.0000
1000.0000 17.5000 7.0000
1000.0000 18.3333 7.0000
1000.0000 19.1667 7.0000
1000.0000 20.0000 7.0000 FG
1000.0000 20.9079 7.4539
1000.0000 21.8157 7.9079
1000.0000 22.7236 8.3618
1000.0000 23.6315 8.8157
1000.0000 24.5393 9.2697
1000.0000 25.4472 9.7236
1000.0000 26.3551 10.1775
1000.0000 27.2630 10.6315
1000.0000 28.1708 11.0854
1000.0000 29.0787 11.5393
1000.0000 29.9866 11.9933
1000.0000 30.0000 13.0000
999.9990 999.9990 999.9990
@@ -0,0 +1,235 @@
# Exported from Pamhyr2
0 1 0 37 0.000000 p1210
0.0000 0.0000 14.0000
0.0000 0.0134 12.9933
0.0000 0.9213 12.5393
0.0000 1.8292 12.0854
0.0000 2.7370 11.6315
0.0000 3.6449 11.1775
0.0000 4.5528 10.7236
0.0000 5.4607 10.2697
0.0000 6.3685 9.8157
0.0000 7.2764 9.3618
0.0000 8.1843 8.9079
0.0000 9.0921 8.4539
0.0000 10.0000 8.0000 FD
0.0000 10.8333 8.0000
0.0000 11.6667 8.0000
0.0000 12.5000 8.0000
0.0000 13.3333 8.0000
0.0000 14.1667 8.0000
0.0000 15.0000 8.0000
0.0000 15.8333 8.0000
0.0000 16.6667 8.0000
0.0000 17.5000 8.0000
0.0000 18.3333 8.0000
0.0000 19.1667 8.0000
0.0000 20.0000 8.0000 FG
0.0000 20.9079 8.4539
0.0000 21.8157 8.9079
0.0000 22.7236 9.3618
0.0000 23.6315 9.8157
0.0000 24.5393 10.2697
0.0000 25.4472 10.7236
0.0000 26.3551 11.1775
0.0000 27.2630 11.6315
0.0000 28.1708 12.0854
0.0000 29.0787 12.5393
0.0000 29.9866 12.9933
0.0000 30.0000 14.0000
999.9990 999.9990 999.9990
1 2 0 37 300.000000 p1225
300.0000 0.0000 13.7000
300.0000 0.0134 12.6933
300.0000 0.9213 12.2393
300.0000 1.8292 11.7854
300.0000 2.7370 11.3315
300.0000 3.6449 10.8775
300.0000 4.5528 10.4236
300.0000 5.4607 9.9697
300.0000 6.3685 9.5157
300.0000 7.2764 9.0618
300.0000 8.1843 8.6079
300.0000 9.0921 8.1539
300.0000 10.0000 7.7000 FD
300.0000 10.8333 7.7000
300.0000 11.6667 7.7000
300.0000 12.5000 7.7000
300.0000 13.3333 7.7000
300.0000 14.1667 7.7000
300.0000 15.0000 7.7000
300.0000 15.8333 7.7000
300.0000 16.6667 7.7000
300.0000 17.5000 7.7000
300.0000 18.3333 7.7000
300.0000 19.1667 7.7000
300.0000 20.0000 7.7000 FG
300.0000 20.9079 8.1539
300.0000 21.8157 8.6079
300.0000 22.7236 9.0618
300.0000 23.6315 9.5157
300.0000 24.5393 9.9697
300.0000 25.4472 10.4236
300.0000 26.3551 10.8775
300.0000 27.2630 11.3315
300.0000 28.1708 11.7854
300.0000 29.0787 12.2393
300.0000 29.9866 12.6933
300.0000 30.0000 13.7000
999.9990 999.9990 999.9990
2 3 0 37 310.000000 p1226
310.0000 0.0000 13.1900
310.0000 0.0134 12.1833
310.0000 0.9213 11.7293
310.0000 1.8292 11.2754
310.0000 2.7370 10.8215
310.0000 3.6449 10.3675
310.0000 4.5528 9.9136
310.0000 5.4607 9.4597
310.0000 6.3685 9.0057
310.0000 7.2764 8.5518
310.0000 8.1843 8.0979
310.0000 9.0921 7.6439
310.0000 10.0000 7.1900 FD
310.0000 10.8333 7.1900
310.0000 11.6667 7.1900
310.0000 12.5000 7.1900
310.0000 13.3333 7.1900
310.0000 14.1667 7.1900
310.0000 15.0000 7.1900
310.0000 15.8333 7.1900
310.0000 16.6667 7.1900
310.0000 17.5000 7.1900
310.0000 18.3333 7.1900
310.0000 19.1667 7.1900
310.0000 20.0000 7.1900 FG
310.0000 20.9079 7.6439
310.0000 21.8157 8.0979
310.0000 22.7236 8.5518
310.0000 23.6315 9.0057
310.0000 24.5393 9.4597
310.0000 25.4472 9.9136
310.0000 26.3551 10.3675
310.0000 27.2630 10.8215
310.0000 28.1708 11.2754
310.0000 29.0787 11.7293
310.0000 29.9866 12.1833
310.0000 30.0000 13.1900
999.9990 999.9990 999.9990
3 4 0 37 390.000000 p1230
390.0000 0.0000 13.1900
390.0000 0.0134 12.1833
390.0000 0.9213 11.7293
390.0000 1.8292 11.2754
390.0000 2.7370 10.8215
390.0000 3.6449 10.3675
390.0000 4.5528 9.9136
390.0000 5.4607 9.4597
390.0000 6.3685 9.0057
390.0000 7.2764 8.5518
390.0000 8.1843 8.0979
390.0000 9.0921 7.6439
390.0000 10.0000 7.1900 FD
390.0000 10.8333 7.1900
390.0000 11.6667 7.1900
390.0000 12.5000 7.1900
390.0000 13.3333 7.1900
390.0000 14.1667 7.1900
390.0000 15.0000 7.1900
390.0000 15.8333 7.1900
390.0000 16.6667 7.1900
390.0000 17.5000 7.1900
390.0000 18.3333 7.1900
390.0000 19.1667 7.1900
390.0000 20.0000 7.1900 FG
390.0000 20.9079 7.6439
390.0000 21.8157 8.0979
390.0000 22.7236 8.5518
390.0000 23.6315 9.0057
390.0000 24.5393 9.4597
390.0000 25.4472 9.9136
390.0000 26.3551 10.3675
390.0000 27.2630 10.8215
390.0000 28.1708 11.2754
390.0000 29.0787 11.7293
390.0000 29.9866 12.1833
390.0000 30.0000 13.1900
999.9990 999.9990 999.9990
4 5 0 37 400.000000 p1231
400.0000 0.0000 13.6000
400.0000 0.0134 12.5933
400.0000 0.9213 12.1393
400.0000 1.8292 11.6854
400.0000 2.7370 11.2315
400.0000 3.6449 10.7775
400.0000 4.5528 10.3236
400.0000 5.4607 9.8697
400.0000 6.3685 9.4157
400.0000 7.2764 8.9618
400.0000 8.1843 8.5079
400.0000 9.0921 8.0539
400.0000 10.0000 7.6000 FD
400.0000 10.8333 7.6000
400.0000 11.6667 7.6000
400.0000 12.5000 7.6000
400.0000 13.3333 7.6000
400.0000 14.1667 7.6000
400.0000 15.0000 7.6000
400.0000 15.8333 7.6000
400.0000 16.6667 7.6000
400.0000 17.5000 7.6000
400.0000 18.3333 7.6000
400.0000 19.1667 7.6000
400.0000 20.0000 7.6000 FG
400.0000 20.9079 8.0539
400.0000 21.8157 8.5079
400.0000 22.7236 8.9618
400.0000 23.6315 9.4157
400.0000 24.5393 9.8697
400.0000 25.4472 10.3236
400.0000 26.3551 10.7775
400.0000 27.2630 11.2315
400.0000 28.1708 11.6854
400.0000 29.0787 12.1393
400.0000 29.9866 12.5933
400.0000 30.0000 13.6000
999.9990 999.9990 999.9990
5 6 0 37 1000.000000 p1261
1000.0000 0.0000 13.0000
1000.0000 0.0134 11.9933
1000.0000 0.9213 11.5393
1000.0000 1.8292 11.0854
1000.0000 2.7370 10.6315
1000.0000 3.6449 10.1775
1000.0000 4.5528 9.7236
1000.0000 5.4607 9.2697
1000.0000 6.3685 8.8157
1000.0000 7.2764 8.3618
1000.0000 8.1843 7.9079
1000.0000 9.0921 7.4539
1000.0000 10.0000 7.0000 FD
1000.0000 10.8333 7.0000
1000.0000 11.6667 7.0000
1000.0000 12.5000 7.0000
1000.0000 13.3333 7.0000
1000.0000 14.1667 7.0000
1000.0000 15.0000 7.0000
1000.0000 15.8333 7.0000
1000.0000 16.6667 7.0000
1000.0000 17.5000 7.0000
1000.0000 18.3333 7.0000
1000.0000 19.1667 7.0000
1000.0000 20.0000 7.0000 FG
1000.0000 20.9079 7.4539
1000.0000 21.8157 7.9079
1000.0000 22.7236 8.3618
1000.0000 23.6315 8.8157
1000.0000 24.5393 9.2697
1000.0000 25.4472 9.7236
1000.0000 26.3551 10.1775
1000.0000 27.2630 10.6315
1000.0000 28.1708 11.0854
1000.0000 29.0787 11.5393
1000.0000 29.9866 11.9933
1000.0000 30.0000 13.0000
999.9990 999.9990 999.9990
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
Binary file not shown.
+2
View File
@@ -12,3 +12,5 @@ shapely>=2.0.1
lxml>=4.9.3
platformdirs>=4.2.0
pyshp>=2.3.1
rasterio==1.3.11
#fortranformat==2.0.3
Executable
+3
View File
@@ -0,0 +1,3 @@
#!/usr/bin/env bash
guix shell --manifest=manifest.scm -- python3 ./src/pamhyr.py $@
+23
View File
@@ -0,0 +1,23 @@
;; manifest.scm -- Pamhyr2 Guix manifest
;; Copyright (C) 2025 INRAE
;;
;; This program is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <https://www.gnu.org/licenses/>.
(specifications->manifest
(list "python" "python-platformdirs" "python-lxml"
"python-pyqt@5" "python-pyqt5-sip"
"python-pyqtgraph" "python-qscintilla"
"python-numpy@1" "python-shapely" "python-pyshp"
"python-matplotlib" "python-colorama"
"python-rasterio"))
+18 -8
View File
@@ -68,14 +68,24 @@ copy /y ..\doc\dev\images\* pamhyr\doc\images
copy /y ..\doc\images\* pamhyr\doc\images
rem Tuto
mkdir pamhyr\doc\Tuto1\
mkdir pamhyr\doc\Tuto1\data
copy /y ..\doc\users\Tuto1\Hogneau_Engees2022.pdf pamhyr\doc\Tuto1\Hogneau_Engees2022.pdf
copy /y ..\doc\users\Tuto1\step-by-step.pdf pamhyr\doc\Tuto1\Tuto1-en.pdf
copy /y ..\doc\users\Tuto1\pas-a-pas.pdf pamhyr\doc\Tuto1\Tuto1-fr.pdf
copy /y ..\doc\users\Tuto1\*.pamhyr pamhyr\doc\Tuto1\
copy /y ..\doc\users\Tuto1\data\* pamhyr\doc\Tuto1\data\
mkdir pamhyr\doc\TP_Hydraulique_Hogneau\
mkdir pamhyr\doc\TP_Hydraulique_Hogneau\data
copy /y ..\doc\users\TP_Hydraulique_Hogneau\Hogneau_Engees2022.pdf pamhyr\doc\TP_Hydraulique_Hogneau\Hogneau_Engees2022.pdf
copy /y ..\doc\users\TP_Hydraulique_Hogneau\step-by-step.pdf pamhyr\doc\TP_Hydraulique_Hogneau\Tuto1-en.pdf
copy /y ..\doc\users\TP_Hydraulique_Hogneau\pas-a-pas.pdf pamhyr\doc\TP_Hydraulique_Hogneau\Tuto1-fr.pdf
copy /y ..\doc\users\TP_Hydraulique_Hogneau\Tuto-2-fr.pdf pamhyr\doc\TP_Hydraulique_Hogneau\Tuto2-fr.pdf
copy /y ..\doc\users\TP_Hydraulique_Hogneau\*.pamhyr pamhyr\doc\TP_Hydraulique_Hogneau\
copy /y ..\doc\users\TP_Hydraulique_Hogneau\data\* pamhyr\doc\TP_Hydraulique_Hogneau\data\
rem TP charriage
mkdir pamhyr\doc\TP_charriage
copy /y ..\doc\users\TP_charriage\ pamhyr\doc\TP_charriage
mkdir pamhyr\doc\TP_charriage\Donnees_TP_Pamhyr2_charriage
copy /y ..\doc\users\TP_charriage\TP_Pamhyr2_charriage.pdf pamhyr\doc\TP_charriage\
copy /y ..\doc\users\TP_charriage\Donnees_TP_Pamhyr2_charriage\* pamhyr\doc\TP_charriage\Donnees_TP_Pamhyr2_charriage\
rem TP AdisTS
mkdir pamhyr\doc\TP_AdisTS_Vieux_Rhone\
mkdir pamhyr\doc\TP_AdisTS_Vieux_Rhone\data
copy /y ..\doc\users\TP_AdisTS_Vieux_Rhone\*.pdf pamhyr\doc\TP_AdisTS_Vieux_Rhone\
copy /y ..\doc\users\TP_AdisTS_Vieux_Rhone\*.pamhyr pamhyr\doc\TP_AdisTS_Vieux_Rhone\
copy /y ..\doc\users\TP_AdisTS_Vieux_Rhone\data\* pamhyr\doc\TP_AdisTS_Vieux_Rhone\data\
+2
View File
@@ -12,3 +12,5 @@ shapely>=2.0.1
lxml>=4.9.3
platformdirs>=4.2.0
pyshp>=2.3.1
rasterio==1.3.11
#fortranformat==2.0.3
+1 -1
View File
@@ -1,5 +1,5 @@
# Adists.py -- Pamhyr study checkers
# Copyright (C) 2023-2024 INRAE
# Copyright (C) 2023-2025 INRAE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
+1 -1
View File
@@ -1,5 +1,5 @@
# Checker.py -- Pamhyr abstract checker class
# Copyright (C) 2023-2024 INRAE
# Copyright (C) 2023-2025 INRAE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
+1 -1
View File
@@ -1,5 +1,5 @@
# Mage.py -- Pamhyr MAGE checkers
# Copyright (C) 2023-2024 INRAE
# Copyright (C) 2023-2025 INRAE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
Loaded 100 of 455 files, more files were not shown because too many files have changed in this diff. Show more