pydra-core 0.0.1__py2.py3-none-any.whl → 0.0.3__py2.py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (368) hide show
  1. pydra_core/__init__.py +32 -32
  2. pydra_core/common/common.py +98 -98
  3. pydra_core/common/enum.py +63 -63
  4. pydra_core/common/interpolate.py +345 -345
  5. pydra_core/common/probability.py +293 -293
  6. pydra_core/core/calculation.py +51 -51
  7. pydra_core/core/datamodels/frequency_line.py +60 -60
  8. pydra_core/core/exceedance_frequency_line.py +224 -224
  9. pydra_core/core/exceedance_frequency_line_experimental.py +163 -163
  10. pydra_core/core/hbn.py +226 -226
  11. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_2017.txt +36 -36
  12. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_2017_metOnzHeid.txt +45 -45
  13. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2015_metOnzHeid_v02.txt +50 -50
  14. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2015_v02.txt +42 -42
  15. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2050_metOnzHeid_v02.txt +56 -56
  16. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2050_v02.txt +48 -48
  17. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2100_metOnzHeid_v02.txt +56 -56
  18. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2100_v02.txt +48 -48
  19. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2015_metOnzHeid_v02.txt +50 -50
  20. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2015_v02.txt +42 -42
  21. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2050_metOnzHeid_v02.txt +56 -56
  22. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2050_v02.txt +48 -48
  23. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2100_metOnzHeid_v02.txt +51 -51
  24. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2100_v02.txt +44 -44
  25. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_Ref.txt +27 -27
  26. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_2017.txt +30 -30
  27. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_2017_metOnzHeid.txt +32 -32
  28. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2015.txt +44 -44
  29. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2015_metOnzHeid.txt +33 -33
  30. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2050.txt +44 -44
  31. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2050_metOnzHeid.txt +33 -33
  32. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2100.txt +44 -44
  33. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2100_metOnzHeid.txt +38 -38
  34. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2015.txt +44 -44
  35. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2015_metOnzHeid.txt +33 -33
  36. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2050.txt +44 -44
  37. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2050_metOnzHeid.txt +33 -33
  38. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2100.txt +44 -44
  39. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2100_metOnzHeid.txt +33 -33
  40. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_Ref.txt +13 -13
  41. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_2017.txt +47 -47
  42. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_2017_metOnzHeid.txt +47 -47
  43. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2015.txt +49 -49
  44. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2015_metOnzHeid.txt +58 -58
  45. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2050.txt +49 -49
  46. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2050_metOnzHeid.txt +58 -58
  47. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2100.txt +49 -49
  48. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2100_metOnzHeid.txt +58 -58
  49. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2015.txt +49 -49
  50. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2015_metOnzHeid.txt +58 -58
  51. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2050.txt +49 -49
  52. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2050_metOnzHeid.txt +58 -58
  53. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2100.txt +49 -49
  54. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2100_metOnzHeid.txt +58 -58
  55. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_Ref.txt +20 -20
  56. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_2017.txt +33 -33
  57. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_2017_metOnzHeid.txt +59 -59
  58. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015.txt +49 -49
  59. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015_BenedenRijn.txt +49 -49
  60. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015_metOnzHeid.txt +62 -62
  61. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015_metOnzHeid_BenedenRijn.txt +65 -65
  62. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050.txt +49 -49
  63. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050_BenedenRijn.txt +49 -49
  64. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050_metOnzHeid.txt +62 -62
  65. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050_metOnzHeid_BenedenRijn.txt +64 -64
  66. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100.txt +49 -49
  67. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100_BenedenRijn.txt +49 -49
  68. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100_metOnzHeid.txt +62 -62
  69. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100_metOnzHeid_BenedenRijn.txt +64 -64
  70. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015.txt +50 -50
  71. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015_BenedenRijn.txt +50 -50
  72. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015_metOnzHeid.txt +62 -62
  73. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015_metOnzHeid_BenedenRijn.txt +64 -64
  74. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050.txt +50 -50
  75. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050_BenedenRijn.txt +50 -50
  76. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050_metOnzHeid.txt +62 -62
  77. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050_metOnzHeid_BenedenRijn.txt +64 -64
  78. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100.txt +50 -50
  79. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100_BenedenRijn.txt +50 -50
  80. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100_metOnzHeid.txt +62 -62
  81. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100_metOnzHeid_BenedenRijn.txt +65 -65
  82. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_Ref.txt +22 -22
  83. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_2017.txt +55 -55
  84. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_2017_metOnzHeid.txt +55 -55
  85. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2015.txt +46 -46
  86. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2015_metOnzHeid.txt +64 -64
  87. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2050.txt +46 -46
  88. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2050_metOnzHeid.txt +64 -64
  89. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2100.txt +46 -46
  90. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2100_metOnzHeid.txt +64 -64
  91. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2015.txt +47 -47
  92. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2015_metOnzHeid.txt +64 -64
  93. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2050.txt +47 -47
  94. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2050_metOnzHeid.txt +64 -64
  95. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2100.txt +47 -47
  96. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2100_metOnzHeid.txt +64 -64
  97. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_Ref.txt +14 -14
  98. pydra_core/data/statistics/Golfvorm/Borgharen/Golfvormen_Borgharen.txt +76 -76
  99. pydra_core/data/statistics/Golfvorm/Dalfsen/Golfvormen_Dalfsen.txt +83 -83
  100. pydra_core/data/statistics/Golfvorm/Grevelingenmeer/Golfvormen_Grevelingenmeer.txt +33 -33
  101. pydra_core/data/statistics/Golfvorm/IJsselmeer/Golfvormen_IJsselmeer.txt +83 -83
  102. pydra_core/data/statistics/Golfvorm/Lith/Golfvormen_Lith.txt +76 -76
  103. pydra_core/data/statistics/Golfvorm/Lobith/Golfvormen_Lobith.txt +76 -76
  104. pydra_core/data/statistics/Golfvorm/Markermeer/Golfvormen_Markermeer.txt +139 -139
  105. pydra_core/data/statistics/Golfvorm/Olst/Golfvormen_Olst.txt +83 -83
  106. pydra_core/data/statistics/Golfvorm/Veerse Meer/Golfvormen_Veersemeer.txt +53 -53
  107. pydra_core/data/statistics/Golfvorm/Veluwerandmeer/Golfvormen_Veluwerandmeer.txt +139 -139
  108. pydra_core/data/statistics/Golfvorm/Volkerak-Zoommeer/Golfvormen_Volkerakzoommeer.txt +73 -73
  109. pydra_core/data/statistics/Meerpeil/Grevelingenmeer/Ovkans_Grevelingenmeer_piekmeerpeil_2017.txt +12 -12
  110. pydra_core/data/statistics/Meerpeil/Grevelingenmeer/Ovkans_Grevelingenmeer_piekmeerpeil_2017_metOnzHeid.txt +24 -24
  111. pydra_core/data/statistics/Meerpeil/Grevelingenmeer/Ovkans_Grevelingenmeer_piekmeerpeil_v01.txt +12 -12
  112. pydra_core/data/statistics/Meerpeil/IJsselmeer/Ovkans_IJsselmeer_piekmeerpeil_2017.txt +25 -25
  113. pydra_core/data/statistics/Meerpeil/IJsselmeer/Ovkans_IJsselmeer_piekmeerpeil_2017_metOnzHeid.txt +39 -39
  114. pydra_core/data/statistics/Meerpeil/IJsselmeer/Ovkans_IJsselmeer_piekmeerpeil_v01.txt +14 -14
  115. pydra_core/data/statistics/Meerpeil/Markermeer/Ovkans_Markermeer_piekmeerpeil_2017.txt +18 -18
  116. pydra_core/data/statistics/Meerpeil/Markermeer/Ovkans_Markermeer_piekmeerpeil_2017_metOnzHeid.txt +37 -37
  117. pydra_core/data/statistics/Meerpeil/Markermeer/Ovkans_Markermeer_piekmeerpeil_v01.txt +10 -10
  118. pydra_core/data/statistics/Meerpeil/Veerse Meer/Ovkans_Veersemeer_piekmeerpeil_excl_peilverhoging.txt +13 -13
  119. pydra_core/data/statistics/Meerpeil/Veerse Meer/Ovkans_Veersemeer_piekmeerpeil_v01.txt +15 -15
  120. pydra_core/data/statistics/Meerpeil/Veluwerandmeer/Ovkans_Veluwerandmeer_piekmeerpeil_2017.txt +13 -13
  121. pydra_core/data/statistics/Meerpeil/Veluwerandmeer/Ovkans_Veluwerandmeer_piekmeerpeil_2017_metOnzHeid.txt +36 -36
  122. pydra_core/data/statistics/Meerpeil/Veluwerandmeer/Ovkans_Veluwerandmeer_piekmeerpeil_v01.txt +13 -13
  123. pydra_core/data/statistics/Meerpeil/Volkerak-Zoommeer/Ovkans_VZM_piekmeerpeil_BER-VZM.txt +17 -17
  124. pydra_core/data/statistics/Meerpeil/Volkerak-Zoommeer/Ovkans_VZM_piekmeerpeil_BER-VZM_metOnzHeid.txt +42 -42
  125. pydra_core/data/statistics/Restant/Oosterschelde/BesliskansenOSKering.txt +524 -524
  126. pydra_core/data/statistics/Restant/Oosterschelde/KansenFaseverschil_2023.txt +7 -7
  127. pydra_core/data/statistics/Restant/Oosterschelde/KansenFaseverschil_OS.txt +13 -13
  128. pydra_core/data/statistics/Restant/Oosterschelde/KansenStormduur_OS.txt +14 -14
  129. pydra_core/data/statistics/Restant/Oosterschelde/KansenStormduur_OS_40_60_80uur_2023.txt +16 -16
  130. pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2008.txt +23 -23
  131. pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2013.txt +18 -18
  132. pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2017.txt +18 -18
  133. pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2023.txt +13 -13
  134. pydra_core/data/statistics/Restant/Up2U/Up2U10.dat +59 -59
  135. pydra_core/data/statistics/Restant/Up2U/Up2Up.dat +59 -59
  136. pydra_core/data/statistics/Restant/Up2U/Up2Ustar.dat +59 -59
  137. pydra_core/data/statistics/Restant/hulpdijken.txt +59 -59
  138. pydra_core/data/statistics/Restant/hulpgolfhoogtes.txt +23 -23
  139. pydra_core/data/statistics/Restant/hulpgolfperiodes.txt +38 -38
  140. pydra_core/data/statistics/Restant/kansstormduur.txt +8 -8
  141. pydra_core/data/statistics/Restant/pwind_west.txt +33 -33
  142. pydra_core/data/statistics/Restant/pwind_west_met_Volkerfactor.txt +33 -33
  143. pydra_core/data/statistics/Restant/pwind_west_zonder_Volkerfactor.txt +33 -33
  144. pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Midden/VS_sigmafunctie_Kust_Midden.txt +18 -18
  145. pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Midden/VS_sigmafunctie_Kust_Midden_2017.txt +22 -22
  146. pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Noord/VS_sigmafunctie_Kust_Noord.txt +18 -18
  147. pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Noord/VS_sigmafunctie_Kust_Noord_2017.txt +22 -22
  148. pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Zuid/VS_sigmafunctie_Kust_Zuid.txt +18 -18
  149. pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Zuid/VS_sigmafunctie_Kust_Zuid_2017.txt +22 -22
  150. pydra_core/data/statistics/Sigmafunctie/Oosterschelde/VS_sigmafunctie_OS.txt +21 -21
  151. pydra_core/data/statistics/Sigmafunctie/Oosterschelde/VS_sigmafunctie_OS_16sectoren_2023.txt +23 -23
  152. pydra_core/data/statistics/Sigmafunctie/Oosterschelde/VS_sigmafunctie_OS_2017.txt +21 -21
  153. pydra_core/data/statistics/Sigmafunctie/Waddenzee Oost/VS_sigmafunctie_WZ_oost.txt +18 -18
  154. pydra_core/data/statistics/Sigmafunctie/Waddenzee Oost/VS_sigmafunctie_WZ_oost_2017.txt +22 -22
  155. pydra_core/data/statistics/Sigmafunctie/Waddenzee West/VS_sigmafunctie_WZ_west.txt +18 -18
  156. pydra_core/data/statistics/Sigmafunctie/Waddenzee West/VS_sigmafunctie_WZ_west_2017.txt +22 -22
  157. pydra_core/data/statistics/Sigmafunctie/Westerschelde/VS_sigmafunctie_WS.txt +18 -18
  158. pydra_core/data/statistics/Sigmafunctie/Westerschelde/VS_sigmafunctie_WS_2017.txt +22 -22
  159. pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Europoortkering Maas 2017.csv +630 -630
  160. pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Europoortkering Rijn 2017.csv +630 -630
  161. pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Hollandsche IJsselkering.csv +757 -757
  162. pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Oosterscheldekering 2017.csv +55080 -55080
  163. pydra_core/data/statistics/Topduur/Borgharen/Topduur_Borgharen_2017.txt +18 -18
  164. pydra_core/data/statistics/Topduur/Borgharen/Topduur_Borgharen_v00.txt +14 -14
  165. pydra_core/data/statistics/Topduur/Dalfsen/Topduur_Dalfsen_2017.txt +19 -19
  166. pydra_core/data/statistics/Topduur/Dalfsen/Topduur_Dalfsen_v01.txt +15 -15
  167. pydra_core/data/statistics/Topduur/Grevelingenmeer/Topduur_Grevelingenmeer_2017.txt +13 -13
  168. pydra_core/data/statistics/Topduur/Grevelingenmeer/Topduur_Grevelingenmeer_v01.txt +13 -13
  169. pydra_core/data/statistics/Topduur/IJsselmeer/Topduur_IJsselmeer_2017.txt +19 -19
  170. pydra_core/data/statistics/Topduur/IJsselmeer/Topduur_IJsselmeer_v01.txt +14 -14
  171. pydra_core/data/statistics/Topduur/Lith/Topduur_Lith_2017.txt +18 -18
  172. pydra_core/data/statistics/Topduur/Lith/Topduur_Lith_v01.txt +17 -17
  173. pydra_core/data/statistics/Topduur/Lobith/Topduur_Lobith_2017.txt +18 -18
  174. pydra_core/data/statistics/Topduur/Lobith/Topduur_Lobith_v01.txt +16 -16
  175. pydra_core/data/statistics/Topduur/Markermeer/Topduur_Markermeer_2017.txt +19 -19
  176. pydra_core/data/statistics/Topduur/Markermeer/Topduur_Markermeer_v01.txt +11 -11
  177. pydra_core/data/statistics/Topduur/Olst/Topduur_Olst_2017.txt +19 -19
  178. pydra_core/data/statistics/Topduur/Olst/Topduur_Olst_v01.txt +15 -15
  179. pydra_core/data/statistics/Topduur/Veerse Meer/Topduur_Veersemeer_excl_peilverhoging.txt +12 -12
  180. pydra_core/data/statistics/Topduur/Veerse Meer/Topduur_Veersemeer_v01.txt +15 -15
  181. pydra_core/data/statistics/Topduur/Veluwerandmeer/Topduur_Veluwerandmeer_2017.txt +11 -11
  182. pydra_core/data/statistics/Topduur/Veluwerandmeer/Topduur_Veluwerandmeer_v01.txt +11 -11
  183. pydra_core/data/statistics/Topduur/Volkerak-Zoommeer/Topduur_Volkerakzoommeer_BER-VZM.txt +17 -17
  184. pydra_core/data/statistics/Windrichting/Deelen/Richtingskansen_Deelen_2017.txt +27 -27
  185. pydra_core/data/statistics/Windrichting/Hollandse Kust/KansenWindrichting_Kust.txt +16 -16
  186. pydra_core/data/statistics/Windrichting/Hollandse Kust/KansenWindrichting_Kust_2017.txt +23 -23
  187. pydra_core/data/statistics/Windrichting/Oosterschelde/KansenWindrichting_16sectoren_OS_2023.txt +30 -30
  188. pydra_core/data/statistics/Windrichting/Oosterschelde/KansenWindrichting_OS.txt +19 -19
  189. pydra_core/data/statistics/Windrichting/Oosterschelde/KansenWindrichting_OS_2017.txt +23 -23
  190. pydra_core/data/statistics/Windrichting/Schiphol/Richtingskansen_Schiphol_12sectoren.txt +19 -19
  191. pydra_core/data/statistics/Windrichting/Schiphol/Richtingskansen_Schiphol_12sectoren_2017.txt +19 -19
  192. pydra_core/data/statistics/Windrichting/Schiphol/Richtingskansen_Schiphol_2017.txt +27 -27
  193. pydra_core/data/statistics/Windrichting/Schiphol/kanswindrichting_v01.txt +28 -28
  194. pydra_core/data/statistics/Windrichting/Waddenzee/KansenWindrichting_WZ.txt +16 -16
  195. pydra_core/data/statistics/Windrichting/Waddenzee/KansenWindrichting_WZ_2017.txt +23 -23
  196. pydra_core/data/statistics/Windrichting/Westerschelde/KansenWindrichting_WS.txt +16 -16
  197. pydra_core/data/statistics/Windrichting/Westerschelde/KansenWindrichting_WS_2017.txt +23 -23
  198. pydra_core/data/statistics/Windsnelheid/De Kooy/OvkansWindsnelheid_Texel.txt +69 -69
  199. pydra_core/data/statistics/Windsnelheid/De Kooy/Ovkanswind_de Kooy_2017.txt +91 -91
  200. pydra_core/data/statistics/Windsnelheid/De Kooy/Ovkanswind_de Kooy_2017_metOnzHeid.txt +91 -91
  201. pydra_core/data/statistics/Windsnelheid/Deelen/Ovkanswind_Deelen_2017.txt +90 -90
  202. pydra_core/data/statistics/Windsnelheid/Deelen/Ovkanswind_Deelen_2017_metOnzHeid.txt +90 -90
  203. pydra_core/data/statistics/Windsnelheid/Hoek van Holland/OvkansWindsnelheid_Hoek van Holland.txt +69 -69
  204. pydra_core/data/statistics/Windsnelheid/Hoek van Holland/Ovkanswind_Hoek van Holland_2017.txt +91 -91
  205. pydra_core/data/statistics/Windsnelheid/Hoek van Holland/Ovkanswind_Hoek van Holland_2017_metOnzHeid.txt +91 -91
  206. pydra_core/data/statistics/Windsnelheid/IJmuiden/OvkansWindsnelheid_IJmuiden.txt +69 -69
  207. pydra_core/data/statistics/Windsnelheid/IJmuiden/Ovkanswind_IJmuiden_2017.txt +91 -91
  208. pydra_core/data/statistics/Windsnelheid/IJmuiden/Ovkanswind_IJmuiden_2017_metOnzHeid.txt +91 -91
  209. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren.txt +50 -50
  210. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017.txt +90 -90
  211. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017_metOnzHeid.txt +90 -90
  212. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017_metWindDrag.txt +96 -96
  213. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017_metWindDrag_metOnzHeid.txt +96 -96
  214. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_16sectoren_2017_metWindDrag.txt +96 -96
  215. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_16sectoren_2017_metWindDrag_metOnzHeid.txt +96 -96
  216. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_2017.txt +90 -90
  217. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_2017_metOnzHeid.txt +90 -90
  218. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_met_Volkerfactor_2017.txt +90 -90
  219. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_met_Volkerfactor_2017_metOnzHeid.txt +90 -90
  220. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol.txt +57 -57
  221. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol_10%.txt +63 -63
  222. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol_5%.txt +61 -61
  223. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol_B_met volker.txt +59 -59
  224. pydra_core/data/statistics/Windsnelheid/Vlissingen/OvkansWindsnelheid_OS.txt +66 -66
  225. pydra_core/data/statistics/Windsnelheid/Vlissingen/OvkansWindsnelheid_Vlissingen.txt +69 -69
  226. pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_16sectoren_2023.txt +91 -91
  227. pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_16sectoren_2023_metOnzHeid.txt +90 -90
  228. pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017.txt +91 -91
  229. pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017_metOnzHeid.txt +91 -91
  230. pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017_metWindDrag.txt +96 -96
  231. pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017_metWindDrag_metOnzHeid.txt +96 -96
  232. pydra_core/data/statistics/Windsnelheid/West-Terschelling/OvkansWindsnelheid_West-Tersch.txt +69 -69
  233. pydra_core/data/statistics/Windsnelheid/West-Terschelling/Ovkanswind_West Terschelling_2017.txt +91 -91
  234. pydra_core/data/statistics/Windsnelheid/West-Terschelling/Ovkanswind_West Terschelling_2017_metOnzHeid.txt +91 -91
  235. pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar1985_2017.txt +81 -81
  236. pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar1985_2017_metOnzHeid.txt +81 -81
  237. pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar2017.txt +81 -81
  238. pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar2017_metOnzHeid.txt +81 -81
  239. pydra_core/data/statistics/Zeewaterstand/Delfzijl/OvkansZee_Delfzijl.txt +70 -70
  240. pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar1985_2017.txt +89 -89
  241. pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar1985_2017_metOnzHeid.txt +89 -89
  242. pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar2017.txt +88 -88
  243. pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar2017_metOnzHeid.txt +88 -88
  244. pydra_core/data/statistics/Zeewaterstand/Den Helder/OvkansZee_Den Helder.txt +70 -70
  245. pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar1985_2017.txt +88 -88
  246. pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar1985_2017_metOnzHeid.txt +88 -88
  247. pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar2017.txt +87 -87
  248. pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar2017_metOnzHeid.txt +87 -87
  249. pydra_core/data/statistics/Zeewaterstand/Den Oever/OvkansZee_Den Oever.txt +70 -70
  250. pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar1985_2017.txt +71 -71
  251. pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar1985_2017_metOnzHeid.txt +71 -71
  252. pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar2017.txt +70 -70
  253. pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar2017_metOnzHeid.txt +70 -70
  254. pydra_core/data/statistics/Zeewaterstand/Hansweert/OvkansZee_Hansweert.txt +70 -70
  255. pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar1985_2017.txt +85 -85
  256. pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar1985_2017_metOnzHeid.txt +85 -85
  257. pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar2017.txt +84 -84
  258. pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar2017_metOnzHeid.txt +84 -84
  259. pydra_core/data/statistics/Zeewaterstand/Harlingen/OvkansZee_Harlingen.txt +70 -70
  260. pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar1985_2017.txt +84 -84
  261. pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar1985_2017_metOnzHeid.txt +84 -84
  262. pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar2017.txt +83 -83
  263. pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar2017_metOnzHeid.txt +83 -83
  264. pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/OvkansZee_Hoek van Holland.txt +70 -70
  265. pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar1985_2017.txt +86 -86
  266. pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar1985_2017_metOnzHeid.txt +86 -86
  267. pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar2017.txt +85 -85
  268. pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar2017_metOnzHeid.txt +85 -85
  269. pydra_core/data/statistics/Zeewaterstand/Huibertgat/OvkansZee_Huibertgat.txt +70 -70
  270. pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar1985_2017.txt +85 -85
  271. pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar1985_2017_metOnzHeid.txt +85 -85
  272. pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar2017.txt +85 -85
  273. pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar2017_metOnzHeid.txt +85 -85
  274. pydra_core/data/statistics/Zeewaterstand/IJmuiden/OvkansZee_IJmuiden.txt +70 -70
  275. pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar1985_2017.txt +85 -85
  276. pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar1985_2017_metOnzHeid.txt +85 -85
  277. pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar2017.txt +85 -85
  278. pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar2017_metOnzHeid.txt +85 -85
  279. pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/OvkansZee_IJmuiden_virtueel.txt +70 -70
  280. pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar1985_2017.txt +85 -85
  281. pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar1985_2017_metOnzHeid.txt +85 -85
  282. pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar2017.txt +84 -84
  283. pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar2017_metOnzHeid.txt +84 -84
  284. pydra_core/data/statistics/Zeewaterstand/Lauwersoog/OvkansZee_Lauwersoog.txt +70 -70
  285. pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar1985_2011.txt +88 -88
  286. pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar1985_2017.txt +88 -88
  287. pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar1985_2017_metOnzheid.txt +92 -92
  288. pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar2017.txt +85 -85
  289. pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar2017_metOnzheid.txt +85 -85
  290. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar1985_2017.txt +79 -79
  291. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar1985_2017_metOnzHeid.txt +79 -79
  292. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar2017.txt +79 -79
  293. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar2017_metOnzHeid.txt +79 -79
  294. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_16sectoren_12u_2023.txt +74 -74
  295. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_16sectoren_12u_2023_metOnzHeid.txt +73 -73
  296. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/OvkansZee_OS11.txt +70 -70
  297. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/OvkansZeewaterstand_OS.txt +71 -71
  298. pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar1985_2017.txt +74 -74
  299. pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar1985_2017_metOnzHeid.txt +74 -74
  300. pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar2017.txt +74 -74
  301. pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar2017_metOnzHeid.txt +74 -74
  302. pydra_core/data/statistics/Zeewaterstand/Vlissingen/OvkansZee_Vlissingen.txt +70 -70
  303. pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar1985_2017.txt +74 -74
  304. pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar1985_2017_metOnzHeid.txt +74 -74
  305. pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar2017.txt +74 -74
  306. pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar2017_metOnzHeid.txt +74 -74
  307. pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/OvkansZee_Vlissingen_virtueel.txt +70 -70
  308. pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar1985_2017.txt +87 -87
  309. pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar1985_2017_metOnzHeid.txt +87 -87
  310. pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar2017.txt +86 -86
  311. pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar2017_metOnzHeid.txt +86 -86
  312. pydra_core/data/statistics/Zeewaterstand/West-Terschelling/OvkansZee_West-Terschelling.txt +70 -70
  313. pydra_core/hrdatabase/hrdatabase.py +177 -177
  314. pydra_core/io/database_hr.py +598 -598
  315. pydra_core/io/database_settings.py +183 -183
  316. pydra_core/io/file_hydranl.py +92 -92
  317. pydra_core/location/location.py +115 -115
  318. pydra_core/location/model/base_model.py +270 -270
  319. pydra_core/location/model/loading/loading.py +368 -368
  320. pydra_core/location/model/loading/loading_factory.py +89 -89
  321. pydra_core/location/model/loading/loading_model/loading_model.py +324 -324
  322. pydra_core/location/model/loading/other_systems/loading_wave_overtopping.py +122 -122
  323. pydra_core/location/model/loading/water_systems/loading_coast.py +54 -54
  324. pydra_core/location/model/loading/water_systems/loading_eastern_scheldt.py +169 -169
  325. pydra_core/location/model/loading/water_systems/loading_ijssel_vechtdelta.py +55 -55
  326. pydra_core/location/model/loading/water_systems/loading_lake.py +55 -55
  327. pydra_core/location/model/loading/water_systems/loading_lower_rivier.py +68 -68
  328. pydra_core/location/model/loading/water_systems/loading_upper_river.py +55 -55
  329. pydra_core/location/model/statistics/other_systems/statistics_wave_overtopping.py +72 -72
  330. pydra_core/location/model/statistics/statistics.py +171 -171
  331. pydra_core/location/model/statistics/statistics_factory.py +89 -89
  332. pydra_core/location/model/statistics/stochastics/barrier/barrier.py +43 -43
  333. pydra_core/location/model/statistics/stochastics/barrier/barrier_easternscheldt.py +147 -147
  334. pydra_core/location/model/statistics/stochastics/barrier/barrier_europoort.py +209 -209
  335. pydra_core/location/model/statistics/stochastics/barrier/barrier_ramspol.py +41 -41
  336. pydra_core/location/model/statistics/stochastics/barrier/no_barrier.py +21 -21
  337. pydra_core/location/model/statistics/stochastics/discharge.py +108 -108
  338. pydra_core/location/model/statistics/stochastics/discrete_probability.py +55 -55
  339. pydra_core/location/model/statistics/stochastics/lake_level.py +158 -158
  340. pydra_core/location/model/statistics/stochastics/model_uncertainty.py +358 -358
  341. pydra_core/location/model/statistics/stochastics/sea_level/sea_level.py +53 -53
  342. pydra_core/location/model/statistics/stochastics/sea_level/sea_level_lower_river.py +93 -93
  343. pydra_core/location/model/statistics/stochastics/sea_level/sea_level_point.py +65 -65
  344. pydra_core/location/model/statistics/stochastics/sea_level/sea_level_triangular.py +158 -158
  345. pydra_core/location/model/statistics/stochastics/sigma_function.py +24 -24
  346. pydra_core/location/model/statistics/stochastics/wave_shape.py +624 -624
  347. pydra_core/location/model/statistics/stochastics/wind_speed.py +196 -196
  348. pydra_core/location/model/statistics/water_systems/statistics_coast.py +153 -153
  349. pydra_core/location/model/statistics/water_systems/statistics_eastern_scheldt.py +177 -177
  350. pydra_core/location/model/statistics/water_systems/statistics_ijssel_vechtdelta.py +229 -229
  351. pydra_core/location/model/statistics/water_systems/statistics_lake.py +86 -86
  352. pydra_core/location/model/statistics/water_systems/statistics_lower_river.py +321 -321
  353. pydra_core/location/model/statistics/water_systems/statistics_upper_river.py +86 -86
  354. pydra_core/location/model/water_system.py +249 -249
  355. pydra_core/location/model/wave_overtopping.py +25 -25
  356. pydra_core/location/profile/foreland.py +246 -246
  357. pydra_core/location/profile/lib/CombOverloopOverslag64.dll +0 -0
  358. pydra_core/location/profile/lib/DynamicLib-DaF.dll +0 -0
  359. pydra_core/location/profile/lib/README.MD +10 -10
  360. pydra_core/location/profile/lib/dllDikesOvertopping.dll +0 -0
  361. pydra_core/location/profile/lib/feedbackDLL.dll +0 -0
  362. pydra_core/location/profile/profile.py +971 -971
  363. pydra_core/location/profile/profile_loading.py +473 -473
  364. pydra_core/location/settings/settings.py +387 -387
  365. {pydra_core-0.0.1.dist-info → pydra_core-0.0.3.dist-info}/METADATA +25 -5
  366. pydra_core-0.0.3.dist-info/RECORD +393 -0
  367. pydra_core-0.0.1.dist-info/RECORD +0 -389
  368. {pydra_core-0.0.1.dist-info → pydra_core-0.0.3.dist-info}/WHEEL +0 -0
