wolfhece 2.1.128__py3-none-any.whl → 2.2.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. wolfhece/PyDraw.py +109 -46
  2. wolfhece/PyGui.py +3 -0
  3. wolfhece/PyGuiHydrology.py +24 -24
  4. wolfhece/PyPalette.py +27 -11
  5. wolfhece/PyParams.py +5 -1
  6. wolfhece/PyVertexvectors.py +52 -7
  7. wolfhece/Results2DGPU.py +17 -0
  8. wolfhece/acceptability/acceptability_gui.py +29 -18
  9. wolfhece/acceptability/func.py +23 -21
  10. wolfhece/apps/version.py +2 -2
  11. wolfhece/eikonal.py +1 -1
  12. wolfhece/hydrology/Catchment.py +113 -12
  13. wolfhece/hydrology/Comparison.py +54 -52
  14. wolfhece/hydrology/Optimisation.py +309 -178
  15. wolfhece/hydrology/PostProcessHydrology.py +6 -3
  16. wolfhece/hydrology/RetentionBasin.py +21 -14
  17. wolfhece/hydrology/SubBasin.py +128 -12
  18. wolfhece/hydrology/constant.py +3 -0
  19. wolfhece/hydrology/cst_exchanges.py +364 -38
  20. wolfhece/hydrology/plot_hydrology.py +34 -18
  21. wolfhece/hydrology/read.py +16 -6
  22. wolfhece/lagrangian/particle_system_ui.py +1 -1
  23. wolfhece/lagrangian/particles.py +1 -1
  24. wolfhece/lazviewer/processing/estimate_normals/estimate_normals.cp310-win_amd64.pyd +0 -0
  25. wolfhece/lazviewer/vfuncsdir/vfuncs.cp310-win_amd64.pyd +0 -0
  26. wolfhece/lazviewer/viewer/viewer.exe +0 -0
  27. wolfhece/lazviewer/viewer/viewer_np1_23_5.exe +0 -0
  28. wolfhece/libs/WolfDll.dll +0 -0
  29. wolfhece/libs/Wolf_tools.dll +0 -0
  30. wolfhece/libs/get_infos.cp310-win_amd64.pyd +0 -0
  31. wolfhece/libs/verify_wolf.cp310-win_amd64.pyd +0 -0
  32. wolfhece/libs/wolfogl.cp310-win_amd64.pyd +0 -0
  33. wolfhece/radar/wolfradar.py +75 -22
  34. wolfhece/shapes/__init__.py +0 -0
  35. wolfhece/shapes/circle.py +335 -0
  36. wolfhece/tools2d_dll.py +359 -0
  37. wolfhece/wolf_array.py +3 -2
  38. wolfhece/wolfresults_2D.py +162 -33
  39. {wolfhece-2.1.128.dist-info → wolfhece-2.2.1.dist-info}/METADATA +15 -9
  40. {wolfhece-2.1.128.dist-info → wolfhece-2.2.1.dist-info}/RECORD +43 -39
  41. wolfhece/libs/wolfpy.cp310-win_amd64.pyd +0 -0
  42. {wolfhece-2.1.128.dist-info → wolfhece-2.2.1.dist-info}/WHEEL +0 -0
  43. {wolfhece-2.1.128.dist-info → wolfhece-2.2.1.dist-info}/entry_points.txt +0 -0
  44. {wolfhece-2.1.128.dist-info → wolfhece-2.2.1.dist-info}/top_level.txt +0 -0
