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,368 +1,368 @@
1
- import numpy as np
2
-
3
- from abc import ABC, abstractmethod
4
- from typing import Tuple, Union
5
-
6
- from ...settings.settings import Settings
7
- from ....common.interpolate import InterpStruct
8
- # from ....io.database_hr import DatabaseHR
9
-
10
-
11
- class Loading(ABC):
12
- """
13
- Loading Abstract Base Class. This class contains all LoadingModels.
14
-
15
- Attributes
16
- ----------
17
- settings : Settings
18
- The Settings object
19
- model : dict
20
- Dictionary with all LoadingModels (wind direction, closing situation)
21
- database : DatabaseHR
22
- Connection with HR Database
23
- """
24
-
25
- def __init__(self, settings: Settings):
26
- """
27
- Init the Loading object
28
-
29
- Parameters
30
- ----------
31
- settings : Settings
32
- The Settings object
33
- """
34
- # Save settings and init dictionary for all models
35
- self.settings = settings
36
- self.model = {}
37
-
38
- @abstractmethod
39
- def read_loading(self) -> None:
40
- """
41
- Read the HR and create Loading Models
42
- """
43
- pass
44
-
45
- def iter_models(self):
46
- """
47
- Iterate through each of the LoadingModels.
48
- LoadingModels are ordered by WindDirection, ClosingSituation
49
- """
50
- for discreet, model in self.model.items():
51
- yield discreet, model
52
-
53
- def _extend_loadingmodels(self) -> None:
54
- """
55
- Preprocess the LoadingModels.
56
- Makes sure the discretisations in every LoadingModel are the same.
57
- """
58
- # Obtain the wind directions and closing situations
59
- self.r = sorted(set([r[0] for r in list(self.model.keys())]))
60
- self.k = sorted(set([k[1] for k in list(self.model.keys())]))
61
-
62
- # Collect all unique wind speeds from all loadingmodels
63
- utot = sorted(set([u for _, model in self.iter_models() for u in model.u]))
64
-
65
- # Extend the stochasts in each loadingmodel
66
- for _, model in self.iter_models():
67
- # Extend the wind speed
68
- model.extend("u", utot)
69
-
70
- # Extend for discharge
71
- if "q" in model.input_variables:
72
- if len(model.q) > 1:
73
- model.extend(
74
- "q",
75
- list(filter(None, [self.settings.q_min, self.settings.q_max])),
76
- )
77
-
78
- # Extend for sea level
79
- if "m" in model.input_variables:
80
- if len(model.m) > 1:
81
- model.extend(
82
- "m",
83
- list(filter(None, [self.settings.m_min, self.settings.m_max])),
84
- )
85
-
86
- # Extend for lake level
87
- if "a" in model.input_variables:
88
- if len(model.a) > 1:
89
- model.extend(
90
- "a",
91
- list(filter(None, [self.settings.a_min, self.settings.a_max])),
92
- )
93
-
94
- def repair_loadingmodels(
95
- self, result_variables: Union[list, str], epsilon: float = 1e-6
96
- ) -> None:
97
- """
98
- Repair the result variables for all LoadingModels
99
- Repairs depending on the '{input_variable}_repair' flag in the Settings
100
-
101
- Parameters
102
- ----------
103
- result_variables : Union[list, str]
104
- Result variables
105
- epsilon : float
106
- The minimum increase when repairing (default : 1e-6)
107
- """
108
- # For each LoadingModel (wind direction and closing situation)
109
- for _, model in self.iter_models():
110
- # Loop over the inputvariables
111
- for inpvar in model.input_variables:
112
- # Only repair base stochastics
113
- if inpvar not in ["u", "m", "q", "a"]:
114
- continue
115
-
116
- # Only if the flag '{input_variable}_repair' is True
117
- if not getattr(self.settings, f"{inpvar}_repair"):
118
- continue
119
-
120
- # For each result variable
121
- for rv in np.atleast_1d(result_variables):
122
- # If the result variable from the argument is not in the LoadingModel or if it the wave direction, skip
123
- if (rv not in model.result_variables) or (rv == "dir"):
124
- continue
125
-
126
- # Repair the LoadingModel
127
- model.repair(inpvar, rv, epsilon)
128
-
129
- def get_result_variable_statistic(self, result_variable: str, stat: str, args=()):
130
- """
131
- Obtain statistics for a result variable. (e.g. min, max)
132
-
133
- Parameters
134
- ----------
135
- result_variable : str
136
- Result variable (h, hs, tp, tspec, hbn, qov, etc.)
137
- statistic : str
138
- NumPy function, e.g. 'max', 'min'
139
- args : tuple
140
- Optional if required by NumPy function
141
-
142
- Returns
143
- -------
144
- statistic : float
145
- The statistic
146
- """
147
- # Obtain raveled result variable array
148
- arr = self.get_result_variable_raveled(result_variable)
149
-
150
- # Obtain the statistics using the raveled result variable array
151
- result = getattr(np, stat)(arr, *args)
152
-
153
- # Return statistic
154
- return result
155
-
156
- def get_result_variable_raveled(self, result_variable: str) -> np.ndarray:
157
- """
158
- Obtain all values for a result variable in one array
159
-
160
- Parameters
161
- ----------
162
- result_variable : str
163
- Result variable (h, hs, tp, tspec, hbn, qov, etc.)
164
-
165
- Returns
166
- -------
167
- np.ndarray
168
- 1D array with all values of a certain result variable
169
- """
170
- # Loop over every discrete model and add all result variables values to an array
171
- arr = np.concatenate(
172
- [
173
- getattr(model, result_variable).ravel()
174
- for _, model in self.iter_models()
175
- ],
176
- axis=-1,
177
- )
178
-
179
- # Return the array
180
- return arr
181
-
182
- def get_quantile_range(
183
- self,
184
- result_variable: str,
185
- lower_quantile: float,
186
- upper_quantile: float,
187
- round_digits: int = None,
188
- ) -> Tuple[float, float]:
189
- """Geef kwantielen van een gekozen variabele. De uitkomst kan worden
190
- afgerond wanneer 'rounddigits' is gegeven.
191
-
192
- Parameters
193
- ----------
194
- result_variable : str
195
- Result variable (h, hs, tp, tspec, hbn, qov, etc.)
196
- lower_quantile : float
197
- Lower quantile, between 0.0 en 1.0
198
- upper_quantile : float
199
- Upper quantile, between 0.0 en 1.0
200
- round_digits : int, optional
201
- Aantal digits waarop afgerond wordt, standaard None
202
-
203
- Returns
204
- -------
205
- tuple
206
- Parameterwaarden voor het onder en bovenkwantiel.
207
- """
208
- # Obtain all values of the result variable in the discrete models in one array
209
- arr = self.get_result_variable_raveled(result_variable)
210
-
211
- # Determine lower and upper quantile
212
- lower = np.quantile(arr, lower_quantile)
213
- upper = np.quantile(arr, upper_quantile)
214
-
215
- # If required, apply rounding
216
- if round_digits is not None:
217
- lower = np.round(lower, round_digits)
218
- upper = np.round(upper, round_digits)
219
-
220
- # Return the quantiles
221
- return lower, upper
222
-
223
- def get_wave_conditions(
224
- self,
225
- direction: float,
226
- waterlevel: Union[int, float, list, np.ndarray],
227
- extrapolate: bool = True,
228
- ) -> Tuple[dict, np.ndarray]:
229
- """
230
- Return the wave conditions given a wind direction and wind speed.
231
-
232
- The function assumes the wave conditions are a function of:
233
- - The local water level
234
- - The wind direction
235
- - The wind speed
236
-
237
- Parameters
238
- ----------
239
- direction : float
240
- The wind direction
241
- waterlevel : Union[float, list, np.ndarray]
242
- Water level(s)
243
- extrapolate : bool, optional
244
- Whether or not to extrapolate (default : True)
245
-
246
- Returns
247
- -------
248
- Tuple[dict{str : np.ndarray}, np.ndarray]
249
- 1.) A dictionary with
250
- key : The loading variable (e.g. h, hs, tspec, tp, dir)
251
- np.ndarray : 2D array with size [u, waterlevel]
252
- The wave conditions for different wind speed (nd-array)
253
- 2.) The wind speed discretistation (1d-array)
254
- """
255
- # Convert the water level to a ndarray
256
- if isinstance(waterlevel, (float, int)):
257
- waterlevel = np.array([waterlevel])
258
- elif isinstance(waterlevel, list):
259
- waterlevel = np.array(waterlevel)
260
-
261
- # Result variables
262
- resvars = ["h", "hs", "tspec", "tp", "dir"]
263
-
264
- # Obtain all loading models for one wind direction
265
- loading_r = [model for key, model in self.model.items() if direction in key]
266
- first_model = loading_r[0]
267
-
268
- # Create an empty dictionary for the wave conditions
269
- wave_conditions = {
270
- resvar: np.zeros((len(waterlevel), len(first_model.u)), dtype=np.float32)
271
- for resvar in resvars
272
- }
273
-
274
- # Change the loading shape such that all wave conditions are available per wind direction and wind speed
275
- loading_reshaped = {}
276
-
277
- # For each loading parameter (resvar)
278
- for resvar in resvars:
279
- # Obtain the loading array for each loading model, stack over the last dimension such
280
- # that the input order of the other stochastics are unchanged: e.g. parts[model, u, m, d, p]
281
- parts = []
282
- for model in loading_r:
283
- if hasattr(model, resvar):
284
- parts.append(getattr(model, resvar))
285
- else:
286
- if (resvar == "tp") and hasattr(model, "tspec"):
287
- parts.append(getattr(model, "tspec") * 1.1)
288
- elif (resvar == "tspec") and hasattr(model, "tp"):
289
- parts.append(getattr(model, "tp") / 1.1)
290
- else:
291
- raise KeyError(f'"{resvar}" not present.')
292
-
293
- # e.g. arr[u, m, d, p, model]
294
- arr = np.stack(parts, axis=-1)
295
-
296
- # Reshape
297
- upos = first_model.input_variables.index("u")
298
-
299
- # If the axis of the wind speed is not the first dimension, swap axes
300
- if upos != 0:
301
- # Swap to axis with the wind speed to the first dimension
302
- tmparr = np.swapaxes(arr, 0, upos)
303
-
304
- # Reshaped [u, comb van (m, d, p en de sluitsituatie (model))]
305
- reshaped = tmparr.reshape((tmparr.shape[0], np.prod(tmparr.shape[1:])))
306
-
307
- # Otherwise, only reshape the array
308
- else:
309
- reshaped = arr.reshape((arr.shape[0], np.prod(arr.shape[1:])))
310
-
311
- # Determine the order of the water levels
312
- if resvar == "h":
313
- order = np.argsort(reshaped, axis=1)
314
-
315
- # Sort
316
- i = np.arange(reshaped.shape[0])[:, None]
317
- loading_reshaped[resvar] = reshaped[i, order]
318
-
319
- # Obtain the waterlevels, over which will be interpolated
320
- hbelast = loading_reshaped["h"]
321
-
322
- # Interpolate over the water level, for the wind speed
323
- for iu in range(len(first_model.u)):
324
- # Prepare interpolation
325
- index = np.unique(hbelast[iu].round(3), return_index=True)[1]
326
- h_unique = hbelast[iu][index]
327
-
328
- # If there is only one water level given, we dont need to interpolate
329
- if len(h_unique) == 1:
330
- for resvar in resvars:
331
- wave_conditions[resvar][:, iu] = loading_reshaped[resvar][iu][index]
332
-
333
- # For more water levels, we do need to interpolate
334
- else:
335
- intstr = InterpStruct(x=waterlevel, xp=h_unique)
336
- for resvar in resvars:
337
- # Dont interpolate the water level, we will add this at the end
338
- if resvar == "h":
339
- continue
340
- fp = loading_reshaped[resvar][iu][index]
341
-
342
- # If all result variables are 0, skip
343
- if (fp == 0.0).all():
344
- continue
345
-
346
- # If there is only one result variable, apply this one
347
- if (fp == fp[0]).all():
348
- intbelast = fp[0]
349
-
350
- # Otherwise, interpolate the wave loading
351
- else:
352
- if resvar == "dir":
353
- intbelast = intstr.interp_angle(
354
- fp=fp, extrapolate=extrapolate
355
- )
356
- else:
357
- intbelast = np.maximum(
358
- 0, intstr.interp(fp=fp, extrapolate=extrapolate)
359
- )
360
-
361
- # Add the resvar to the result 'wave_conditions' dictionary
362
- wave_conditions[resvar][:, iu] = intbelast
363
-
364
- # Add the water level
365
- wave_conditions["h"][:, :] = waterlevel[:, None]
366
-
367
- # Return wave conditions and the wind speed discretisation
368
- return wave_conditions, first_model.u
1
+ import numpy as np
2
+
3
+ from abc import ABC, abstractmethod
4
+ from typing import Tuple, Union
5
+
6
+ from ...settings.settings import Settings
7
+ from ....common.interpolate import InterpStruct
8
+ # from ....io.database_hr import DatabaseHR
9
+
10
+
11
+ class Loading(ABC):
12
+ """
13
+ Loading Abstract Base Class. This class contains all LoadingModels.
14
+
15
+ Attributes
16
+ ----------
17
+ settings : Settings
18
+ The Settings object
19
+ model : dict
20
+ Dictionary with all LoadingModels (wind direction, closing situation)
21
+ database : DatabaseHR
22
+ Connection with HR Database
23
+ """
24
+
25
+ def __init__(self, settings: Settings):
26
+ """
27
+ Init the Loading object
28
+
29
+ Parameters
30
+ ----------
31
+ settings : Settings
32
+ The Settings object
33
+ """
34
+ # Save settings and init dictionary for all models
35
+ self.settings = settings
36
+ self.model = {}
37
+
38
+ @abstractmethod
39
+ def read_loading(self) -> None:
40
+ """
41
+ Read the HR and create Loading Models
42
+ """
43
+ pass
44
+
45
+ def iter_models(self):
46
+ """
47
+ Iterate through each of the LoadingModels.
48
+ LoadingModels are ordered by WindDirection, ClosingSituation
49
+ """
50
+ for discreet, model in self.model.items():
51
+ yield discreet, model
52
+
53
+ def _extend_loadingmodels(self) -> None:
54
+ """
55
+ Preprocess the LoadingModels.
56
+ Makes sure the discretisations in every LoadingModel are the same.
57
+ """
58
+ # Obtain the wind directions and closing situations
59
+ self.r = sorted(set([r[0] for r in list(self.model.keys())]))
60
+ self.k = sorted(set([k[1] for k in list(self.model.keys())]))
61
+
62
+ # Collect all unique wind speeds from all loadingmodels
63
+ utot = sorted(set([u for _, model in self.iter_models() for u in model.u]))
64
+
65
+ # Extend the stochasts in each loadingmodel
66
+ for _, model in self.iter_models():
67
+ # Extend the wind speed
68
+ model.extend("u", utot)
69
+
70
+ # Extend for discharge
71
+ if "q" in model.input_variables:
72
+ if len(model.q) > 1:
73
+ model.extend(
74
+ "q",
75
+ list(filter(None, [self.settings.q_min, self.settings.q_max])),
76
+ )
77
+
78
+ # Extend for sea level
79
+ if "m" in model.input_variables:
80
+ if len(model.m) > 1:
81
+ model.extend(
82
+ "m",
83
+ list(filter(None, [self.settings.m_min, self.settings.m_max])),
84
+ )
85
+
86
+ # Extend for lake level
87
+ if "a" in model.input_variables:
88
+ if len(model.a) > 1:
89
+ model.extend(
90
+ "a",
91
+ list(filter(None, [self.settings.a_min, self.settings.a_max])),
92
+ )
93
+
94
+ def repair_loadingmodels(
95
+ self, result_variables: Union[list, str], epsilon: float = 1e-6
96
+ ) -> None:
97
+ """
98
+ Repair the result variables for all LoadingModels
99
+ Repairs depending on the '{input_variable}_repair' flag in the Settings
100
+
101
+ Parameters
102
+ ----------
103
+ result_variables : Union[list, str]
104
+ Result variables
105
+ epsilon : float
106
+ The minimum increase when repairing (default : 1e-6)
107
+ """
108
+ # For each LoadingModel (wind direction and closing situation)
109
+ for _, model in self.iter_models():
110
+ # Loop over the inputvariables
111
+ for inpvar in model.input_variables:
112
+ # Only repair base stochastics
113
+ if inpvar not in ["u", "m", "q", "a"]:
114
+ continue
115
+
116
+ # Only if the flag '{input_variable}_repair' is True
117
+ if not getattr(self.settings, f"{inpvar}_repair"):
118
+ continue
119
+
120
+ # For each result variable
121
+ for rv in np.atleast_1d(result_variables):
122
+ # If the result variable from the argument is not in the LoadingModel or if it the wave direction, skip
123
+ if (rv not in model.result_variables) or (rv == "dir"):
124
+ continue
125
+
126
+ # Repair the LoadingModel
127
+ model.repair(inpvar, rv, epsilon)
128
+
129
+ def get_result_variable_statistic(self, result_variable: str, stat: str, args=()):
130
+ """
131
+ Obtain statistics for a result variable. (e.g. min, max)
132
+
133
+ Parameters
134
+ ----------
135
+ result_variable : str
136
+ Result variable (h, hs, tp, tspec, hbn, qov, etc.)
137
+ statistic : str
138
+ NumPy function, e.g. 'max', 'min'
139
+ args : tuple
140
+ Optional if required by NumPy function
141
+
142
+ Returns
143
+ -------
144
+ statistic : float
145
+ The statistic
146
+ """
147
+ # Obtain raveled result variable array
148
+ arr = self.get_result_variable_raveled(result_variable)
149
+
150
+ # Obtain the statistics using the raveled result variable array
151
+ result = getattr(np, stat)(arr, *args)
152
+
153
+ # Return statistic
154
+ return result
155
+
156
+ def get_result_variable_raveled(self, result_variable: str) -> np.ndarray:
157
+ """
158
+ Obtain all values for a result variable in one array
159
+
160
+ Parameters
161
+ ----------
162
+ result_variable : str
163
+ Result variable (h, hs, tp, tspec, hbn, qov, etc.)
164
+
165
+ Returns
166
+ -------
167
+ np.ndarray
168
+ 1D array with all values of a certain result variable
169
+ """
170
+ # Loop over every discrete model and add all result variables values to an array
171
+ arr = np.concatenate(
172
+ [
173
+ getattr(model, result_variable).ravel()
174
+ for _, model in self.iter_models()
175
+ ],
176
+ axis=-1,
177
+ )
178
+
179
+ # Return the array
180
+ return arr
181
+
182
+ def get_quantile_range(
183
+ self,
184
+ result_variable: str,
185
+ lower_quantile: float,
186
+ upper_quantile: float,
187
+ round_digits: int = None,
188
+ ) -> Tuple[float, float]:
189
+ """Geef kwantielen van een gekozen variabele. De uitkomst kan worden
190
+ afgerond wanneer 'rounddigits' is gegeven.
191
+
192
+ Parameters
193
+ ----------
194
+ result_variable : str
195
+ Result variable (h, hs, tp, tspec, hbn, qov, etc.)
196
+ lower_quantile : float
197
+ Lower quantile, between 0.0 en 1.0
198
+ upper_quantile : float
199
+ Upper quantile, between 0.0 en 1.0
200
+ round_digits : int, optional
201
+ Aantal digits waarop afgerond wordt, standaard None
202
+
203
+ Returns
204
+ -------
205
+ tuple
206
+ Parameterwaarden voor het onder en bovenkwantiel.
207
+ """
208
+ # Obtain all values of the result variable in the discrete models in one array
209
+ arr = self.get_result_variable_raveled(result_variable)
210
+
211
+ # Determine lower and upper quantile
212
+ lower = np.quantile(arr, lower_quantile)
213
+ upper = np.quantile(arr, upper_quantile)
214
+
215
+ # If required, apply rounding
216
+ if round_digits is not None:
217
+ lower = np.round(lower, round_digits)
218
+ upper = np.round(upper, round_digits)
219
+
220
+ # Return the quantiles
221
+ return lower, upper
222
+
223
+ def get_wave_conditions(
224
+ self,
225
+ direction: float,
226
+ waterlevel: Union[int, float, list, np.ndarray],
227
+ extrapolate: bool = True,
228
+ ) -> Tuple[dict, np.ndarray]:
229
+ """
230
+ Return the wave conditions given a wind direction and wind speed.
231
+
232
+ The function assumes the wave conditions are a function of:
233
+ - The local water level
234
+ - The wind direction
235
+ - The wind speed
236
+
237
+ Parameters
238
+ ----------
239
+ direction : float
240
+ The wind direction
241
+ waterlevel : Union[float, list, np.ndarray]
242
+ Water level(s)
243
+ extrapolate : bool, optional
244
+ Whether or not to extrapolate (default : True)
245
+
246
+ Returns
247
+ -------
248
+ Tuple[dict{str : np.ndarray}, np.ndarray]
249
+ 1.) A dictionary with
250
+ key : The loading variable (e.g. h, hs, tspec, tp, dir)
251
+ np.ndarray : 2D array with size [u, waterlevel]
252
+ The wave conditions for different wind speed (nd-array)
253
+ 2.) The wind speed discretistation (1d-array)
254
+ """
255
+ # Convert the water level to a ndarray
256
+ if isinstance(waterlevel, (float, int)):
257
+ waterlevel = np.array([waterlevel])
258
+ elif isinstance(waterlevel, list):
259
+ waterlevel = np.array(waterlevel)
260
+
261
+ # Result variables
262
+ resvars = ["h", "hs", "tspec", "tp", "dir"]
263
+
264
+ # Obtain all loading models for one wind direction
265
+ loading_r = [model for key, model in self.model.items() if direction in key]
266
+ first_model = loading_r[0]
267
+
268
+ # Create an empty dictionary for the wave conditions
269
+ wave_conditions = {
270
+ resvar: np.zeros((len(waterlevel), len(first_model.u)), dtype=np.float32)
271
+ for resvar in resvars
272
+ }
273
+
274
+ # Change the loading shape such that all wave conditions are available per wind direction and wind speed
275
+ loading_reshaped = {}
276
+
277
+ # For each loading parameter (resvar)
278
+ for resvar in resvars:
279
+ # Obtain the loading array for each loading model, stack over the last dimension such
280
+ # that the input order of the other stochastics are unchanged: e.g. parts[model, u, m, d, p]
281
+ parts = []
282
+ for model in loading_r:
283
+ if hasattr(model, resvar):
284
+ parts.append(getattr(model, resvar))
285
+ else:
286
+ if (resvar == "tp") and hasattr(model, "tspec"):
287
+ parts.append(getattr(model, "tspec") * 1.1)
288
+ elif (resvar == "tspec") and hasattr(model, "tp"):
289
+ parts.append(getattr(model, "tp") / 1.1)
290
+ else:
291
+ raise KeyError(f'"{resvar}" not present.')
292
+
293
+ # e.g. arr[u, m, d, p, model]
294
+ arr = np.stack(parts, axis=-1)
295
+
296
+ # Reshape
297
+ upos = first_model.input_variables.index("u")
298
+
299
+ # If the axis of the wind speed is not the first dimension, swap axes
300
+ if upos != 0:
301
+ # Swap to axis with the wind speed to the first dimension
302
+ tmparr = np.swapaxes(arr, 0, upos)
303
+
304
+ # Reshaped [u, comb van (m, d, p en de sluitsituatie (model))]
305
+ reshaped = tmparr.reshape((tmparr.shape[0], np.prod(tmparr.shape[1:])))
306
+
307
+ # Otherwise, only reshape the array
308
+ else:
309
+ reshaped = arr.reshape((arr.shape[0], np.prod(arr.shape[1:])))
310
+
311
+ # Determine the order of the water levels
312
+ if resvar == "h":
313
+ order = np.argsort(reshaped, axis=1)
314
+
315
+ # Sort
316
+ i = np.arange(reshaped.shape[0])[:, None]
317
+ loading_reshaped[resvar] = reshaped[i, order]
318
+
319
+ # Obtain the waterlevels, over which will be interpolated
320
+ hbelast = loading_reshaped["h"]
321
+
322
+ # Interpolate over the water level, for the wind speed
323
+ for iu in range(len(first_model.u)):
324
+ # Prepare interpolation
325
+ index = np.unique(hbelast[iu].round(3), return_index=True)[1]
326
+ h_unique = hbelast[iu][index]
327
+
328
+ # If there is only one water level given, we dont need to interpolate
329
+ if len(h_unique) == 1:
330
+ for resvar in resvars:
331
+ wave_conditions[resvar][:, iu] = loading_reshaped[resvar][iu][index]
332
+
333
+ # For more water levels, we do need to interpolate
334
+ else:
335
+ intstr = InterpStruct(x=waterlevel, xp=h_unique)
336
+ for resvar in resvars:
337
+ # Dont interpolate the water level, we will add this at the end
338
+ if resvar == "h":
339
+ continue
340
+ fp = loading_reshaped[resvar][iu][index]
341
+
342
+ # If all result variables are 0, skip
343
+ if (fp == 0.0).all():
344
+ continue
345
+
346
+ # If there is only one result variable, apply this one
347
+ if (fp == fp[0]).all():
348
+ intbelast = fp[0]
349
+
350
+ # Otherwise, interpolate the wave loading
351
+ else:
352
+ if resvar == "dir":
353
+ intbelast = intstr.interp_angle(
354
+ fp=fp, extrapolate=extrapolate
355
+ )
356
+ else:
357
+ intbelast = np.maximum(
358
+ 0, intstr.interp(fp=fp, extrapolate=extrapolate)
359
+ )
360
+
361
+ # Add the resvar to the result 'wave_conditions' dictionary
362
+ wave_conditions[resvar][:, iu] = intbelast
363
+
364
+ # Add the water level
365
+ wave_conditions["h"][:, :] = waterlevel[:, None]
366
+
367
+ # Return wave conditions and the wind speed discretisation
368
+ return wave_conditions, first_model.u