@@ -1,358 +1,358 @@
1
- import numpy as np
2
-
3
- from dataclasses import dataclass
4
- from scipy.stats import multivariate_normal, norm
5
-
6
- from ....settings.settings import Settings
7
- from .....io.database_hr import DatabaseHR
8
-
9
-
10
- class ModelUncertainty:
11
- """
12
- Model uncertainties class. Containing all model uncertainties for each closing situation.
13
-
14
- Attributes
15
- ----------
16
- model_uncertainties : dict
17
- A dictionary with
18
- """
19
-
20
- # Init attributes
21
- model_uncertainties = {}
22
- correlations = {}
23
-
24
- def __init__(self, settings: Settings):
25
- """
26
- Read the model uncertainties from the database and add them to this class
27
-
28
- Parameters
29
- ----------
30
- settings : Settings
31
- The Settings object
32
- """
33
- # Save the discretisation step size
34
- self.step_size = {
35
- "h": settings.model_uncertainty_water_level_steps,
36
- "hs": settings.model_uncertainty_wave_height_steps,
37
- "tspec": settings.model_uncertainty_wave_period_steps,
38
- }
39
-
40
- # Obtain the model uncertainties and correlation between model uncertainties
41
- with DatabaseHR(settings.database_path) as database:
42
- mu = database.get_model_uncertainties(settings)
43
- cu = database.get_correlation_uncertainties(settings)
44
-
45
- # Iterate over the model uncertainties and add them to the class
46
- for comb, uncertainty in mu.groupby(["k", "rvid"]):
47
- self.model_uncertainties[comb] = DistributionUncertainty(
48
- uncertainty.to_numpy()[0]
49
- )
50
-
51
- # Iterate over the correlation between model uncertainties and add them to the class
52
- for comb, correlation in cu.groupby(["k", "rvid", "rvid2"]):
53
- self.correlations[comb] = CorrelationUncertainty(correlation.to_numpy()[0])
54
-
55
- def iterate_model_uncertainty_wave_conditions(
56
- self, closing_situation: int = 1, wave_period: str = "tspec"
57
- ):
58
- """
59
- Iterate over all model uncertainty combinations for the significant wave height and wave period
60
-
61
- Parameters
62
- ----------
63
- closing_situation : int, optional
64
- The closing situation id (default : 1)
65
- wave_period : str, optional
66
- Whether to iterate over peak period (tp) or spectral wave period (tspec) (default : 'tspec')
67
-
68
- Returns
69
- -------
70
- iterator
71
- (hs, t, probability of (hs, t))
72
- """
73
- # Check if tp or tspec
74
- wave_period = wave_period.lower()
75
- if wave_period not in ["tp", "tspec"]:
76
- raise KeyError(f"[ERROR] Wave period '{wave_period}' unknown.")
77
-
78
- # Distributions
79
- mu_hs = self.get_model_uncertainty("hs", closing_situation)
80
- mu_t = self.get_model_uncertainty(wave_period, closing_situation)
81
-
82
- # Significant wave height
83
- if mu_hs is not None:
84
- hs, hsedges = mu_hs.discretise(self.step_size["hs"])
85
- tmp = norm.cdf(hsedges)
86
- p_hs = tmp[1:] - tmp[:-1]
87
- else:
88
- hs, p_hs = [1.0], np.array([1.0])
89
-
90
- # Wave period
91
- if mu_t is not None:
92
- t, tedges = mu_t.discretise(self.step_size["tspec"])
93
- tmp = norm.cdf(tedges)
94
- p_t = tmp[1:] - tmp[:-1]
95
- else:
96
- t, p_t = [1.0], np.array([1.0])
97
-
98
- # Multiply the probabilities (assuming independence)
99
- combined_probability = p_hs[:, None] * p_t[None, :]
100
-
101
- # Obtain the correlation between wave height and period (optional, otherwise None)
102
- corr_hs_t = self.get_correlation("hs", wave_period)
103
-
104
- # If rho is defined, apply correlation
105
- if corr_hs_t is not None:
106
- # Correlation can only be applied when both the wave height and period are defined
107
- if (mu_hs is not None) and (mu_t is not None):
108
- # Apply correlation
109
- exc_probs = np.zeros((len(hsedges), len(tedges)))
110
- for i, x in enumerate(hsedges):
111
- for j, y in enumerate(tedges):
112
- exc_probs[i, j] = multivariate_normal.cdf(
113
- [x, y],
114
- mean=(0, 0),
115
- cov=[[1, corr_hs_t.rho], [corr_hs_t.rho, 1]],
116
- )
117
-
118
- # Take the difference in both directions
119
- combined_probability = exc_probs[1:] - exc_probs[:-1]
120
- combined_probability = (
121
- combined_probability[:, 1:] - combined_probability[:, :-1]
122
- )
123
-
124
- # Otherwise give a warning
125
- else:
126
- print(
127
- "[WARNING] Correlation between wave height and period defined. However can not be applied because no model uncertainty is defined for either the wave height, period or both."
128
- )
129
-
130
- # Check
131
- assert abs(combined_probability.sum() - 1) < 1e-6
132
-
133
- # Iterator
134
- for i, fh in enumerate(hs):
135
- for j, ft in enumerate(t):
136
- yield fh, ft, combined_probability[i, j]
137
-
138
- def get_model_uncertainty(self, result_variable: str, closing_situation: int = 1):
139
- """
140
- Return the model uncertainty object for a result variable and closing situation id
141
-
142
- Parameters
143
- ----------
144
- result_variable : str
145
- Result variable (e.g. h, hs)
146
- closing_situation : int
147
- Closing situation ID (default: 1)
148
-
149
- Returns
150
- -------
151
- DistributionUncertainty or None
152
- The DistributionUncertainty object if it exists, otherwise None
153
- """
154
- # To lower
155
- rv = result_variable.lower()
156
-
157
- # Try to return the model uncertainty, otherwise return None
158
- return self.model_uncertainties.get((closing_situation, rv))
159
-
160
- def get_correlation(
161
- self, result_variable1: str, result_variable2: str, closing_situation: int = 1
162
- ):
163
- """
164
- Return the correlation object between two result variables given a closing situation id
165
-
166
- Parameters
167
- ----------
168
- result_variable1 : str
169
- Result variable (e.g. h, hs)
170
- result_variable2 : str
171
- Result variable (e.g. h, hs)
172
- closing_situation : int
173
- Closing situation ID (default: 1)
174
-
175
- Returns
176
- -------
177
- Correlation or None
178
- The Correlation object if it exists, otherwise None
179
- """
180
- # To lower
181
- rv1 = result_variable1.lower()
182
- rv2 = result_variable2.lower()
183
-
184
- # Check both orders [ccid, rvid1, rvid2]
185
- return self.correlations.get(
186
- (closing_situation, rv1, rv2),
187
- self.correlations.get((closing_situation, rv2, rv1)),
188
- )
189
-
190
- def process_model_uncertainty(
191
- self,
192
- closing_situation: int,
193
- result_variable: str,
194
- levels: np.ndarray,
195
- exceedance_probability: np.ndarray,
196
- haxis: int,
197
- ):
198
- """
199
- Verwerk modelonzekerheid in gegeven stochast. Afhankelijk van de stochast wordt de onzekerheid
200
- opgeteld (additief) of vermenigvuldigd (multiplicatief).
201
-
202
- Args:
203
- stochast (str): Stochastnaam. h, hs, tp of tspec
204
- niveaus (np.ndarray): Niveaus waarin de onzekerheden worden ingedeeld.
205
- ovkansen (np.ndarray): Overschrijdingskansen van de stochast, met eventueel meerdere dimensies
206
- die meegeïntegreerd
207
- haxis (int): as waarop de te integreren stochast zit
208
- sluitsituatie (str): Keringsituatie, in sommige gevallen is de onzekerheid hiervan afhankelijk
209
-
210
- Returns:
211
- np.ndarray: Overschrijdingskansen met geïntegreerde onzekerheid
212
- """
213
- # Obtain distribution
214
- dis = self.get_model_uncertainty(result_variable, closing_situation)
215
-
216
- # Is the model uncertainty defined?
217
- if dis is None:
218
- return exceedance_probability
219
-
220
- # Additive (h) or Multiplicative (hs, tspec, tp)
221
- if result_variable in ["h"]:
222
- klassekansen = self.bepaal_klassekansen_additief(levels, dis.mu, dis.sigma)
223
-
224
- elif result_variable in ["hs", "tp", "tspec"]:
225
- klassekansen = self.bepaal_klassekansen_multiplicatief(
226
- levels, dis.mu, dis.sigma
227
- )
228
-
229
- else:
230
- raise KeyError(result_variable)
231
-
232
- # Calculate the exceedance probability
233
- exceedance_probability = np.tensordot(
234
- klassekansen, exceedance_probability, axes=([0], [haxis])
235
- )
236
-
237
- return exceedance_probability
238
-
239
- def bepaal_klassekansen_additief(self, niveaus, mu, sigma):
240
- # Bepaal klassegrenzen en klassekansen
241
- hgrens = np.concatenate(
242
- [[-np.inf], (niveaus[1:] + niveaus[:-1]) / 2.0, [np.inf]]
243
- )
244
- klassekansen = []
245
-
246
- # Bereken per niveau (waterstand) de kans dat de waterstand door onzekerheid in een andere klasse valt
247
- for niveau in niveaus:
248
- grenskansen = norm.cdf(x=hgrens - mu, loc=niveau, scale=sigma)
249
- klassekansen.append(grenskansen[1:] - grenskansen[:-1])
250
- klassekansen = np.array(klassekansen)
251
-
252
- return klassekansen
253
-
254
- def bepaal_klassekansen_multiplicatief(self, niveaus, mu, sigma):
255
- # Bepaal klassegrenzen en klassekansen
256
- hgrens = np.concatenate(
257
- [[-np.inf], (niveaus[1:] + niveaus[:-1]) / 2.0, [np.inf]]
258
- )
259
- klassekansen = []
260
-
261
- # Bereken per niveau (waterstand) de kans dat de waterstand door onzekerheid in een andere klasse valt
262
- for niveau in niveaus:
263
- grenskansen = norm.cdf(hgrens / niveau, loc=mu, scale=sigma)
264
- klassekansen.append(grenskansen[1:] - grenskansen[:-1])
265
- klassekansen = np.array(klassekansen)
266
-
267
- return klassekansen
268
-
269
-
270
- class DistributionUncertainty:
271
- """
272
- Model uncertainty class for a closing situation.
273
- """
274
-
275
- def __init__(self, uncertainty: list):
276
- """
277
- Initialise the model uncertainty (Normal Distribution)
278
- """
279
- # Save information
280
- self.k, self.rvid, self.mu, self.sigma = uncertainty
281
- self.k = int(self.k)
282
- self.mu = float(self.mu)
283
- self.sigma = float(self.sigma)
284
-
285
- def discretise(self, nsteps: int):
286
- """
287
- Discretise the model uncertainty
288
-
289
- Parameters
290
- ----------
291
- nsteps : int
292
- Number of steps
293
-
294
- Returns
295
- -------
296
- probabilities : list
297
- List of the probabilities for each bin
298
- edges : list
299
- List with the edges of each bin
300
- """
301
- # If nsteps is 1, there is no need to discretise
302
- if nsteps == 1:
303
- return self.mu, [self.mu - 100 * self.sigma, self.mu + 100 * self.sigma]
304
-
305
- # Determine the residual probabilities
306
- keuzerestkans = 0.05
307
- restkans = keuzerestkans / (nsteps**1.5)
308
- afstand = -norm.ppf(q=0.5 * restkans, loc=0.0, scale=1.0) * self.sigma
309
- ondergrens = self.mu - afstand
310
- bovengrens = self.mu + afstand
311
-
312
- # Calculate the probability at the center of the bin
313
- probabilities = (
314
- ondergrens + np.arange(0.5, nsteps, 1) * (bovengrens - ondergrens) / nsteps
315
- )
316
-
317
- # Determine the edges of the bins
318
- edges = (
319
- np.concatenate(
320
- [
321
- [self.mu - 100 * self.sigma],
322
- (probabilities[1:] + probabilities[:-1]) / 2,
323
- [self.mu + 100 * self.sigma],
324
- ]
325
- )
326
- - self.mu
327
- ) / self.sigma
328
-
329
- # Return probabilities and edges
330
- return probabilities, edges
331
-
332
-
333
- @dataclass
334
- class CorrelationUncertainty:
335
- """
336
- Class om de correlaties tussen uitvoervariabelen op te slaan.
337
- Bijv. de correlatie tussen Hs en Tspec
338
- """
339
-
340
- def __init__(self, correlation: list):
341
- """
342
- Initialise the correlation between two result variables
343
- """
344
- # Save information
345
- self.k, self.rvid, self.rvid2, self.rho = correlation
346
- self.k = int(self.k)
347
- self.rho = float(self.rho)
348
-
349
- # Only allow correlation between Hs and Tp and Hs and Tspec
350
- if [self.rvid, self.rvid2] not in [
351
- ["hs", "tp"],
352
- ["tp", "hs"],
353
- ["hs", "tspec"],
354
- ["tspec", "hs"],
355
- ]:
356
- raise ValueError(
357
- f"Not Implemented: Correlation between ({self.rvid}) and ({self.rvid2})"
358
- )
1
+ import numpy as np
2
+
3
+ from dataclasses import dataclass
4
+ from scipy.stats import multivariate_normal, norm
5
+
6
+ from ....settings.settings import Settings
7
+ from .....io.database_hr import DatabaseHR
8
+
9
+
10
+ class ModelUncertainty:
11
+ """
12
+ Model uncertainties class. Containing all model uncertainties for each closing situation.
13
+
14
+ Attributes
15
+ ----------
16
+ model_uncertainties : dict
17
+ A dictionary with
18
+ """
19
+
20
+ # Init attributes
21
+ model_uncertainties = {}
22
+ correlations = {}
23
+
24
+ def __init__(self, settings: Settings):
25
+ """
26
+ Read the model uncertainties from the database and add them to this class
27
+
28
+ Parameters
29
+ ----------
30
+ settings : Settings
31
+ The Settings object
32
+ """
33
+ # Save the discretisation step size
34
+ self.step_size = {
35
+ "h": settings.model_uncertainty_water_level_steps,
36
+ "hs": settings.model_uncertainty_wave_height_steps,
37
+ "tspec": settings.model_uncertainty_wave_period_steps,
38
+ }
39
+
40
+ # Obtain the model uncertainties and correlation between model uncertainties
41
+ with DatabaseHR(settings.database_path) as database:
42
+ mu = database.get_model_uncertainties(settings)
43
+ cu = database.get_correlation_uncertainties(settings)
44
+
45
+ # Iterate over the model uncertainties and add them to the class
46
+ for comb, uncertainty in mu.groupby(["k", "rvid"]):
47
+ self.model_uncertainties[comb] = DistributionUncertainty(
48
+ uncertainty.to_numpy()[0]
49
+ )
50
+
51
+ # Iterate over the correlation between model uncertainties and add them to the class
52
+ for comb, correlation in cu.groupby(["k", "rvid", "rvid2"]):
53
+ self.correlations[comb] = CorrelationUncertainty(correlation.to_numpy()[0])
54
+
55
+ def iterate_model_uncertainty_wave_conditions(
56
+ self, closing_situation: int = 1, wave_period: str = "tspec"
57
+ ):
58
+ """
59
+ Iterate over all model uncertainty combinations for the significant wave height and wave period
60
+
61
+ Parameters
62
+ ----------
63
+ closing_situation : int, optional
64
+ The closing situation id (default : 1)
65
+ wave_period : str, optional
66
+ Whether to iterate over peak period (tp) or spectral wave period (tspec) (default : 'tspec')
67
+
68
+ Returns
69
+ -------
70
+ iterator
71
+ (hs, t, probability of (hs, t))
72
+ """
73
+ # Check if tp or tspec
74
+ wave_period = wave_period.lower()
75
+ if wave_period not in ["tp", "tspec"]:
76
+ raise KeyError(f"[ERROR] Wave period '{wave_period}' unknown.")
77
+
78
+ # Distributions
79
+ mu_hs = self.get_model_uncertainty("hs", closing_situation)
80
+ mu_t = self.get_model_uncertainty(wave_period, closing_situation)
81
+
82
+ # Significant wave height
83
+ if mu_hs is not None:
84
+ hs, hsedges = mu_hs.discretise(self.step_size["hs"])
85
+ tmp = norm.cdf(hsedges)
86
+ p_hs = tmp[1:] - tmp[:-1]
87
+ else:
88
+ hs, p_hs = [1.0], np.array([1.0])
89
+
90
+ # Wave period
91
+ if mu_t is not None:
92
+ t, tedges = mu_t.discretise(self.step_size["tspec"])
93
+ tmp = norm.cdf(tedges)
94
+ p_t = tmp[1:] - tmp[:-1]
95
+ else:
96
+ t, p_t = [1.0], np.array([1.0])
97
+
98
+ # Multiply the probabilities (assuming independence)
99
+ combined_probability = p_hs[:, None] * p_t[None, :]
100
+
101
+ # Obtain the correlation between wave height and period (optional, otherwise None)
102
+ corr_hs_t = self.get_correlation("hs", wave_period)
103
+
104
+ # If rho is defined, apply correlation
105
+ if corr_hs_t is not None:
106
+ # Correlation can only be applied when both the wave height and period are defined
107
+ if (mu_hs is not None) and (mu_t is not None):
108
+ # Apply correlation
109
+ exc_probs = np.zeros((len(hsedges), len(tedges)))
110
+ for i, x in enumerate(hsedges):
111
+ for j, y in enumerate(tedges):
112
+ exc_probs[i, j] = multivariate_normal.cdf(
113
+ [x, y],
114
+ mean=(0, 0),
115
+ cov=[[1, corr_hs_t.rho], [corr_hs_t.rho, 1]],
116
+ )
117
+
118
+ # Take the difference in both directions
119
+ combined_probability = exc_probs[1:] - exc_probs[:-1]
120
+ combined_probability = (
121
+ combined_probability[:, 1:] - combined_probability[:, :-1]
122
+ )
123
+
124
+ # Otherwise give a warning
125
+ else:
126
+ print(
127
+ "[WARNING] Correlation between wave height and period defined. However can not be applied because no model uncertainty is defined for either the wave height, period or both."
128
+ )
129
+
130
+ # Check
131
+ assert abs(combined_probability.sum() - 1) < 1e-6
132
+
133
+ # Iterator
134
+ for i, fh in enumerate(hs):
135
+ for j, ft in enumerate(t):
136
+ yield fh, ft, combined_probability[i, j]
137
+
138
+ def get_model_uncertainty(self, result_variable: str, closing_situation: int = 1):
139
+ """
140
+ Return the model uncertainty object for a result variable and closing situation id
141
+
142
+ Parameters
143
+ ----------
144
+ result_variable : str
145
+ Result variable (e.g. h, hs)
146
+ closing_situation : int
147
+ Closing situation ID (default: 1)
148
+
149
+ Returns
150
+ -------
151
+ DistributionUncertainty or None
152
+ The DistributionUncertainty object if it exists, otherwise None
153
+ """
154
+ # To lower
155
+ rv = result_variable.lower()
156
+
157
+ # Try to return the model uncertainty, otherwise return None
158
+ return self.model_uncertainties.get((closing_situation, rv))
159
+
160
+ def get_correlation(
161
+ self, result_variable1: str, result_variable2: str, closing_situation: int = 1
162
+ ):
163
+ """
164
+ Return the correlation object between two result variables given a closing situation id
165
+
166
+ Parameters
167
+ ----------
168
+ result_variable1 : str
169
+ Result variable (e.g. h, hs)
170
+ result_variable2 : str
171
+ Result variable (e.g. h, hs)
172
+ closing_situation : int
173
+ Closing situation ID (default: 1)
174
+
175
+ Returns
176
+ -------
177
+ Correlation or None
178
+ The Correlation object if it exists, otherwise None
179
+ """
180
+ # To lower
181
+ rv1 = result_variable1.lower()
182
+ rv2 = result_variable2.lower()
183
+
184
+ # Check both orders [ccid, rvid1, rvid2]
185
+ return self.correlations.get(
186
+ (closing_situation, rv1, rv2),
187
+ self.correlations.get((closing_situation, rv2, rv1)),
188
+ )
189
+
190
+ def process_model_uncertainty(
191
+ self,
192
+ closing_situation: int,
193
+ result_variable: str,
194
+ levels: np.ndarray,
195
+ exceedance_probability: np.ndarray,
196
+ haxis: int,
197
+ ):
198
+ """
199
+ Verwerk modelonzekerheid in gegeven stochast. Afhankelijk van de stochast wordt de onzekerheid
200
+ opgeteld (additief) of vermenigvuldigd (multiplicatief).
201
+
202
+ Args:
203
+ stochast (str): Stochastnaam. h, hs, tp of tspec
204
+ niveaus (np.ndarray): Niveaus waarin de onzekerheden worden ingedeeld.
205
+ ovkansen (np.ndarray): Overschrijdingskansen van de stochast, met eventueel meerdere dimensies
206
+ die meegeïntegreerd
207
+ haxis (int): as waarop de te integreren stochast zit
208
+ sluitsituatie (str): Keringsituatie, in sommige gevallen is de onzekerheid hiervan afhankelijk
209
+
210
+ Returns:
211
+ np.ndarray: Overschrijdingskansen met geïntegreerde onzekerheid
212
+ """
213
+ # Obtain distribution
214
+ dis = self.get_model_uncertainty(result_variable, closing_situation)
215
+
216
+ # Is the model uncertainty defined?
217
+ if dis is None:
218
+ return exceedance_probability
219
+
220
+ # Additive (h) or Multiplicative (hs, tspec, tp)
221
+ if result_variable in ["h"]:
222
+ klassekansen = self.bepaal_klassekansen_additief(levels, dis.mu, dis.sigma)
223
+
224
+ elif result_variable in ["hs", "tp", "tspec"]:
225
+ klassekansen = self.bepaal_klassekansen_multiplicatief(
226
+ levels, dis.mu, dis.sigma
227
+ )
228
+
229
+ else:
230
+ raise KeyError(result_variable)
231
+
232
+ # Calculate the exceedance probability
233
+ exceedance_probability = np.tensordot(
234
+ klassekansen, exceedance_probability, axes=([0], [haxis])
235
+ )
236
+
237
+ return exceedance_probability
238
+
239
+ def bepaal_klassekansen_additief(self, niveaus, mu, sigma):
240
+ # Bepaal klassegrenzen en klassekansen
241
+ hgrens = np.concatenate(
242
+ [[-np.inf], (niveaus[1:] + niveaus[:-1]) / 2.0, [np.inf]]
243
+ )
244
+ klassekansen = []
245
+
246
+ # Bereken per niveau (waterstand) de kans dat de waterstand door onzekerheid in een andere klasse valt
247
+ for niveau in niveaus:
248
+ grenskansen = norm.cdf(x=hgrens - mu, loc=niveau, scale=sigma)
249
+ klassekansen.append(grenskansen[1:] - grenskansen[:-1])
250
+ klassekansen = np.array(klassekansen)
251
+
252
+ return klassekansen
253
+
254
+ def bepaal_klassekansen_multiplicatief(self, niveaus, mu, sigma):
255
+ # Bepaal klassegrenzen en klassekansen
256
+ hgrens = np.concatenate(
257
+ [[-np.inf], (niveaus[1:] + niveaus[:-1]) / 2.0, [np.inf]]
258
+ )
259
+ klassekansen = []
260
+
261
+ # Bereken per niveau (waterstand) de kans dat de waterstand door onzekerheid in een andere klasse valt
262
+ for niveau in niveaus:
263
+ grenskansen = norm.cdf(hgrens / niveau, loc=mu, scale=sigma)
264
+ klassekansen.append(grenskansen[1:] - grenskansen[:-1])
265
+ klassekansen = np.array(klassekansen)
266
+
267
+ return klassekansen
268
+
269
+
270
+ class DistributionUncertainty:
271
+ """
272
+ Model uncertainty class for a closing situation.
273
+ """
274
+
275
+ def __init__(self, uncertainty: list):
276
+ """
277
+ Initialise the model uncertainty (Normal Distribution)
278
+ """
279
+ # Save information
280
+ self.k, self.rvid, self.mu, self.sigma = uncertainty
281
+ self.k = int(self.k)
282
+ self.mu = float(self.mu)
283
+ self.sigma = float(self.sigma)
284
+
285
+ def discretise(self, nsteps: int):
286
+ """
287
+ Discretise the model uncertainty
288
+
289
+ Parameters
290
+ ----------
291
+ nsteps : int
292
+ Number of steps
293
+
294
+ Returns
295
+ -------
296
+ probabilities : list
297
+ List of the probabilities for each bin
298
+ edges : list
299
+ List with the edges of each bin
300
+ """
301
+ # If nsteps is 1, there is no need to discretise
302
+ if nsteps == 1:
303
+ return self.mu, [self.mu - 100 * self.sigma, self.mu + 100 * self.sigma]
304
+
305
+ # Determine the residual probabilities
306
+ keuzerestkans = 0.05
307
+ restkans = keuzerestkans / (nsteps**1.5)
308
+ afstand = -norm.ppf(q=0.5 * restkans, loc=0.0, scale=1.0) * self.sigma
309
+ ondergrens = self.mu - afstand
310
+ bovengrens = self.mu + afstand
311
+
312
+ # Calculate the probability at the center of the bin
313
+ probabilities = (
314
+ ondergrens + np.arange(0.5, nsteps, 1) * (bovengrens - ondergrens) / nsteps
315
+ )
316
+
317
+ # Determine the edges of the bins
318
+ edges = (
319
+ np.concatenate(
320
+ [
321
+ [self.mu - 100 * self.sigma],
322
+ (probabilities[1:] + probabilities[:-1]) / 2,
323
+ [self.mu + 100 * self.sigma],
324
+ ]
325
+ )
326
+ - self.mu
327
+ ) / self.sigma
328
+
329
+ # Return probabilities and edges
330
+ return probabilities, edges
331
+
332
+
333
+ @dataclass
334
+ class CorrelationUncertainty:
335
+ """
336
+ Class om de correlaties tussen uitvoervariabelen op te slaan.
337
+ Bijv. de correlatie tussen Hs en Tspec
338
+ """
339
+
340
+ def __init__(self, correlation: list):
341
+ """
342
+ Initialise the correlation between two result variables
343
+ """
344
+ # Save information
345
+ self.k, self.rvid, self.rvid2, self.rho = correlation
346
+ self.k = int(self.k)
347
+ self.rho = float(self.rho)
348
+
349
+ # Only allow correlation between Hs and Tp and Hs and Tspec
350
+ if [self.rvid, self.rvid2] not in [
351
+ ["hs", "tp"],
352
+ ["tp", "hs"],
353
+ ["hs", "tspec"],
354
+ ["tspec", "hs"],
355
+ ]:
356
+ raise ValueError(
357
+ f"Not Implemented: Correlation between ({self.rvid}) and ({self.rvid2})"
358
+ )