@@ -9,49 +9,109 @@ copying or distribution of this file, via any medium, is strictly prohibited.
9
9
  """
10
10
 
11
11
  from . import constant as cst
12
+ from enum import Enum
12
13
  # Constants representing the exchanges - Fortran
13
14
 
14
- exchange_parameters_VHM_Umax = 20 #Paramètre modèle VHM
15
- exchange_parameters_VHM_Uevap = 21 #Paramètre modèle VHM
16
- exchange_parameters_VHM_au1 = 22 #Paramètre modèle VHM
17
- exchange_parameters_VHM_au2 = 23 #Paramètre modèle VHM
18
- exchange_parameters_VHM_au3 = 24 #Paramètre modèle VHM
19
- exchange_parameters_VHM_aof1 = 25 #Paramètre modèle VHM
20
- exchange_parameters_VHM_aof2 = 26 #Paramètre modèle VHM
21
- exchange_parameters_VHM_aif1 = 27 #Paramètre modèle VHM
22
- exchange_parameters_VHM_aif2 = 28 #Paramètre modèle VHM
23
- exchange_parameters_VHM_kof = 29 #Paramètre modèle VHM
24
- exchange_parameters_VHM_kif = 30 #Paramètre modèle VHM
25
- exchange_parameters_VHM_kbf = 31 #Paramètre modèle VHM
26
- exchange_parameters_GR4_x1 = 32 #Paramètre modèle GR4
27
- exchange_parameters_GR4_x2 = 33 #Paramètre modèle GR4
28
- exchange_parameters_GR4_x3 = 34 #Paramètre modèle GR4
29
- exchange_parameters_GR4_x4 = 35 #Paramètre modèle GR4
30
- exchange_parameters_VHM_UH_kif = 36 #Paramètre modèle VHM_UH
31
- exchange_parameters_VHM_UH_kbf = 37 #Paramètre modèle VHM_UH
32
- exchange_parameters_Froude_min_riv = 101 #Paramètre modèle VHM_UH méthode de Froude
33
- exchange_parameters_Froude_max_riv = 102 #Paramètre modèle VHM_UH méthode de Froude
34
- exchange_parameters_Froude_min_bas = 103 #Paramètre modèle VHM_UH méthode de Froude
35
- exchange_parameters_Froude_max_bas = 104 #Paramètre modèle VHM_UH méthode de Froude
36
- exchange_parameters_Froude_discharge = 105 #Paramètre modèle VHM_UH méthode de Froude
37
- exchange_parameters_Nash_pt = 106 #Paramètre modèle VHM_UH méthode de Nash (peak time)
38
- exchange_parameters_Nash_nb = 107 #Paramètre modèle VHM_UH méthode de Nash (nb reservoirs)
39
- exchange_parameters_AsymTri_totTime = 108 #Paramètre modèle VHM_UH méthode de HU triangulaire asymétrique (temps total)
40
- exchange_parameters_AsymTri_pt = 109 #Paramètre modèle VHM_UH méthode de HU triangulaire asymétrique (peak time)
15
+ exchange_parameters_VHM_Umax = 20 #Paramètre modèle VHM
16
+ exchange_parameters_VHM_Uevap = 21 #Paramètre modèle VHM
17
+ exchange_parameters_VHM_au1 = 22 #Paramètre modèle VHM
18
+ exchange_parameters_VHM_au2 = 23 #Paramètre modèle VHM
19
+ exchange_parameters_VHM_au3 = 24 #Paramètre modèle VHM
20
+ exchange_parameters_VHM_aof1 = 25 #Paramètre modèle VHM
21
+ exchange_parameters_VHM_aof2 = 26 #Paramètre modèle VHM
22
+ exchange_parameters_VHM_aif1 = 27 #Paramètre modèle VHM
23
+ exchange_parameters_VHM_aif2 = 28 #Paramètre modèle VHM
24
+ exchange_parameters_VHM_kof = 29 #Paramètre modèle VHM
25
+ exchange_parameters_VHM_kif = 30 #Paramètre modèle VHM
26
+ exchange_parameters_VHM_kbf = 31 #Paramètre modèle VHM
27
+ exchange_parameters_GR4_x1 = 32 #Paramètre modèle GR4
28
+ exchange_parameters_GR4_x2 = 33 #Paramètre modèle GR4
29
+ exchange_parameters_GR4_x3 = 34 #Paramètre modèle GR4
30
+ exchange_parameters_GR4_x4 = 35 #Paramètre modèle GR4
31
+ exchange_parameters_VHM_UH_kif = 36 #Paramètre modèle VHM_UH
32
+ exchange_parameters_VHM_UH_kbf = 37 #Paramètre modèle VHM_UH
41
33
 
42
- exchange_parameters_Dist_RS_Hs = 110 #Paramètre modèle distribué Réservoir de stockage
43
- exchange_parameters_Dist_RS_TS = 111 #Paramètre modèle distribué Réservoir de stockage
44
- exchange_parameters_Dist_Soil_Umax = 112 #Paramètre modèle distribué Soil
45
- exchange_parameters_Dist_Soil_TSPAN = 113 #Paramètre modèle distribué Soil
46
- exchange_parameters_Dist_Horton_F0 = 114 #Paramètre modèle distribué Horton
47
- exchange_parameters_Dist_Horton_FC = 115 #Paramètre modèle distribué Horton
48
- exchange_parameters_Dist_Horton_K = 116 #Paramètre modèle distribué Horton
49
- exchange_parameters_Dist_kif = 117 #Paramètre modèle distribué pour réservoir linéaire couche épidermique (if)
50
- exchange_parameters_Dist_qlif = 118 #Paramètre modèle distribué pour réservoir linéaire couche épidermique (if)
34
+ exchange_parameters_HBV_FC = 50 #Paramètre modèle HBV
35
+ exchange_parameters_HBV_beta = 51 #Paramètre modèle HBV
36
+ exchange_parameters_HBV_PWP = 52 #Paramètre modèle HBV
37
+ exchange_parameters_HBV_SUmax = 53 #Paramètre modèle HBV
38
+ exchange_parameters_HBV_kr = 54 #Paramètre modèle HBV
39
+ exchange_parameters_HBV_kif = 55 #Paramètre modèle HBV
40
+ exchange_parameters_HBV_kperc = 56 #Paramètre modèle HBV
41
+ exchange_parameters_HBV_kbf = 57 #Paramètre modèle HBV
42
+ exchange_parameters_HBV_CFLUX = 58 #Paramètre modèle HBV (HBV-96)
43
+ exchange_parameters_HBV_alpha = 59 #Paramètre modèle HBV (HBV-96)
44
+
45
+ exchange_parameters_SAC_M_UZ_TW = 60 #Paramètre modèle SAC-SMA (SACRAMENTO)
46
+ exchange_parameters_SAC_M_UZ_FW = 61 #Paramètre modèle SAC-SMA (SACRAMENTO)
47
+ exchange_parameters_SAC_M_LZ_TW = 62 #Paramètre modèle SAC-SMA (SACRAMENTO)
48
+ exchange_parameters_SAC_M_LZ_FP = 63 #Paramètre modèle SAC-SMA (SACRAMENTO)
49
+ exchange_parameters_SAC_M_LZ_FS = 64 #Paramètre modèle SAC-SMA (SACRAMENTO)
50
+ exchange_parameters_SAC_kif = 65 #Paramètre modèle SAC-SMA (SACRAMENTO)
51
+ exchange_parameters_SAC_kbf_fp = 66 #Paramètre modèle SAC-SMA (SACRAMENTO)
52
+ exchange_parameters_SAC_kbf_fs = 67 #Paramètre modèle SAC-SMA (SACRAMENTO)
53
+ exchange_parameters_SAC_zperc = 68 #Paramètre modèle SAC-SMA (SACRAMENTO)
54
+ exchange_parameters_SAC_rexp = 69 #Paramètre modèle SAC-SMA (SACRAMENTO)
55
+ exchange_parameters_SAC_rserv = 74 #Paramètre modèle SAC-SMA (SACRAMENTO)
56
+ exchange_parameters_SAC_pfree = 75 #Paramètre modèle SAC-SMA (SACRAMENTO)
57
+ exchange_parameters_SAC_side = 76 #Paramètre modèle SAC-SMA (SACRAMENTO)
58
+ exchange_parameters_SAC_riva = 77 #Paramètre modèle SAC-SMA (SACRAMENTO)
59
+ exchange_parameters_SAC_adimp = 78 #Paramètre modèle SAC-SMA (SACRAMENTO)
60
+ exchange_parameters_SAC_impv = 79 #Paramètre modèle SAC-SMA (SACRAMENTO)
61
+
62
+ exchange_parameters_NAM_UMAX = 82 #Paramètre modèle NAM
63
+ exchange_parameters_NAM_TOF = 83 #Paramètre modèle NAM
64
+ exchange_parameters_NAM_TIF = 84 #Paramètre modèle NAM
65
+ exchange_parameters_NAM_CQOF = 85 #Paramètre modèle NAM
66
+ exchange_parameters_NAM_CKIF = 86 #Paramètre modèle NAM
67
+ exchange_parameters_NAM_LMAX = 87 #Paramètre modèle NAM
68
+ exchange_parameters_NAM_TG = 88 #Paramètre modèle NAM
69
+ exchange_parameters_NAM_CK12 = 89 #Paramètre modèle NAM
70
+
71
+ exchange_parameters_NAM_CAREA = 94 #Paramètre modèle NAM
72
+ exchange_parameters_NAM_CKBF = 95 #Paramètre modèle NAM
73
+ exchange_parameters_NAM_GWLFL1 = 96 #Paramètre modèle NAM
74
+ exchange_parameters_NAM_GWLBF0 = 97 #Paramètre modèle NAM
75
+ exchange_parameters_NAM_SSIGMA = 98 #Paramètre modèle NAM
76
+
77
+ exchange_parameters_Froude_min_riv = 101 #Paramètre modèle VHM_UH méthode de Froude
78
+ exchange_parameters_Froude_max_riv = 102 #Paramètre modèle VHM_UH méthode de Froude
79
+ exchange_parameters_Froude_min_bas = 103 #Paramètre modèle VHM_UH méthode de Froude
80
+ exchange_parameters_Froude_max_bas = 104 #Paramètre modèle VHM_UH méthode de Froude
81
+ exchange_parameters_Froude_discharge = 105 #Paramètre modèle VHM_UH méthode de Froude
82
+ exchange_parameters_Nash_pt = 106 #Paramètre modèle VHM_UH méthode de Nash (peak time)
83
+ exchange_parameters_Nash_nb = 107 #Paramètre modèle VHM_UH méthode de Nash (nb reservoirs)
84
+ exchange_parameters_AsymTri_totTime = 108 #Paramètre modèle VHM_UH méthode de HU triangulaire asymétrique (temps total)
85
+ exchange_parameters_AsymTri_pt = 109 #Paramètre modèle VHM_UH méthode de HU triangulaire asymétrique (peak time)
86
+
87
+ exchange_parameters_Dist_RS_Hs = 110 #Paramètre modèle distribué Réservoir de stockage
88
+ exchange_parameters_Dist_RS_TS = 111 #Paramètre modèle distribué Réservoir de stockage
89
+ exchange_parameters_Dist_Soil_Umax = 112 #Paramètre modèle distribué Soil
90
+ exchange_parameters_Dist_Soil_TSPAN = 113 #Paramètre modèle distribué Soil
91
+ exchange_parameters_Dist_Horton_F0 = 114 #Paramètre modèle distribué Horton
92
+ exchange_parameters_Dist_Horton_FC = 115 #Paramètre modèle distribué Horton
93
+ exchange_parameters_Dist_Horton_K = 116 #Paramètre modèle distribué Horton
94
+ exchange_parameters_Dist_kif = 117 #Paramètre modèle distribué pour réservoir linéaire couche épidermique (if)
95
+ exchange_parameters_Dist_qlif = 118 #Paramètre modèle distribué pour réservoir linéaire couche épidermique (if)
51
96
 
52
97
 
53
98
  # Constants representing the exchanges - Python
54
- exchange_parameters_py_timeDelay = -11
99
+ exchange_parameters_py_timeDelay = -11
100
+
101
+ # All the keys of the param dictionary
102
+ class Type_Keys(Enum):
103
+ """
104
+ Enum to define the type of a parameter
105
+
106
+ Strings are also used by Fortran Code -- modify with care
107
+ """
108
+ Name = 'Integer_or_Float'
109
+ File = 'Integer'
110
+ Group = 'Logical'
111
+ Key = 'Float'
112
+ Unit = 'File'
113
+ Conv_factor = 'Convertion Factor'
114
+ Range = 'Range'
55
115
 
56
116
 
57
117
  # %% All model dictionnaries
@@ -246,8 +306,272 @@ UHDIST_LINBF["Parameters"][exchange_parameters_Froude_discharge]["Group"] = "Fro
246
306
  UHDIST_LINBF["Parameters"][exchange_parameters_Froude_discharge]["Key"] = "Discharge"
247
307
  UHDIST_LINBF["Parameters"][exchange_parameters_Froude_discharge]["Unit"] = "[m^3/s]"
248
308
 
309
+ HBV = {}
310
+ HBV["Nb"] = 10
311
+ HBV["Parameters"] = {}
312
+ HBV["Parameters"][exchange_parameters_HBV_FC] = {}
313
+ HBV["Parameters"][exchange_parameters_HBV_FC]["Name"] = "Fc"
314
+ HBV["Parameters"][exchange_parameters_HBV_FC]["File"] = "simul_soil.param"
315
+ HBV["Parameters"][exchange_parameters_HBV_FC]["Group"] = "Parameters"
316
+ HBV["Parameters"][exchange_parameters_HBV_FC]["Key"] = "Fc"
317
+ HBV["Parameters"][exchange_parameters_HBV_FC]["Unit"] = "[mm]"
318
+ HBV["Parameters"][exchange_parameters_HBV_FC]["Range"] = (50.0, 650.0)
319
+ HBV["Parameters"][exchange_parameters_HBV_beta] = {}
320
+ HBV["Parameters"][exchange_parameters_HBV_beta]["Name"] = "Beta"
321
+ HBV["Parameters"][exchange_parameters_HBV_beta]["File"] = "simul_soil.param"
322
+ HBV["Parameters"][exchange_parameters_HBV_beta]["Group"] = "Parameters"
323
+ HBV["Parameters"][exchange_parameters_HBV_beta]["Key"] = "Beta"
324
+ HBV["Parameters"][exchange_parameters_HBV_beta]["Unit"] = "[-]"
325
+ HBV["Parameters"][exchange_parameters_HBV_beta]["Range"] = (1.0, 5.0)
326
+ HBV["Parameters"][exchange_parameters_HBV_PWP] = {}
327
+ HBV["Parameters"][exchange_parameters_HBV_PWP]["Name"] = "PWP"
328
+ HBV["Parameters"][exchange_parameters_HBV_PWP]["File"] = "simul_soil.param"
329
+ HBV["Parameters"][exchange_parameters_HBV_PWP]["Group"] = "Parameters"
330
+ HBV["Parameters"][exchange_parameters_HBV_PWP]["Key"] = "PWP"
331
+ HBV["Parameters"][exchange_parameters_HBV_PWP]["Unit"] = "[-]"
332
+ HBV["Parameters"][exchange_parameters_HBV_PWP]["Range"] = (0.03, 1.0)
333
+ HBV["Parameters"][exchange_parameters_HBV_SUmax] = {}
334
+ HBV["Parameters"][exchange_parameters_HBV_SUmax]["Name"] = "Su_max"
335
+ HBV["Parameters"][exchange_parameters_HBV_SUmax]["File"] = "simul_UZ.param"
336
+ HBV["Parameters"][exchange_parameters_HBV_SUmax]["Group"] = "Parameters"
337
+ HBV["Parameters"][exchange_parameters_HBV_SUmax]["Key"] = "Su max"
338
+ HBV["Parameters"][exchange_parameters_HBV_SUmax]["Unit"] = "[mm]"
339
+ HBV["Parameters"][exchange_parameters_HBV_SUmax]["Range"] = (0.0, 100.0)
340
+ HBV["Parameters"][exchange_parameters_HBV_kr] = {}
341
+ HBV["Parameters"][exchange_parameters_HBV_kr]["Name"] = "K_r"
342
+ HBV["Parameters"][exchange_parameters_HBV_kr]["File"] = "simul_UZ.param"
343
+ HBV["Parameters"][exchange_parameters_HBV_kr]["Group"] = "Parameters"
344
+ HBV["Parameters"][exchange_parameters_HBV_kr]["Key"] = "Kr"
345
+ HBV["Parameters"][exchange_parameters_HBV_kr]["Unit"] = "[1/h]"
346
+ HBV["Parameters"][exchange_parameters_HBV_kr]["Range"] = (0.05/24.0, 0.5/24.0)
347
+ HBV["Parameters"][exchange_parameters_HBV_kif] = {}
348
+ HBV["Parameters"][exchange_parameters_HBV_kif]["Name"] = "K_if"
349
+ HBV["Parameters"][exchange_parameters_HBV_kif]["File"] = "simul_UZ.param"
350
+ HBV["Parameters"][exchange_parameters_HBV_kif]["Group"] = "Parameters"
351
+ HBV["Parameters"][exchange_parameters_HBV_kif]["Key"] = "Kif"
352
+ HBV["Parameters"][exchange_parameters_HBV_kif]["Unit"] = "[1/h]"
353
+ HBV["Parameters"][exchange_parameters_HBV_kif]["Range"] = (0.01/24.0, 0.4/24.0)
354
+ HBV["Parameters"][exchange_parameters_HBV_kperc] = {}
355
+ HBV["Parameters"][exchange_parameters_HBV_kperc]["Name"] = "K_perc"
356
+ HBV["Parameters"][exchange_parameters_HBV_kperc]["File"] = "simul_UZ.param"
357
+ HBV["Parameters"][exchange_parameters_HBV_kperc]["Group"] = "Parameters"
358
+ HBV["Parameters"][exchange_parameters_HBV_kperc]["Key"] = "Kperc"
359
+ HBV["Parameters"][exchange_parameters_HBV_kperc]["Unit"] = "[1/h]"
360
+ HBV["Parameters"][exchange_parameters_HBV_kperc]["Range"] = (0.0, 0.8/24.0)
361
+ HBV["Parameters"][exchange_parameters_HBV_kbf] = {}
362
+ HBV["Parameters"][exchange_parameters_HBV_kbf]["Name"] = "K_bf"
363
+ HBV["Parameters"][exchange_parameters_HBV_kbf]["File"] = "simul_bf.param"
364
+ HBV["Parameters"][exchange_parameters_HBV_kbf]["Group"] = "Parameters"
365
+ HBV["Parameters"][exchange_parameters_HBV_kbf]["Key"] = "Lagtime"
366
+ HBV["Parameters"][exchange_parameters_HBV_kbf]["Unit"] = "[sec]"
367
+ HBV["Parameters"][exchange_parameters_HBV_kbf]["Convertion Factor"] = 1/3600.0 # [sec] -> [h]
368
+ HBV["Parameters"][exchange_parameters_HBV_kbf]["Range"] = (0.0, 0.15/24.0)
369
+ HBV["Parameters"][exchange_parameters_HBV_CFLUX] = {}
370
+ HBV["Parameters"][exchange_parameters_HBV_CFLUX]["Name"] = "CFLUX"
371
+ HBV["Parameters"][exchange_parameters_HBV_CFLUX]["File"] = "simul_soil.param"
372
+ HBV["Parameters"][exchange_parameters_HBV_CFLUX]["Group"] = "Parameters"
373
+ HBV["Parameters"][exchange_parameters_HBV_CFLUX]["Key"] = "CFLUX"
374
+ HBV["Parameters"][exchange_parameters_HBV_CFLUX]["Unit"] = "[mm/h]"
375
+ HBV["Parameters"][exchange_parameters_HBV_alpha] = {}
376
+ HBV["Parameters"][exchange_parameters_HBV_alpha]["Name"] = "Alpha"
377
+ HBV["Parameters"][exchange_parameters_HBV_alpha]["File"] = "simul_UZ.param"
378
+ HBV["Parameters"][exchange_parameters_HBV_alpha]["Group"] = "Parameters"
379
+ HBV["Parameters"][exchange_parameters_HBV_alpha]["Key"] = "Alpha"
380
+ HBV["Parameters"][exchange_parameters_HBV_alpha]["Unit"] = "[-]"
381
+
382
+
383
+ SAC_SMA = {}
384
+ SAC_SMA["Nb"] = 16
385
+ SAC_SMA["Parameters"] = {}
386
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_TW] = {}
387
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_TW]["Name"] = "UZ_TW Max"
388
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_TW]["File"] = "simul_UZ.param"
389
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_TW]["Group"] = "Parameters"
390
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_TW]["Key"] = "M_UZ_TW"
391
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_TW]["Unit"] = "[mm]"
392
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_TW]["Range"] = (10.0, 150.0)
393
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_FW] = {}
394
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_FW]["Name"] = "UZ_FW Max"
395
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_FW]["File"] = "simul_UZ.param"
396
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_FW]["Group"] = "Parameters"
397
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_FW]["Key"] = "M_UZ_FW"
398
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_FW]["Unit"] = "[mm]"
399
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_UZ_FW]["Range"] = (5.0, 100.0)
400
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_TW] = {}
401
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_TW]["Name"] = "LZ_TW Max"
402
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_TW]["File"] = "simul_LZ.param"
403
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_TW]["Group"] = "Parameters"
404
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_TW]["Key"] = "M_LZ_TW"
405
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_TW]["Unit"] = "[mm]"
406
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_TW]["Range"] = (50.0,400.0)
407
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FP] = {}
408
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FP]["Name"] = "LZ_FP Max"
409
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FP]["File"] = "simul_LZ.param"
410
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FP]["Group"] = "Parameters"
411
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FP]["Key"] = "M_LZ_FP"
412
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FP]["Unit"] = "[mm]"
413
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FP]["Range"] = (30.0, 800.0)
414
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FS] = {}
415
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FS]["Name"] = "LZ_FS Max"
416
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FS]["File"] = "simul_LZ.param"
417
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FS]["Group"] = "Parameters"
418
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FS]["Key"] = "M_LZ_FS"
419
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FS]["Unit"] = "[mm]"
420
+ SAC_SMA["Parameters"][exchange_parameters_SAC_M_LZ_FS]["Range"] = (30.0, 800.0)
421
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kif] = {}
422
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kif]["Name"] = "Kif"
423
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kif]["File"] = "simul_UZ.param"
424
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kif]["Group"] = "Parameters"
425
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kif]["Key"] = "K_if"
426
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kif]["Unit"] = "[1/h]"
427
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kif]["Range"] = (0.1/24, 0.75/24)
428
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fp] = {}
429
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fp]["Name"] = "Kbf_fp"
430
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fp]["File"] = "simul_LZ.param"
431
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fp]["Group"] = "Parameters"
432
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fp]["Key"] = "K_fp"
433
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fp]["Unit"] = "[1/h]"
434
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fp]["Range"] = (0.001/24, 0.03/24)
435
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fs] = {}
436
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fs]["Name"] = "Kbf_fs"
437
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fs]["File"] = "simul_LZ.param"
438
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fs]["Group"] = "Parameters"
439
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fs]["Key"] = "K_fs"
440
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fs]["Unit"] = "[1/h]"
441
+ SAC_SMA["Parameters"][exchange_parameters_SAC_kbf_fs]["Range"] = (0.02/24, 0.3/24)
442
+ SAC_SMA["Parameters"][exchange_parameters_SAC_zperc] = {}
443
+ SAC_SMA["Parameters"][exchange_parameters_SAC_zperc]["Name"] = "Z_perc"
444
+ SAC_SMA["Parameters"][exchange_parameters_SAC_zperc]["File"] = "simul_UZ.param"
445
+ SAC_SMA["Parameters"][exchange_parameters_SAC_zperc]["Group"] = "Parameters"
446
+ SAC_SMA["Parameters"][exchange_parameters_SAC_zperc]["Key"] = "Z_perc"
447
+ SAC_SMA["Parameters"][exchange_parameters_SAC_zperc]["Unit"] = "[-]"
448
+ SAC_SMA["Parameters"][exchange_parameters_SAC_zperc]["Range"] = (10.0, 350.0)
449
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rexp] = {}
450
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rexp]["Name"] = "R_exp"
451
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rexp]["File"] = "simul_UZ.param"
452
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rexp]["Group"] = "Parameters"
453
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rexp]["Key"] = "R_exp"
454
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rexp]["Unit"] = "[-]"
455
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rexp]["Range"] = (1.0, 4.0)
456
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rserv] = {}
457
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rserv]["Name"] = "R_serv"
458
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rserv]["File"] = "simul_LZ.param"
459
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rserv]["Group"] = "Parameters"
460
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rserv]["Key"] = "R_serv"
461
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rserv]["Unit"] = "[-]"
462
+ SAC_SMA["Parameters"][exchange_parameters_SAC_rserv]["Range"] = (0.0, 1.0)
463
+ SAC_SMA["Parameters"][exchange_parameters_SAC_pfree] = {}
464
+ SAC_SMA["Parameters"][exchange_parameters_SAC_pfree]["Name"] = "P_free"
465
+ SAC_SMA["Parameters"][exchange_parameters_SAC_pfree]["File"] = "simul_LZ.param"
466
+ SAC_SMA["Parameters"][exchange_parameters_SAC_pfree]["Group"] = "Parameters"
467
+ SAC_SMA["Parameters"][exchange_parameters_SAC_pfree]["Key"] = "Pfree"
468
+ SAC_SMA["Parameters"][exchange_parameters_SAC_pfree]["Unit"] = "[-]"
469
+ SAC_SMA["Parameters"][exchange_parameters_SAC_pfree]["Range"] = (0.0, 0.6)
470
+ SAC_SMA["Parameters"][exchange_parameters_SAC_side] = {}
471
+ SAC_SMA["Parameters"][exchange_parameters_SAC_side]["Name"] = "Side"
472
+ SAC_SMA["Parameters"][exchange_parameters_SAC_side]["File"] = "simul_out.param"
473
+ SAC_SMA["Parameters"][exchange_parameters_SAC_side]["Group"] = "Parameters"
474
+ SAC_SMA["Parameters"][exchange_parameters_SAC_side]["Key"] = "Side"
475
+ SAC_SMA["Parameters"][exchange_parameters_SAC_side]["Unit"] = "[-]"
476
+ SAC_SMA["Parameters"][exchange_parameters_SAC_side]["Range"] = (0.0, 0.5)
477
+ SAC_SMA["Parameters"][exchange_parameters_SAC_riva] = {}
478
+ SAC_SMA["Parameters"][exchange_parameters_SAC_riva]["Name"] = "Riva"
479
+ SAC_SMA["Parameters"][exchange_parameters_SAC_riva]["File"] = "simul_out.param"
480
+ SAC_SMA["Parameters"][exchange_parameters_SAC_riva]["Group"] = "Parameters"
481
+ SAC_SMA["Parameters"][exchange_parameters_SAC_riva]["Key"] = "Riva"
482
+ SAC_SMA["Parameters"][exchange_parameters_SAC_riva]["Unit"] = "[-]"
483
+ SAC_SMA["Parameters"][exchange_parameters_SAC_riva]["Range"] = (0.0, 0.2)
484
+ SAC_SMA["Parameters"][exchange_parameters_SAC_adimp] = {}
485
+ SAC_SMA["Parameters"][exchange_parameters_SAC_adimp]["Name"] = "S Adimp"
486
+ SAC_SMA["Parameters"][exchange_parameters_SAC_adimp]["File"] = "simul_UZ.param"
487
+ SAC_SMA["Parameters"][exchange_parameters_SAC_adimp]["Group"] = "Parameters"
488
+ SAC_SMA["Parameters"][exchange_parameters_SAC_adimp]["Key"] = "S_adimp"
489
+ SAC_SMA["Parameters"][exchange_parameters_SAC_adimp]["Unit"] = "[-]"
490
+ SAC_SMA["Parameters"][exchange_parameters_SAC_adimp]["Range"] = (0.0, 0.2)
491
+ SAC_SMA["Parameters"][exchange_parameters_SAC_impv] = {}
492
+ SAC_SMA["Parameters"][exchange_parameters_SAC_impv]["Name"] = "S Imperv"
493
+ SAC_SMA["Parameters"][exchange_parameters_SAC_impv]["File"] = "simul_UZ.param"
494
+ SAC_SMA["Parameters"][exchange_parameters_SAC_impv]["Group"] = "Parameters"
495
+ SAC_SMA["Parameters"][exchange_parameters_SAC_impv]["Key"] = "S_imperv"
496
+ SAC_SMA["Parameters"][exchange_parameters_SAC_impv]["Unit"] = "[-]"
497
+ SAC_SMA["Parameters"][exchange_parameters_SAC_impv]["Range"] = (0.0, 0.05)
249
498
 
250
499
 
500
+ NAM = {}
501
+ NAM["Nb"] = 10
502
+ NAM["Parameters"] = {}
503
+ NAM["Parameters"][exchange_parameters_NAM_UMAX] = {}
504
+ NAM["Parameters"][exchange_parameters_NAM_UMAX]["Name"] = "U_max"
505
+ NAM["Parameters"][exchange_parameters_NAM_UMAX]["File"] = "simul_SS.param"
506
+ NAM["Parameters"][exchange_parameters_NAM_UMAX]["Group"] = "Parameters"
507
+ NAM["Parameters"][exchange_parameters_NAM_UMAX]["Key"] = "Umax"
508
+ NAM["Parameters"][exchange_parameters_NAM_UMAX]["Unit"] = "[mm]"
509
+ NAM["Parameters"][exchange_parameters_NAM_UMAX]["Range"] = (10.0, 20.0)
510
+ NAM["Parameters"][exchange_parameters_NAM_TOF] = {}
511
+ NAM["Parameters"][exchange_parameters_NAM_TOF]["Name"] = "TOF"
512
+ NAM["Parameters"][exchange_parameters_NAM_TOF]["File"] = "simul_SS.param"
513
+ NAM["Parameters"][exchange_parameters_NAM_TOF]["Group"] = "Parameters"
514
+ NAM["Parameters"][exchange_parameters_NAM_TOF]["Key"] = "TOF"
515
+ NAM["Parameters"][exchange_parameters_NAM_TOF]["Unit"] = "[-]"
516
+ NAM["Parameters"][exchange_parameters_NAM_TOF]["Range"] = (0.0, 0.99)
517
+ NAM["Parameters"][exchange_parameters_NAM_TIF] = {}
518
+ NAM["Parameters"][exchange_parameters_NAM_TIF]["Name"] = "TIF"
519
+ NAM["Parameters"][exchange_parameters_NAM_TIF]["File"] = "simul_SS.param"
520
+ NAM["Parameters"][exchange_parameters_NAM_TIF]["Group"] = "Parameters"
521
+ NAM["Parameters"][exchange_parameters_NAM_TIF]["Key"] = "TIF"
522
+ NAM["Parameters"][exchange_parameters_NAM_TIF]["Unit"] = "[-]"
523
+ NAM["Parameters"][exchange_parameters_NAM_TIF]["Range"] = (0.0, 0.99)
524
+ NAM["Parameters"][exchange_parameters_NAM_CQOF] = {}
525
+ NAM["Parameters"][exchange_parameters_NAM_CQOF]["Name"] = "C_qof"
526
+ NAM["Parameters"][exchange_parameters_NAM_CQOF]["File"] = "simul_SS.param"
527
+ NAM["Parameters"][exchange_parameters_NAM_CQOF]["Group"] = "Parameters"
528
+ NAM["Parameters"][exchange_parameters_NAM_CQOF]["Key"] = "c_qof"
529
+ NAM["Parameters"][exchange_parameters_NAM_CQOF]["Unit"] = "[-]"
530
+ NAM["Parameters"][exchange_parameters_NAM_CQOF]["Range"] = (0.1, 1.0)
531
+ NAM["Parameters"][exchange_parameters_NAM_CKIF] = {}
532
+ NAM["Parameters"][exchange_parameters_NAM_CKIF]["Name"] = "C_kif"
533
+ NAM["Parameters"][exchange_parameters_NAM_CKIF]["File"] = "simul_SS.param"
534
+ NAM["Parameters"][exchange_parameters_NAM_CKIF]["Group"] = "Parameters"
535
+ NAM["Parameters"][exchange_parameters_NAM_CKIF]["Key"] = "c_kif"
536
+ NAM["Parameters"][exchange_parameters_NAM_CKIF]["Unit"] = "[h]"
537
+ NAM["Parameters"][exchange_parameters_NAM_CKIF]["Range"] = (200.0, 1_000.0)
538
+ NAM["Parameters"][exchange_parameters_NAM_LMAX] = {}
539
+ NAM["Parameters"][exchange_parameters_NAM_LMAX]["Name"] = "L_max"
540
+ NAM["Parameters"][exchange_parameters_NAM_LMAX]["File"] = "simul_RZ.param"
541
+ NAM["Parameters"][exchange_parameters_NAM_LMAX]["Group"] = "Parameters"
542
+ NAM["Parameters"][exchange_parameters_NAM_LMAX]["Key"] = "L_max"
543
+ NAM["Parameters"][exchange_parameters_NAM_LMAX]["Unit"] = "[mm]"
544
+ NAM["Parameters"][exchange_parameters_NAM_LMAX]["Range"] = (100.0, 300.0)
545
+ NAM["Parameters"][exchange_parameters_NAM_TG] = {}
546
+ NAM["Parameters"][exchange_parameters_NAM_TG]["Name"] = "TG"
547
+ NAM["Parameters"][exchange_parameters_NAM_TG]["File"] = "simul_RZ.param"
548
+ NAM["Parameters"][exchange_parameters_NAM_TG]["Group"] = "Parameters"
549
+ NAM["Parameters"][exchange_parameters_NAM_TG]["Key"] = "TG"
550
+ NAM["Parameters"][exchange_parameters_NAM_TG]["Unit"] = "[-]"
551
+ NAM["Parameters"][exchange_parameters_NAM_TG]["Range"] = (0.0 ,0.99)
552
+ NAM["Parameters"][exchange_parameters_NAM_CK12] = {}
553
+ NAM["Parameters"][exchange_parameters_NAM_CK12]["Name"] = "C_k 12"
554
+ NAM["Parameters"][exchange_parameters_NAM_CK12]["File"] = ["simul_OF.param", "simul_IF.param"]
555
+ NAM["Parameters"][exchange_parameters_NAM_CK12]["Group"] = ["Time Parameters", "NAM parameters"]
556
+ NAM["Parameters"][exchange_parameters_NAM_CK12]["Key"] = ["Lagtime", "Lagtime"]
557
+ NAM["Parameters"][exchange_parameters_NAM_CK12]["Unit"] = "[h]"
558
+ NAM["Parameters"][exchange_parameters_NAM_CK12]["Range"] = (10.0, 50.0)
559
+ NAM["Parameters"][exchange_parameters_NAM_CAREA] = {}
560
+ NAM["Parameters"][exchange_parameters_NAM_CAREA]["Name"] = "C_area"
561
+ NAM["Parameters"][exchange_parameters_NAM_CAREA]["File"] = "simul_RZ.param"
562
+ NAM["Parameters"][exchange_parameters_NAM_CAREA]["Group"] = "Parameters"
563
+ NAM["Parameters"][exchange_parameters_NAM_CAREA]["Key"] = "C_area"
564
+ NAM["Parameters"][exchange_parameters_NAM_CAREA]["Unit"] = "[-]"
565
+ NAM["Parameters"][exchange_parameters_NAM_CAREA]["Range"] = (0.5, 2.0)
566
+ NAM["Parameters"][exchange_parameters_NAM_CKBF] = {}
567
+ NAM["Parameters"][exchange_parameters_NAM_CKBF]["Name"] = "C_kbf"
568
+ NAM["Parameters"][exchange_parameters_NAM_CKBF]["File"] = "simul_BF.param"
569
+ NAM["Parameters"][exchange_parameters_NAM_CKBF]["Group"] = "Time Parameters"
570
+ NAM["Parameters"][exchange_parameters_NAM_CKBF]["Key"] = "Lagtime"
571
+ NAM["Parameters"][exchange_parameters_NAM_CKBF]["Unit"] = "[sec]"
572
+ NAM["Parameters"][exchange_parameters_NAM_CKBF]["Convertion Factor"] = 1/3600.0 # [sec] -> [h]
573
+ NAM["Parameters"][exchange_parameters_NAM_CKBF]["Range"] = (1_000.0,4_000.0)
574
+
251
575
 
252
576
  # General model dictionnary
253
577
  modelParamsDict = {}
@@ -255,7 +579,9 @@ modelParamsDict[cst.tom_VHM] = VHM
255
579
  modelParamsDict[cst.tom_GR4] = GR4
256
580
  modelParamsDict[cst.tom_UH] = UH
257
581
  modelParamsDict[cst.tom_2layers_linIF]= UHDIST_LINBF
258
-
582
+ modelParamsDict[cst.tom_HBV]= HBV
583
+ modelParamsDict[cst.tom_SAC_SMA]= SAC_SMA
584
+ modelParamsDict[cst.tom_NAM]= NAM
259
585
 
260
586
  # %% Python-Fortran exchange constants
261
587
 
@@ -17,9 +17,9 @@ import math
17
17
  import datetime
18
18
  import sys
19
19
  import logging
20
- from numpy.core.arrayprint import set_string_function
20
+ # from numpy.core.arrayprint import set_string_function
21
21
 
22
- from numpy.core.defchararray import index
22
+ # from numpy.core.defchararray import index
23
23
 
24
24
  from ..PyTranslate import _
25
25
 
@@ -115,9 +115,9 @@ def compare_plot(nbElements, writeDir, x, y, x_title, y_titles, graph_title='',
115
115
  # If y is an array : each element is by column [][here]
116
116
  # elif y is a list : each element is located [here][]
117
117
  # TO DO : Maybe change this rationale for y -> Too complicated
118
- def plot_hydro(nbElements:int, y, rain=[], x_title="Dates", y_titles=_("Discharge [m³/s]"), time=None, beginDate:datetime.datetime=None, endDate:datetime.datetime=None, dt:float=None, \
118
+ def plot_hydro(nbElements:int, y, rain=None, x_title="Dates", y_titles=_("Discharge [m³/s]"), time=None, beginDate:datetime.datetime=None, endDate:datetime.datetime=None, dt:float=None, \
119
119
  graph_title:str=None, y_labels:str=None, rangeData:list[datetime.datetime] = [], myColors:list=None, typeOfTraits:list=None, \
120
- measures=[], beginDateMeasure=None, endDateMeasure=None, dtMeasure=None, surfaceMeasure=-1.0, addMeasfInTab:bool=False, \
120
+ measures=None, beginDateMeasure=None, endDateMeasure=None, dtMeasure=None, surfaceMeasure=-1.0, addMeasfInTab:bool=False, \
121
121
  upperPlot:bool=False, nbAddPlot:int=1, z=[], y_labelAddPlot=[], factor_RH:float=1.5, y_rain_range=[], y_data_range=[], figSize = [10.4,6.25],\
122
122
  writeFile:str = '', deltaMajorTicks=-1, deltaMinorTicks=-1, \
123
123
  y_envelop=[], envelopID=0, textInGraph={}, addTable=False, allSurfaces=[], figure=None):
@@ -137,7 +137,7 @@ def plot_hydro(nbElements:int, y, rain=[], x_title="Dates", y_titles=_("Discharg
137
137
  print("ERROR: the number of element and the dimension of 'y' does not coincide")
138
138
  sys.exit()
139
139
  elif(type(y)==list):
140
- if(nbElements!=np.shape(y)[0]):
140
+ if nbElements!=len(y):
141
141
  print("ERROR: the number of element and the dimension of 'y' does not coincide")
142
142
  sys.exit()
143
143
 
@@ -200,7 +200,7 @@ def plot_hydro(nbElements:int, y, rain=[], x_title="Dates", y_titles=_("Discharg
200
200
  typeOfTraits.append('-')
201
201
 
202
202
 
203
- if(measures!=[]):
203
+ if(measures is not None):
204
204
  time_delta_measure = datetime.timedelta(seconds=dtMeasure)
205
205
 
206
206
  if(factor_RH!=1.5 and y_rain_range!=[]):
@@ -227,7 +227,7 @@ def plot_hydro(nbElements:int, y, rain=[], x_title="Dates", y_titles=_("Discharg
227
227
  x_date.append(drange(beginDate[i], endDate[i]+time_delta[i], time_delta[i]))
228
228
 
229
229
 
230
- if(measures!=[]):
230
+ if(measures is not None):
231
231
  x_date_measure = drange(beginDateMeasure, endDateMeasure+time_delta_measure, time_delta_measure)
232
232
 
233
233
  if figure is None:
@@ -401,7 +401,7 @@ def plot_hydro(nbElements:int, y, rain=[], x_title="Dates", y_titles=_("Discharg
401
401
 
402
402
 
403
403
  # Plot measures
404
- if(measures!=[]):
404
+ if(measures is not None):
405
405
  y1 = measures
406
406
  x_date_measure = check_drange_bug(x_date_measure,y1)
407
407
  if(np.nanmax(y1)>max_):
@@ -467,7 +467,7 @@ def plot_hydro(nbElements:int, y, rain=[], x_title="Dates", y_titles=_("Discharg
467
467
 
468
468
 
469
469
  # b) Hyeto
470
- if(rain!=[]):
470
+ if(rain is not None):
471
471
  y2 = rain[:] # CAUTION only if the rain is 1 element greater than hydro
472
472
  ax2=ax1.twinx()
473
473
  ax2.set_ylabel(_('Precipitations [mm/h]'),color='b')
@@ -494,7 +494,7 @@ def plot_hydro(nbElements:int, y, rain=[], x_title="Dates", y_titles=_("Discharg
494
494
  summaryTab[i][-1] = "%.3f"%(summaryTab[i][-1])
495
495
  summaryTab[i][-2] = "%.3f"%(summaryTab[i][-2])
496
496
  summaryTab[i][-3] = "%.3f"%(summaryTab[i][-3])
497
- if(measures!=[] and allSurfaces!=[] and surfaceMeasure>0.0 and addMeasfInTab):
497
+ if(measures is not None and allSurfaces!=[] and surfaceMeasure>0.0 and addMeasfInTab):
498
498
  summaryTab[-1].append(np.sum(y2)*dt_Gen/3600.0)
499
499
  summaryTab[-1][-2] = summaryTab[-1][-2]*10**(-3)/surfaceMeasure
500
500
  tmpRatio = summaryTab[-1][-2]/summaryTab[-1][-1]
@@ -506,11 +506,18 @@ def plot_hydro(nbElements:int, y, rain=[], x_title="Dates", y_titles=_("Discharg
506
506
  summaryTab[-1][-1] = "%.3f"%(summaryTab[-1][-1])
507
507
  summaryTab[-1][-2] = "%.3f"%(summaryTab[-1][-2])
508
508
  summaryTab[-1][-3] = "%.3f"%(summaryTab[-1][-3])
509
- elif(measures!=[] and allSurfaces!=[] and addMeasfInTab):
509
+ elif(measures is not None and allSurfaces!=[] and addMeasfInTab):
510
510
  summaryTab[-1].append("/")
511
511
  summaryTab[-1][-2] = "/"
512
512
  summaryTab[-1].append("/")
513
-
513
+
514
+
515
+
516
+ if(deltaMajorTicks>0):
517
+ etimateNbTicks = (rangeData[1]-rangeData[0]).total_seconds()/deltaMajorTicks
518
+ if(etimateNbTicks>10_000):
519
+ logging.warning("WARNING: Too many ticks to plot! The major ticks will be removed.")
520
+ deltaMajorTicks = -1
514
521
 
515
522
  if(deltaMajorTicks>0):
516
523
  majorTicks = HourLocator(interval=math.floor(deltaMajorTicks/3600))
@@ -555,9 +562,15 @@ def plot_hydro(nbElements:int, y, rain=[], x_title="Dates", y_titles=_("Discharg
555
562
  ax3[i].set_ylabel('Evapotranpiration [mm/h]',color='orange')
556
563
  else:
557
564
  ax3[i].set_ylabel(y_labelAddPlot[i],color='orange')
558
- xdatePlotGen = check_drange_bug(xdatePlotGen,y1)
559
- ax3[i].plot_date(xdatePlotGen,y1, '-', color='orange')
560
- ax3[i].set_xlim(rangeData[0],rangeData[1]-time_deltaGen)
565
+ if xdatePlotGen is None:
566
+ xdatePlot = x_date[i]
567
+ xdatePlot = check_drange_bug(xdatePlot,y1)
568
+ ax3[i].plot_date(xdatePlot,y1, '-', color='orange')
569
+ ax3[i].set_xlim(rangeData[0],rangeData[1]-time_delta[i])
570
+ else:
571
+ xdatePlotGen = check_drange_bug(xdatePlotGen,y1)
572
+ ax3[i].plot_date(xdatePlotGen,y1, '-', color='orange')
573
+ ax3[i].set_xlim(rangeData[0],rangeData[1]-time_deltaGen)
561
574
  if(deltaMajorTicks>0):
562
575
  majorTicks = HourLocator(interval=math.floor(deltaMajorTicks/3600))
563
576
  ax3[i].xaxis.set_major_locator(majorTicks)
@@ -579,21 +592,24 @@ def plot_hydro(nbElements:int, y, rain=[], x_title="Dates", y_titles=_("Discharg
579
592
  if(addTable):
580
593
  ax4 = fig.add_subplot(gs[-3:,1:5])
581
594
  columnLabels = ["Q peak [m³/s]", "t peak"+x_title.replace("Dates","")]
582
- if(len(title)>1) and measures!=[]:
595
+ if(len(title)>1) and measures is not None:
583
596
  if(addMeasfInTab):
584
597
  rowLabels = title[:]
585
598
  else:
586
599
  rowLabels = title[:-1]
587
- elif len(title)>0 and measures==[]:
600
+ elif len(title)>0 and measures is None:
588
601
  rowLabels = title[:]
589
602
  else:
590
603
  rowLabels = ["Hydrograph 1"]
591
604
 
592
- if(rain!=[]):
605
+ if(rain is not None):
593
606
  if(allSurfaces!=[]):
594
607
  columnLabels.append("Q cumul [mm]")
595
608
  columnLabels.append("P cumul [mm]")
596
609
  columnLabels.append("Ratio [-]")
610
+ else:
611
+ if(allSurfaces!=[]):
612
+ columnLabels.append("Q cumul [mm]")
597
613
 
598
614
  ax4.axis('tight')
599
615
  ax4.axis('off')