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

Sign up to get free protection for your applications and to get access to all the features.
Files changed (389) hide show
  1. pydra_core/__init__.py +32 -0
  2. pydra_core/common/__init__.py +0 -0
  3. pydra_core/common/common.py +98 -0
  4. pydra_core/common/enum.py +63 -0
  5. pydra_core/common/interpolate.py +345 -0
  6. pydra_core/common/probability.py +293 -0
  7. pydra_core/core/__init__.py +0 -0
  8. pydra_core/core/calculation.py +51 -0
  9. pydra_core/core/datamodels/__init__.py +0 -0
  10. pydra_core/core/datamodels/frequency_line.py +60 -0
  11. pydra_core/core/exceedance_frequency_line.py +224 -0
  12. pydra_core/core/exceedance_frequency_line_experimental.py +163 -0
  13. pydra_core/core/hbn.py +226 -0
  14. pydra_core/data/settings/calculation_settings.sqlite +0 -0
  15. pydra_core/data/settings/lower_river_settings.cpg +1 -0
  16. pydra_core/data/settings/lower_river_settings.dbf +0 -0
  17. pydra_core/data/settings/lower_river_settings.prj +1 -0
  18. pydra_core/data/settings/lower_river_settings.shp +0 -0
  19. pydra_core/data/settings/lower_river_settings.shx +0 -0
  20. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_2017.txt +37 -0
  21. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_2017_metOnzHeid.txt +46 -0
  22. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2015_metOnzHeid_v02.txt +50 -0
  23. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2015_v02.txt +42 -0
  24. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2050_metOnzHeid_v02.txt +56 -0
  25. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2050_v02.txt +48 -0
  26. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2100_metOnzHeid_v02.txt +56 -0
  27. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2100_v02.txt +48 -0
  28. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2015_metOnzHeid_v02.txt +50 -0
  29. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2015_v02.txt +42 -0
  30. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2050_metOnzHeid_v02.txt +56 -0
  31. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2050_v02.txt +48 -0
  32. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2100_metOnzHeid_v02.txt +51 -0
  33. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2100_v02.txt +44 -0
  34. pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_Ref.txt +28 -0
  35. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_2017.txt +31 -0
  36. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_2017_metOnzHeid.txt +33 -0
  37. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2015.txt +44 -0
  38. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2015_metOnzHeid.txt +34 -0
  39. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2050.txt +44 -0
  40. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2050_metOnzHeid.txt +34 -0
  41. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2100.txt +44 -0
  42. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2100_metOnzHeid.txt +39 -0
  43. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2015.txt +44 -0
  44. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2015_metOnzHeid.txt +34 -0
  45. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2050.txt +44 -0
  46. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2050_metOnzHeid.txt +34 -0
  47. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2100.txt +44 -0
  48. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2100_metOnzHeid.txt +34 -0
  49. pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_Ref.txt +14 -0
  50. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_2017.txt +47 -0
  51. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_2017_metOnzHeid.txt +47 -0
  52. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2015.txt +49 -0
  53. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2015_metOnzHeid.txt +59 -0
  54. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2050.txt +49 -0
  55. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2050_metOnzHeid.txt +59 -0
  56. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2100.txt +49 -0
  57. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2100_metOnzHeid.txt +59 -0
  58. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2015.txt +49 -0
  59. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2015_metOnzHeid.txt +59 -0
  60. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2050.txt +49 -0
  61. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2050_metOnzHeid.txt +59 -0
  62. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2100.txt +49 -0
  63. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2100_metOnzHeid.txt +59 -0
  64. pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_Ref.txt +21 -0
  65. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_2017.txt +33 -0
  66. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_2017_metOnzHeid.txt +60 -0
  67. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015.txt +49 -0
  68. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015_BenedenRijn.txt +50 -0
  69. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015_metOnzHeid.txt +63 -0
  70. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015_metOnzHeid_BenedenRijn.txt +65 -0
  71. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050.txt +49 -0
  72. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050_BenedenRijn.txt +50 -0
  73. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050_metOnzHeid.txt +63 -0
  74. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050_metOnzHeid_BenedenRijn.txt +65 -0
  75. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100.txt +49 -0
  76. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100_BenedenRijn.txt +50 -0
  77. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100_metOnzHeid.txt +63 -0
  78. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100_metOnzHeid_BenedenRijn.txt +65 -0
  79. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015.txt +50 -0
  80. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015_BenedenRijn.txt +51 -0
  81. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015_metOnzHeid.txt +63 -0
  82. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015_metOnzHeid_BenedenRijn.txt +65 -0
  83. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050.txt +50 -0
  84. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050_BenedenRijn.txt +51 -0
  85. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050_metOnzHeid.txt +63 -0
  86. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050_metOnzHeid_BenedenRijn.txt +65 -0
  87. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100.txt +50 -0
  88. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100_BenedenRijn.txt +51 -0
  89. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100_metOnzHeid.txt +63 -0
  90. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100_metOnzHeid_BenedenRijn.txt +65 -0
  91. pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_Ref.txt +23 -0
  92. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_2017.txt +55 -0
  93. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_2017_metOnzHeid.txt +55 -0
  94. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2015.txt +46 -0
  95. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2015_metOnzHeid.txt +65 -0
  96. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2050.txt +46 -0
  97. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2050_metOnzHeid.txt +65 -0
  98. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2100.txt +46 -0
  99. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2100_metOnzHeid.txt +65 -0
  100. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2015.txt +47 -0
  101. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2015_metOnzHeid.txt +65 -0
  102. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2050.txt +47 -0
  103. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2050_metOnzHeid.txt +65 -0
  104. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2100.txt +47 -0
  105. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2100_metOnzHeid.txt +65 -0
  106. pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_Ref.txt +15 -0
  107. pydra_core/data/statistics/Golfvorm/Borgharen/Golfvormen_Borgharen.txt +76 -0
  108. pydra_core/data/statistics/Golfvorm/Dalfsen/Golfvormen_Dalfsen.txt +83 -0
  109. pydra_core/data/statistics/Golfvorm/Grevelingenmeer/Golfvormen_Grevelingenmeer.txt +34 -0
  110. pydra_core/data/statistics/Golfvorm/IJsselmeer/Golfvormen_IJsselmeer.txt +83 -0
  111. pydra_core/data/statistics/Golfvorm/Lith/Golfvormen_Lith.txt +76 -0
  112. pydra_core/data/statistics/Golfvorm/Lobith/Golfvormen_Lobith.txt +76 -0
  113. pydra_core/data/statistics/Golfvorm/Markermeer/Golfvormen_Markermeer.txt +140 -0
  114. pydra_core/data/statistics/Golfvorm/Olst/Golfvormen_Olst.txt +83 -0
  115. pydra_core/data/statistics/Golfvorm/Veerse Meer/Golfvormen_Veersemeer.txt +54 -0
  116. pydra_core/data/statistics/Golfvorm/Veluwerandmeer/Golfvormen_Veluwerandmeer.txt +140 -0
  117. pydra_core/data/statistics/Golfvorm/Volkerak-Zoommeer/Golfvormen_Volkerakzoommeer.txt +74 -0
  118. pydra_core/data/statistics/Meerpeil/Grevelingenmeer/Ovkans_Grevelingenmeer_piekmeerpeil_2017.txt +13 -0
  119. pydra_core/data/statistics/Meerpeil/Grevelingenmeer/Ovkans_Grevelingenmeer_piekmeerpeil_2017_metOnzHeid.txt +25 -0
  120. pydra_core/data/statistics/Meerpeil/Grevelingenmeer/Ovkans_Grevelingenmeer_piekmeerpeil_v01.txt +13 -0
  121. pydra_core/data/statistics/Meerpeil/IJsselmeer/Ovkans_IJsselmeer_piekmeerpeil_2017.txt +26 -0
  122. pydra_core/data/statistics/Meerpeil/IJsselmeer/Ovkans_IJsselmeer_piekmeerpeil_2017_metOnzHeid.txt +40 -0
  123. pydra_core/data/statistics/Meerpeil/IJsselmeer/Ovkans_IJsselmeer_piekmeerpeil_v01.txt +15 -0
  124. pydra_core/data/statistics/Meerpeil/Markermeer/Ovkans_Markermeer_piekmeerpeil_2017.txt +19 -0
  125. pydra_core/data/statistics/Meerpeil/Markermeer/Ovkans_Markermeer_piekmeerpeil_2017_metOnzHeid.txt +38 -0
  126. pydra_core/data/statistics/Meerpeil/Markermeer/Ovkans_Markermeer_piekmeerpeil_v01.txt +11 -0
  127. pydra_core/data/statistics/Meerpeil/Veerse Meer/Ovkans_Veersemeer_piekmeerpeil_excl_peilverhoging.txt +14 -0
  128. pydra_core/data/statistics/Meerpeil/Veerse Meer/Ovkans_Veersemeer_piekmeerpeil_v01.txt +16 -0
  129. pydra_core/data/statistics/Meerpeil/Veluwerandmeer/Ovkans_Veluwerandmeer_piekmeerpeil_2017.txt +14 -0
  130. pydra_core/data/statistics/Meerpeil/Veluwerandmeer/Ovkans_Veluwerandmeer_piekmeerpeil_2017_metOnzHeid.txt +37 -0
  131. pydra_core/data/statistics/Meerpeil/Veluwerandmeer/Ovkans_Veluwerandmeer_piekmeerpeil_v01.txt +14 -0
  132. pydra_core/data/statistics/Meerpeil/Volkerak-Zoommeer/Ovkans_VZM_piekmeerpeil_BER-VZM.txt +18 -0
  133. pydra_core/data/statistics/Meerpeil/Volkerak-Zoommeer/Ovkans_VZM_piekmeerpeil_BER-VZM_metOnzHeid.txt +43 -0
  134. pydra_core/data/statistics/Restant/Oosterschelde/BesliskansenOSKering.txt +525 -0
  135. pydra_core/data/statistics/Restant/Oosterschelde/KansenFaseverschil_2023.txt +8 -0
  136. pydra_core/data/statistics/Restant/Oosterschelde/KansenFaseverschil_OS.txt +13 -0
  137. pydra_core/data/statistics/Restant/Oosterschelde/KansenStormduur_OS.txt +15 -0
  138. pydra_core/data/statistics/Restant/Oosterschelde/KansenStormduur_OS_40_60_80uur_2023.txt +17 -0
  139. pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2008.txt +24 -0
  140. pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2013.txt +19 -0
  141. pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2017.txt +19 -0
  142. pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2023.txt +14 -0
  143. pydra_core/data/statistics/Restant/Up2U/Up2U10.dat +59 -0
  144. pydra_core/data/statistics/Restant/Up2U/Up2Up.dat +59 -0
  145. pydra_core/data/statistics/Restant/Up2U/Up2Ustar.dat +59 -0
  146. pydra_core/data/statistics/Restant/hulpdijken.txt +60 -0
  147. pydra_core/data/statistics/Restant/hulpgolfhoogtes.txt +24 -0
  148. pydra_core/data/statistics/Restant/hulpgolfperiodes.txt +39 -0
  149. pydra_core/data/statistics/Restant/kansstormduur.txt +8 -0
  150. pydra_core/data/statistics/Restant/pwind_west.txt +34 -0
  151. pydra_core/data/statistics/Restant/pwind_west_met_Volkerfactor.txt +34 -0
  152. pydra_core/data/statistics/Restant/pwind_west_zonder_Volkerfactor.txt +34 -0
  153. pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Midden/VS_sigmafunctie_Kust_Midden.txt +19 -0
  154. pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Midden/VS_sigmafunctie_Kust_Midden_2017.txt +23 -0
  155. pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Noord/VS_sigmafunctie_Kust_Noord.txt +19 -0
  156. pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Noord/VS_sigmafunctie_Kust_Noord_2017.txt +23 -0
  157. pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Zuid/VS_sigmafunctie_Kust_Zuid.txt +19 -0
  158. pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Zuid/VS_sigmafunctie_Kust_Zuid_2017.txt +23 -0
  159. pydra_core/data/statistics/Sigmafunctie/Oosterschelde/VS_sigmafunctie_OS.txt +22 -0
  160. pydra_core/data/statistics/Sigmafunctie/Oosterschelde/VS_sigmafunctie_OS_16sectoren_2023.txt +24 -0
  161. pydra_core/data/statistics/Sigmafunctie/Oosterschelde/VS_sigmafunctie_OS_2017.txt +22 -0
  162. pydra_core/data/statistics/Sigmafunctie/Waddenzee Oost/VS_sigmafunctie_WZ_oost.txt +19 -0
  163. pydra_core/data/statistics/Sigmafunctie/Waddenzee Oost/VS_sigmafunctie_WZ_oost_2017.txt +23 -0
  164. pydra_core/data/statistics/Sigmafunctie/Waddenzee West/VS_sigmafunctie_WZ_west.txt +19 -0
  165. pydra_core/data/statistics/Sigmafunctie/Waddenzee West/VS_sigmafunctie_WZ_west_2017.txt +23 -0
  166. pydra_core/data/statistics/Sigmafunctie/Westerschelde/VS_sigmafunctie_WS.txt +19 -0
  167. pydra_core/data/statistics/Sigmafunctie/Westerschelde/VS_sigmafunctie_WS_2017.txt +23 -0
  168. pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Europoortkering Maas 2017.csv +631 -0
  169. pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Europoortkering Rijn 2017.csv +631 -0
  170. pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Hollandsche IJsselkering.csv +757 -0
  171. pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Oosterscheldekering 2017.csv +55081 -0
  172. pydra_core/data/statistics/Topduur/Borgharen/Topduur_Borgharen_2017.txt +19 -0
  173. pydra_core/data/statistics/Topduur/Borgharen/Topduur_Borgharen_v00.txt +14 -0
  174. pydra_core/data/statistics/Topduur/Dalfsen/Topduur_Dalfsen_2017.txt +20 -0
  175. pydra_core/data/statistics/Topduur/Dalfsen/Topduur_Dalfsen_v01.txt +16 -0
  176. pydra_core/data/statistics/Topduur/Grevelingenmeer/Topduur_Grevelingenmeer_2017.txt +14 -0
  177. pydra_core/data/statistics/Topduur/Grevelingenmeer/Topduur_Grevelingenmeer_v01.txt +14 -0
  178. pydra_core/data/statistics/Topduur/IJsselmeer/Topduur_IJsselmeer_2017.txt +20 -0
  179. pydra_core/data/statistics/Topduur/IJsselmeer/Topduur_IJsselmeer_v01.txt +15 -0
  180. pydra_core/data/statistics/Topduur/Lith/Topduur_Lith_2017.txt +19 -0
  181. pydra_core/data/statistics/Topduur/Lith/Topduur_Lith_v01.txt +17 -0
  182. pydra_core/data/statistics/Topduur/Lobith/Topduur_Lobith_2017.txt +19 -0
  183. pydra_core/data/statistics/Topduur/Lobith/Topduur_Lobith_v01.txt +17 -0
  184. pydra_core/data/statistics/Topduur/Markermeer/Topduur_Markermeer_2017.txt +20 -0
  185. pydra_core/data/statistics/Topduur/Markermeer/Topduur_Markermeer_v01.txt +12 -0
  186. pydra_core/data/statistics/Topduur/Olst/Topduur_Olst_2017.txt +20 -0
  187. pydra_core/data/statistics/Topduur/Olst/Topduur_Olst_v01.txt +16 -0
  188. pydra_core/data/statistics/Topduur/Veerse Meer/Topduur_Veersemeer_excl_peilverhoging.txt +13 -0
  189. pydra_core/data/statistics/Topduur/Veerse Meer/Topduur_Veersemeer_v01.txt +16 -0
  190. pydra_core/data/statistics/Topduur/Veluwerandmeer/Topduur_Veluwerandmeer_2017.txt +12 -0
  191. pydra_core/data/statistics/Topduur/Veluwerandmeer/Topduur_Veluwerandmeer_v01.txt +12 -0
  192. pydra_core/data/statistics/Topduur/Volkerak-Zoommeer/Topduur_Volkerakzoommeer_BER-VZM.txt +18 -0
  193. pydra_core/data/statistics/Windrichting/Deelen/Richtingskansen_Deelen_2017.txt +28 -0
  194. pydra_core/data/statistics/Windrichting/Hollandse Kust/KansenWindrichting_Kust.txt +17 -0
  195. pydra_core/data/statistics/Windrichting/Hollandse Kust/KansenWindrichting_Kust_2017.txt +24 -0
  196. pydra_core/data/statistics/Windrichting/Oosterschelde/KansenWindrichting_16sectoren_OS_2023.txt +31 -0
  197. pydra_core/data/statistics/Windrichting/Oosterschelde/KansenWindrichting_OS.txt +20 -0
  198. pydra_core/data/statistics/Windrichting/Oosterschelde/KansenWindrichting_OS_2017.txt +24 -0
  199. pydra_core/data/statistics/Windrichting/Schiphol/Richtingskansen_Schiphol_12sectoren.txt +20 -0
  200. pydra_core/data/statistics/Windrichting/Schiphol/Richtingskansen_Schiphol_12sectoren_2017.txt +20 -0
  201. pydra_core/data/statistics/Windrichting/Schiphol/Richtingskansen_Schiphol_2017.txt +28 -0
  202. pydra_core/data/statistics/Windrichting/Schiphol/kanswindrichting_v01.txt +28 -0
  203. pydra_core/data/statistics/Windrichting/Waddenzee/KansenWindrichting_WZ.txt +17 -0
  204. pydra_core/data/statistics/Windrichting/Waddenzee/KansenWindrichting_WZ_2017.txt +24 -0
  205. pydra_core/data/statistics/Windrichting/Westerschelde/KansenWindrichting_WS.txt +17 -0
  206. pydra_core/data/statistics/Windrichting/Westerschelde/KansenWindrichting_WS_2017.txt +24 -0
  207. pydra_core/data/statistics/Windsnelheid/De Kooy/OvkansWindsnelheid_Texel.txt +70 -0
  208. pydra_core/data/statistics/Windsnelheid/De Kooy/Ovkanswind_de Kooy_2017.txt +92 -0
  209. pydra_core/data/statistics/Windsnelheid/De Kooy/Ovkanswind_de Kooy_2017_metOnzHeid.txt +92 -0
  210. pydra_core/data/statistics/Windsnelheid/Deelen/Ovkanswind_Deelen_2017.txt +90 -0
  211. pydra_core/data/statistics/Windsnelheid/Deelen/Ovkanswind_Deelen_2017_metOnzHeid.txt +90 -0
  212. pydra_core/data/statistics/Windsnelheid/Hoek van Holland/OvkansWindsnelheid_Hoek van Holland.txt +70 -0
  213. pydra_core/data/statistics/Windsnelheid/Hoek van Holland/Ovkanswind_Hoek van Holland_2017.txt +92 -0
  214. pydra_core/data/statistics/Windsnelheid/Hoek van Holland/Ovkanswind_Hoek van Holland_2017_metOnzHeid.txt +92 -0
  215. pydra_core/data/statistics/Windsnelheid/IJmuiden/OvkansWindsnelheid_IJmuiden.txt +70 -0
  216. pydra_core/data/statistics/Windsnelheid/IJmuiden/Ovkanswind_IJmuiden_2017.txt +92 -0
  217. pydra_core/data/statistics/Windsnelheid/IJmuiden/Ovkanswind_IJmuiden_2017_metOnzHeid.txt +92 -0
  218. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren.txt +51 -0
  219. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017.txt +90 -0
  220. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017_metOnzHeid.txt +90 -0
  221. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017_metWindDrag.txt +97 -0
  222. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017_metWindDrag_metOnzHeid.txt +97 -0
  223. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_16sectoren_2017_metWindDrag.txt +97 -0
  224. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_16sectoren_2017_metWindDrag_metOnzHeid.txt +97 -0
  225. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_2017.txt +90 -0
  226. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_2017_metOnzHeid.txt +90 -0
  227. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_met_Volkerfactor_2017.txt +90 -0
  228. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_met_Volkerfactor_2017_metOnzHeid.txt +90 -0
  229. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol.txt +58 -0
  230. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol_10%.txt +64 -0
  231. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol_5%.txt +62 -0
  232. pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol_B_met volker.txt +60 -0
  233. pydra_core/data/statistics/Windsnelheid/Vlissingen/OvkansWindsnelheid_OS.txt +67 -0
  234. pydra_core/data/statistics/Windsnelheid/Vlissingen/OvkansWindsnelheid_Vlissingen.txt +70 -0
  235. pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_16sectoren_2023.txt +92 -0
  236. pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_16sectoren_2023_metOnzHeid.txt +91 -0
  237. pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017.txt +92 -0
  238. pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017_metOnzHeid.txt +92 -0
  239. pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017_metWindDrag.txt +97 -0
  240. pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017_metWindDrag_metOnzHeid.txt +97 -0
  241. pydra_core/data/statistics/Windsnelheid/West-Terschelling/OvkansWindsnelheid_West-Tersch.txt +70 -0
  242. pydra_core/data/statistics/Windsnelheid/West-Terschelling/Ovkanswind_West Terschelling_2017.txt +92 -0
  243. pydra_core/data/statistics/Windsnelheid/West-Terschelling/Ovkanswind_West Terschelling_2017_metOnzHeid.txt +92 -0
  244. pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar1985_2017.txt +82 -0
  245. pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar1985_2017_metOnzHeid.txt +82 -0
  246. pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar2017.txt +82 -0
  247. pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar2017_metOnzHeid.txt +82 -0
  248. pydra_core/data/statistics/Zeewaterstand/Delfzijl/OvkansZee_Delfzijl.txt +71 -0
  249. pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar1985_2017.txt +90 -0
  250. pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar1985_2017_metOnzHeid.txt +90 -0
  251. pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar2017.txt +89 -0
  252. pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar2017_metOnzHeid.txt +89 -0
  253. pydra_core/data/statistics/Zeewaterstand/Den Helder/OvkansZee_Den Helder.txt +71 -0
  254. pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar1985_2017.txt +89 -0
  255. pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar1985_2017_metOnzHeid.txt +89 -0
  256. pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar2017.txt +88 -0
  257. pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar2017_metOnzHeid.txt +88 -0
  258. pydra_core/data/statistics/Zeewaterstand/Den Oever/OvkansZee_Den Oever.txt +71 -0
  259. pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar1985_2017.txt +72 -0
  260. pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar1985_2017_metOnzHeid.txt +72 -0
  261. pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar2017.txt +71 -0
  262. pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar2017_metOnzHeid.txt +71 -0
  263. pydra_core/data/statistics/Zeewaterstand/Hansweert/OvkansZee_Hansweert.txt +71 -0
  264. pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar1985_2017.txt +86 -0
  265. pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar1985_2017_metOnzHeid.txt +86 -0
  266. pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar2017.txt +85 -0
  267. pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar2017_metOnzHeid.txt +85 -0
  268. pydra_core/data/statistics/Zeewaterstand/Harlingen/OvkansZee_Harlingen.txt +71 -0
  269. pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar1985_2017.txt +85 -0
  270. pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar1985_2017_metOnzHeid.txt +85 -0
  271. pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar2017.txt +84 -0
  272. pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar2017_metOnzHeid.txt +84 -0
  273. pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/OvkansZee_Hoek van Holland.txt +71 -0
  274. pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar1985_2017.txt +87 -0
  275. pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar1985_2017_metOnzHeid.txt +87 -0
  276. pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar2017.txt +86 -0
  277. pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar2017_metOnzHeid.txt +86 -0
  278. pydra_core/data/statistics/Zeewaterstand/Huibertgat/OvkansZee_Huibertgat.txt +71 -0
  279. pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar1985_2017.txt +86 -0
  280. pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar1985_2017_metOnzHeid.txt +86 -0
  281. pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar2017.txt +86 -0
  282. pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar2017_metOnzHeid.txt +86 -0
  283. pydra_core/data/statistics/Zeewaterstand/IJmuiden/OvkansZee_IJmuiden.txt +71 -0
  284. pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar1985_2017.txt +86 -0
  285. pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar1985_2017_metOnzHeid.txt +86 -0
  286. pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar2017.txt +86 -0
  287. pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar2017_metOnzHeid.txt +86 -0
  288. pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/OvkansZee_IJmuiden_virtueel.txt +71 -0
  289. pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar1985_2017.txt +86 -0
  290. pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar1985_2017_metOnzHeid.txt +86 -0
  291. pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar2017.txt +85 -0
  292. pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar2017_metOnzHeid.txt +85 -0
  293. pydra_core/data/statistics/Zeewaterstand/Lauwersoog/OvkansZee_Lauwersoog.txt +71 -0
  294. pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar1985_2011.txt +89 -0
  295. pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar1985_2017.txt +89 -0
  296. pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar1985_2017_metOnzheid.txt +93 -0
  297. pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar2017.txt +86 -0
  298. pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar2017_metOnzheid.txt +86 -0
  299. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar1985_2017.txt +80 -0
  300. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar1985_2017_metOnzHeid.txt +80 -0
  301. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar2017.txt +80 -0
  302. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar2017_metOnzHeid.txt +80 -0
  303. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_16sectoren_12u_2023.txt +75 -0
  304. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_16sectoren_12u_2023_metOnzHeid.txt +74 -0
  305. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/OvkansZee_OS11.txt +71 -0
  306. pydra_core/data/statistics/Zeewaterstand/Oosterschelde/OvkansZeewaterstand_OS.txt +72 -0
  307. pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar1985_2017.txt +75 -0
  308. pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar1985_2017_metOnzHeid.txt +75 -0
  309. pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar2017.txt +75 -0
  310. pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar2017_metOnzHeid.txt +75 -0
  311. pydra_core/data/statistics/Zeewaterstand/Vlissingen/OvkansZee_Vlissingen.txt +71 -0
  312. pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar1985_2017.txt +75 -0
  313. pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar1985_2017_metOnzHeid.txt +75 -0
  314. pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar2017.txt +75 -0
  315. pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar2017_metOnzHeid.txt +75 -0
  316. pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/OvkansZee_Vlissingen_virtueel.txt +71 -0
  317. pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar1985_2017.txt +88 -0
  318. pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar1985_2017_metOnzHeid.txt +88 -0
  319. pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar2017.txt +87 -0
  320. pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar2017_metOnzHeid.txt +87 -0
  321. pydra_core/data/statistics/Zeewaterstand/West-Terschelling/OvkansZee_West-Terschelling.txt +71 -0
  322. pydra_core/hrdatabase/__init__.py +0 -0
  323. pydra_core/hrdatabase/hrdatabase.py +177 -0
  324. pydra_core/io/__init__.py +0 -0
  325. pydra_core/io/database_hr.py +598 -0
  326. pydra_core/io/database_settings.py +183 -0
  327. pydra_core/io/file_hydranl.py +92 -0
  328. pydra_core/location/__init__.py +0 -0
  329. pydra_core/location/location.py +115 -0
  330. pydra_core/location/model/__init__.py +0 -0
  331. pydra_core/location/model/base_model.py +270 -0
  332. pydra_core/location/model/loading/__init__.py +0 -0
  333. pydra_core/location/model/loading/loading.py +368 -0
  334. pydra_core/location/model/loading/loading_factory.py +89 -0
  335. pydra_core/location/model/loading/loading_model/__init__.py +0 -0
  336. pydra_core/location/model/loading/loading_model/loading_model.py +324 -0
  337. pydra_core/location/model/loading/other_systems/__init__.py +0 -0
  338. pydra_core/location/model/loading/other_systems/loading_wave_overtopping.py +122 -0
  339. pydra_core/location/model/loading/water_systems/__init__.py +0 -0
  340. pydra_core/location/model/loading/water_systems/loading_coast.py +54 -0
  341. pydra_core/location/model/loading/water_systems/loading_eastern_scheldt.py +169 -0
  342. pydra_core/location/model/loading/water_systems/loading_ijssel_vechtdelta.py +55 -0
  343. pydra_core/location/model/loading/water_systems/loading_lake.py +55 -0
  344. pydra_core/location/model/loading/water_systems/loading_lower_rivier.py +68 -0
  345. pydra_core/location/model/loading/water_systems/loading_upper_river.py +55 -0
  346. pydra_core/location/model/statistics/__init__.py +0 -0
  347. pydra_core/location/model/statistics/other_systems/__init__.py +0 -0
  348. pydra_core/location/model/statistics/other_systems/statistics_wave_overtopping.py +72 -0
  349. pydra_core/location/model/statistics/statistics.py +171 -0
  350. pydra_core/location/model/statistics/statistics_factory.py +89 -0
  351. pydra_core/location/model/statistics/stochastics/__init__.py +0 -0
  352. pydra_core/location/model/statistics/stochastics/barrier/__init__.py +0 -0
  353. pydra_core/location/model/statistics/stochastics/barrier/barrier.py +43 -0
  354. pydra_core/location/model/statistics/stochastics/barrier/barrier_easternscheldt.py +147 -0
  355. pydra_core/location/model/statistics/stochastics/barrier/barrier_europoort.py +209 -0
  356. pydra_core/location/model/statistics/stochastics/barrier/barrier_ramspol.py +41 -0
  357. pydra_core/location/model/statistics/stochastics/barrier/no_barrier.py +21 -0
  358. pydra_core/location/model/statistics/stochastics/discharge.py +108 -0
  359. pydra_core/location/model/statistics/stochastics/discrete_probability.py +55 -0
  360. pydra_core/location/model/statistics/stochastics/lake_level.py +158 -0
  361. pydra_core/location/model/statistics/stochastics/model_uncertainty.py +358 -0
  362. pydra_core/location/model/statistics/stochastics/sea_level/sea_level.py +53 -0
  363. pydra_core/location/model/statistics/stochastics/sea_level/sea_level_lower_river.py +93 -0
  364. pydra_core/location/model/statistics/stochastics/sea_level/sea_level_point.py +65 -0
  365. pydra_core/location/model/statistics/stochastics/sea_level/sea_level_triangular.py +158 -0
  366. pydra_core/location/model/statistics/stochastics/sigma_function.py +24 -0
  367. pydra_core/location/model/statistics/stochastics/wave_shape.py +624 -0
  368. pydra_core/location/model/statistics/stochastics/wind_speed.py +196 -0
  369. pydra_core/location/model/statistics/water_systems/__init__.py +0 -0
  370. pydra_core/location/model/statistics/water_systems/statistics_coast.py +153 -0
  371. pydra_core/location/model/statistics/water_systems/statistics_eastern_scheldt.py +177 -0
  372. pydra_core/location/model/statistics/water_systems/statistics_ijssel_vechtdelta.py +229 -0
  373. pydra_core/location/model/statistics/water_systems/statistics_lake.py +86 -0
  374. pydra_core/location/model/statistics/water_systems/statistics_lower_river.py +321 -0
  375. pydra_core/location/model/statistics/water_systems/statistics_upper_river.py +86 -0
  376. pydra_core/location/model/water_system.py +249 -0
  377. pydra_core/location/model/wave_overtopping.py +25 -0
  378. pydra_core/location/profile/__init__.py +0 -0
  379. pydra_core/location/profile/foreland.py +246 -0
  380. pydra_core/location/profile/lib/DikesOvertopping.LICENSE +619 -0
  381. pydra_core/location/profile/lib/README.MD +10 -0
  382. pydra_core/location/profile/lib/__init__.py +1 -0
  383. pydra_core/location/profile/profile.py +971 -0
  384. pydra_core/location/profile/profile_loading.py +473 -0
  385. pydra_core/location/settings/__init__.py +0 -0
  386. pydra_core/location/settings/settings.py +387 -0
  387. pydra_core-0.0.1.dist-info/METADATA +22 -0
  388. pydra_core-0.0.1.dist-info/RECORD +389 -0
  389. pydra_core-0.0.1.dist-info/WHEEL +5 -0
@@ -0,0 +1,324 @@
1
+ import numpy as np
2
+ import pandas as pd
3
+
4
+ from typing import Dict, Union
5
+
6
+ from ....profile.profile import Profile
7
+ from .....common.interpolate import InterpStruct
8
+
9
+
10
+ class LoadingModel:
11
+ """
12
+ A LoadingModel is a model for one combination of wind direction and closing situation
13
+
14
+ The LoadingModel allows to process the data (e.g. extend, refine or repair)
15
+ """
16
+
17
+ def __init__(
18
+ self,
19
+ direction: float,
20
+ closing_situation: int,
21
+ input_variables: list,
22
+ result_variables: list,
23
+ ):
24
+ """
25
+ Init the LoadingModel.
26
+
27
+ Parameters
28
+ ----------
29
+ direction : float
30
+ Wind direction
31
+ closing_situation: int
32
+ Closing situation id
33
+ input_variables : list
34
+ The input variable symbols (e.q. [u, q])
35
+ result_variables : list
36
+ The result variable symbols (e.q. [h, hs, tp, tspec, dir])
37
+ """
38
+ # Save the arguments into the object
39
+ self.direction = direction
40
+ self.closing_situation = closing_situation
41
+ self.input_variables = input_variables
42
+ self.result_variables = result_variables
43
+
44
+ def initialise(self, table: pd.DataFrame) -> None:
45
+ """
46
+ Create a LoadingModel from a pandas DataFrame.
47
+
48
+ Parameters
49
+ ----------
50
+ table : pd.DataFrame
51
+ DataFrame with all input and output variables.
52
+ """
53
+ # Rename columns
54
+ if any(ivar not in table.columns for ivar in self.input_variables):
55
+ raise KeyError(
56
+ f"Not all input variables are present. Expected a column for each of: {', '.join(self.input_variables)}, got: {', '.join(table.columns.tolist())}."
57
+ )
58
+
59
+ # Add the discretisation of each input variable to the object
60
+ for key in self.input_variables:
61
+ setattr(self, key, np.sort(table[key].unique()))
62
+
63
+ # Init an empty grid for each result variable
64
+ shape = tuple([len(getattr(self, key)) for key in self.input_variables])
65
+ for var in self.result_variables:
66
+ setattr(self, var, np.full(shape, np.nan))
67
+
68
+ # Determine per input variabele where to put it into the results array
69
+ idxs = []
70
+ for key in self.input_variables:
71
+ idxlist = getattr(self, key).tolist()
72
+ idxs.append([idxlist.index(i) for i in table[key].array])
73
+
74
+ # Add the results to the result arrays
75
+ for rvid in self.result_variables:
76
+ arr = getattr(self, rvid)
77
+
78
+ # If the result variable is in the dataframe
79
+ if rvid in table.columns:
80
+ arr[tuple(idxs)] = table[rvid].to_numpy()
81
+
82
+ # Otherwise, translate tspec to tp, or tp to tspec
83
+ else:
84
+ if rvid == "tspec" and ("tp" in table.columns):
85
+ arr[tuple(idxs)] = table["tp"] / 1.1
86
+ elif rvid == "tp" and ("tspec" in table.columns):
87
+ arr[tuple(idxs)] = table["tspec"] * 1.1
88
+ else:
89
+ raise KeyError(rvid)
90
+
91
+ def extend(
92
+ self,
93
+ input_variable: str,
94
+ grid: Union[list, np.ndarray],
95
+ include_bounds: bool = False,
96
+ merge_grid: bool = True,
97
+ ) -> None:
98
+ """
99
+ Extend the grid of the input variable and therefore also the output variables.
100
+
101
+ Parameters
102
+ ----------
103
+ input_variable : str
104
+ The name of the input variable.
105
+ grid : Union[list, np.ndarray]
106
+ The 1D grid values to which the input variable should be extended.
107
+ include_bounds : bool, optional
108
+ Whether or not to include values within the upper and lower bound of the input variable (default is False).
109
+ merge_grid : bool, optional
110
+ Whether or not to merge the new grid with the existing grid of the input variable (default is True).
111
+ """
112
+ # Haal de huidige discretisatie van de variabele op
113
+ xp = getattr(self, input_variable)
114
+ axis = self.input_variables.index(input_variable)
115
+
116
+ # If include_bounds = True, add values between the min and max, otherwise add all
117
+ if not include_bounds:
118
+ x = np.array(
119
+ [
120
+ val
121
+ for val in np.atleast_1d(grid)
122
+ if not (xp.min() <= val <= xp.max())
123
+ ]
124
+ )
125
+
126
+ # If merge_grid, add the grid to the existing values
127
+ if merge_grid:
128
+ x = np.array(sorted(set(np.atleast_1d(grid)).union(xp)))
129
+
130
+ # If x is empty or the requested values are equal to those already present, continue
131
+ if not any(x) or np.array_equal(x, xp):
132
+ return None
133
+
134
+ # Extend all result variables
135
+ intstr = InterpStruct(x=x, xp=xp)
136
+ for resvar in self.result_variables:
137
+ # Obtain the result variable
138
+ arr = getattr(self, resvar)
139
+ if np.isnan(arr).any():
140
+ raise ValueError(
141
+ f'[ERROR] NaN values ({np.isnan(arr).sum()}) in array "{resvar}" to interpolate.'
142
+ )
143
+
144
+ # Interpolate wave conditions
145
+ if resvar in ["hs", "tp", "tspec"]:
146
+ arr = np.maximum(0.0, intstr.interp(fp=arr, axis=axis))
147
+
148
+ # Interpoleer wave angle
149
+ elif resvar == "dir":
150
+ arr = intstr.interp_angle(fp=arr, axis=axis)
151
+
152
+ # Use of VZM, (TODO find out: interpolate between 0 and 1?)
153
+ elif resvar == "vzm":
154
+ arr = intstr.interp(fp=arr, axis=axis)
155
+
156
+ # Interpolate other values
157
+ else:
158
+ arr = intstr.interp(fp=arr, axis=axis)
159
+
160
+ # Add the extended result variable array back to the object
161
+ setattr(self, resvar, arr)
162
+
163
+ # Add the extended input variable back to the object
164
+ setattr(self, input_variable, x)
165
+
166
+ def refine(
167
+ self, result_variable: str, grid: Dict[str, Union[list, np.ndarray]]
168
+ ) -> np.ndarray:
169
+ """
170
+ Extend the grid of the input variable and therefore also the output variables.
171
+
172
+ Parameters
173
+ ----------
174
+ input_variable : str
175
+ The name of the input variable.
176
+ result_variable : str
177
+ The name of the output variable.
178
+ grid : Dict[str, Union[list, np.ndarray]]
179
+ Input variables with their corresponding grid to extend the result_variable to
180
+
181
+ Returns
182
+ -------
183
+ np.ndarray
184
+ The adjusted grid.
185
+ """
186
+ # Controleer of variabele aanwezig is
187
+ if result_variable not in self.result_variables:
188
+ raise KeyError(
189
+ f"[ERROR] Result variable '{result_variable}' not in loading model."
190
+ )
191
+
192
+ # Obtain the array from the result variable
193
+ belasting_int = getattr(self, result_variable)
194
+
195
+ # Loop over the different grid items
196
+ for inpvar, x in grid.items():
197
+ if inpvar not in self.input_variables:
198
+ raise KeyError(
199
+ f"[ERROR] Input variable '{inpvar}' not in loading model ({', '.join(self.input_variables)})"
200
+ )
201
+
202
+ # Obtain the current grid and axis
203
+ xp = getattr(self, inpvar)
204
+ axis = self.input_variables.index(inpvar)
205
+
206
+ # If x and xp are equal, no interpolation needed
207
+ if np.array_equal(x, xp):
208
+ continue
209
+
210
+ # If all x in xp, just select the requested values
211
+ if np.isin(x, xp).all():
212
+ idx = np.isin(xp, x)
213
+ belasting_int = np.take(
214
+ belasting_int, indices=np.where(idx)[0], axis=axis
215
+ )
216
+ continue
217
+
218
+ # If xp is just one value, duplicate
219
+ if len(xp) == 1:
220
+ belasting_int = np.tile(belasting_int, (1, 1, len(x)))
221
+ continue
222
+
223
+ # Interpolate
224
+ intstr = InterpStruct(x=x, xp=xp)
225
+
226
+ # Interpolate wave conditions
227
+ if result_variable in ["hs", "tp", "tspec"]:
228
+ belasting_int = np.maximum(
229
+ 0.0, intstr.interp(fp=belasting_int, axis=axis)
230
+ )
231
+
232
+ # Interpolate wave direction
233
+ elif result_variable == "dir":
234
+ belasting_int = intstr.interp_angle(fp=belasting_int, axis=axis)
235
+
236
+ # Use of VZM, (TODO find out: interpolate between 0 and 1?)
237
+ elif result_variable == "vzm":
238
+ belasting_int = intstr.interp(fp=belasting_int, axis=axis)
239
+
240
+ # Interpolate other values
241
+ else:
242
+ belasting_int = intstr.interp(fp=belasting_int, axis=axis)
243
+
244
+ # Return the interpolated array for the result variable
245
+ return belasting_int
246
+
247
+ def repair(
248
+ self,
249
+ input_variable: str,
250
+ result_variables: Union[str, list] = None,
251
+ epsilon: float = 1e-6,
252
+ ) -> None:
253
+ """
254
+ Make the result values of the given output variable monotonically increasing along the axis of a given input variable.
255
+
256
+ Parameters
257
+ ----------
258
+ input_variable : str
259
+ The name of the input variable along which the result values should be made monotonically increasing.
260
+ result_variables : Union[str, list]
261
+ The name of the output variable to be made monotonically increasing.
262
+ epsilon : float, optional
263
+ The minimum difference between the values of the repaired output variable (default is 1e-6).
264
+ """
265
+ # Obtain the relevant axis
266
+ axis = self.input_variables.index(input_variable)
267
+
268
+ # If no result variables are given, take all result variables in the model
269
+ if result_variables is None:
270
+ result_variables = self.result_variables
271
+
272
+ # Loop over the result variables
273
+ for var in np.atleast_1d(result_variables):
274
+ # Obtain the result variable grid
275
+ arr = getattr(self, var)
276
+ rows = [np.take(arr, indices=0, axis=axis)]
277
+
278
+ # Make monotonous increasing over the axis of the input_variable
279
+ for i in range(1, arr.shape[axis]):
280
+ last = rows[-1]
281
+ nxtt = np.take(arr, indices=i, axis=axis)
282
+ rows.append(np.maximum(last + epsilon, nxtt))
283
+
284
+ # Add the adjusted grid to the loadingmodel
285
+ setattr(self, var, np.stack(rows, axis=axis))
286
+
287
+ def calculate_hbn(
288
+ self, profile: Profile, qcrit: float, factor_hs: float, factor_tspec: float
289
+ ):
290
+ """
291
+ Add hbn result variables to each of the LoadingModels.
292
+ If 'hbn' is already defined, it will overwrite the old result variable.
293
+
294
+ Parameters
295
+ ----------
296
+ profile : Profile
297
+ The profile
298
+ qcrit : float
299
+ The critical discharge
300
+ factor_hs : float
301
+ Factor for the significant wave height, used for model uncertainty
302
+ factor_tspec : float
303
+ Factor for the spectral wave period, used for model uncertainty
304
+ """
305
+ # Controleer of de juiste resultaatwaarden aanwezig zijn
306
+ for resvar in ["h", "hs", "tspec", "dir"]:
307
+ if not hasattr(self, resvar):
308
+ raise KeyError(
309
+ f"Resultaatvariabele '{resvar}' is nodig voor kruinhoogteberekening, maar niet aanwezig."
310
+ )
311
+
312
+ # Prepare wave conditions
313
+ _h = self.h.ravel()
314
+ _hs = np.array(self.hs * factor_hs).ravel()
315
+ _tspec = np.array(self.tspec * factor_tspec).ravel()
316
+ _dir = np.array(self.dir).ravel()
317
+
318
+ # Calculate HBN
319
+ self.hbn = np.reshape(
320
+ [profile.calculate_crest_level(qcrit, _h, _hs, _tspec, _dir)], self.h.shape
321
+ )
322
+
323
+ # Add the result variable
324
+ self.result_variables.append("hbn")
@@ -0,0 +1,122 @@
1
+ import numpy as np
2
+ import pandas as pd
3
+
4
+ from itertools import product
5
+
6
+ from ..loading import Loading
7
+ from ..loading_model.loading_model import LoadingModel
8
+ from ....location import Location
9
+ from ....profile.profile import Profile
10
+
11
+
12
+ class LoadingWaveOvertopping(Loading):
13
+ """
14
+ This Loading is used to calculate HBNs
15
+ """
16
+
17
+ def __init__(self, location: Location, ws_range: np.ndarray):
18
+ """
19
+ Init the Loading object for the Waves Overtopping
20
+
21
+ Parameters
22
+ ----------
23
+ settings : Settings
24
+ The Settings object
25
+ """
26
+ # Inherit the from parent
27
+ super().__init__(location.get_settings())
28
+
29
+ # Init
30
+ self.ws_loading = location.get_model().get_loading()
31
+ self.ws_range = ws_range
32
+ self.read_loading()
33
+
34
+ def read_loading(self) -> None:
35
+ """
36
+ Read the HR and create Loading Models
37
+ """
38
+ # Bepaal bij welke waterstanden de golfcondities afgeleid moeten worden
39
+ # Wanneer het aantal unieke waterstanden kleiner is dan het aantal waterstanden
40
+ # in het opgegeven bereik, worden de unieke waterstanden gebruikt
41
+ ws_per_r = self.bepaal_kh_waterstanden(self.ws_loading, self.ws_range)
42
+
43
+ # Bepaal de golfcondities bij deze waterstanden
44
+ for richting, waterstanden in ws_per_r.items():
45
+ # Leidt golfcondities af voor een bepaalde richting
46
+ golfcond_r, windsnelheden = self.ws_loading.get_wave_conditions(
47
+ richting, waterstanden, extrapolate=True
48
+ )
49
+
50
+ # Create a DataFrame
51
+ df = pd.DataFrame(columns=["wlev", "u"] + list(golfcond_r.keys()))
52
+
53
+ # Iterate over the windspeed and waterlevel arrays
54
+ ws_u = np.array(list(product(waterstanden, windsnelheden)))
55
+ golf = np.array(
56
+ [golfcond_r[key].ravel() for key in list(golfcond_r.keys())]
57
+ ).T
58
+ df = pd.DataFrame(
59
+ np.concatenate((ws_u, golf), axis=1),
60
+ columns=["wlev", "u"] + list(golfcond_r.keys()),
61
+ )
62
+
63
+ # Create a Loading Model
64
+ model = LoadingModel(richting, None, ["wlev", "u"], list(golfcond_r.keys()))
65
+ model.initialise(df)
66
+
67
+ # Save the model
68
+ self.model[(richting, model.closing_situation)] = model
69
+
70
+ # Extend the loading models
71
+ self._extend_loadingmodels()
72
+
73
+ def calculate_hbn(
74
+ self,
75
+ profile: Profile,
76
+ qcrit: float = 10,
77
+ factor_hs: float = 1.0,
78
+ factor_tspec: float = 1.0,
79
+ ) -> None:
80
+ """
81
+ Add hbn result variables to each of the LoadingModels.
82
+ If 'hbn' is already defined, it will overwrite the old result variable.
83
+
84
+ Parameters
85
+ ----------
86
+ profile : Profile
87
+ The profile
88
+ qcrit : float
89
+ The critical discharge
90
+ factor_hs : float
91
+ Factor for the significant wave height, used for model uncertainty
92
+ factor_tspec : float
93
+ Factor for the spectral wave period, used for model uncertainty
94
+ """
95
+ for _, model in self.iter_models():
96
+ model.calculate_hbn(profile, qcrit, factor_hs, factor_tspec)
97
+
98
+ def bepaal_kh_waterstanden(self, ws_belasting, ws_range):
99
+ """
100
+ Bepaal waterstanden waarvoor kruinhoogtes berekend moeten worden.
101
+
102
+ Per richting wordt bepaald of het aantal unieke waterstanden
103
+ kleiner is dan het aantal waterstanden in een gediscretiseerde range.
104
+
105
+ Als dit het geval is, kies de unieke waterstanden. Zo niet, gebruik de range.
106
+ """
107
+ ws_per_r = {r: [] for r in ws_belasting.r}
108
+ for (richting, _), model in ws_belasting.iter_models():
109
+ ws_per_r[richting] += np.unique(model.h).tolist()
110
+
111
+ for richting, waterstanden in ws_per_r.items():
112
+ h_all = np.array(waterstanden)[
113
+ np.unique(np.round(waterstanden, 3), return_index=True)[1]
114
+ ]
115
+ # Als er minder waterstanden voorkomen bij deze richting, dan de voorgenomen
116
+ # range, kies dan deze waterstanden
117
+ if len(h_all) <= len(ws_range):
118
+ ws_per_r[richting] = h_all
119
+ else:
120
+ ws_per_r[richting] = ws_range
121
+
122
+ return ws_per_r
@@ -0,0 +1,54 @@
1
+ from ..loading import Loading
2
+ from ..loading_model.loading_model import LoadingModel
3
+ from ....settings.settings import Settings
4
+ from .....io.database_hr import DatabaseHR
5
+
6
+
7
+ class LoadingCoast(Loading):
8
+ """
9
+ Loading class for the Coast
10
+ Water systems: Coast (North, Central, South), Waddensea (West, East) and Western scheldt
11
+ """
12
+
13
+ def __init__(self, settings: Settings):
14
+ """
15
+ Init the Loading object for the Coast
16
+
17
+ Parameters
18
+ ----------
19
+ settings : Settings
20
+ The Settings object
21
+ """
22
+ # Inherit the from parent
23
+ super().__init__(settings)
24
+
25
+ # Read and process the loading
26
+ self.read_loading()
27
+
28
+ def read_loading(self) -> None:
29
+ """
30
+ Read the HR result table and create LoadingModels
31
+ """
32
+ # Read table
33
+ with DatabaseHR(self.settings.database_path) as database:
34
+ table = database.get_result_table(self.settings)
35
+ ivids = database.get_input_variables()
36
+ rvids = database.get_result_variables()
37
+
38
+ # For the coast, the sea level (m) is equal to the local water level (h)
39
+ table["h"] = table["m"]
40
+
41
+ # Init LoadingModels for each combination of wind direction (r) and closing situation (k)
42
+ for comb, deeltabel in table.groupby(["r", "k"]):
43
+ direction, closing_situation = comb
44
+
45
+ # Create a LoadingModel
46
+ model = LoadingModel(direction, closing_situation, ivids, rvids)
47
+ model.initialise(deeltabel.copy())
48
+
49
+ # Add model to the models dictionary
50
+ self.model[comb] = model
51
+
52
+ # Extend and repair loadingmodels
53
+ self._extend_loadingmodels()
54
+ self.repair_loadingmodels(rvids)
@@ -0,0 +1,169 @@
1
+ import numpy as np
2
+ import pandas as pd
3
+
4
+ from itertools import product
5
+ from scipy.interpolate import interp1d
6
+
7
+ from ..loading import Loading
8
+ from ..loading_model.loading_model import LoadingModel
9
+ from ....settings.settings import Settings
10
+ from .....common.interpolate import InterpStruct
11
+ from .....io.database_hr import DatabaseHR
12
+
13
+
14
+ class LoadingEasternScheldt(Loading):
15
+ """
16
+ Loading class for the EasternScheldt
17
+ Water systems: Eastern Scheldt
18
+ """
19
+
20
+ def __init__(self, settings: Settings):
21
+ """
22
+ Init the Loading object for the Eastern Scheldt
23
+
24
+ Parameters
25
+ ----------
26
+ settings : Settings
27
+ The Settings object
28
+ """
29
+ # Inherit the from parent
30
+ super().__init__(settings)
31
+
32
+ # Read and process the loading
33
+ self.read_loading()
34
+
35
+ def read_loading(self) -> None:
36
+ """
37
+ Read the HR result table and create LoadingModels
38
+ """
39
+ # Read table
40
+ with DatabaseHR(self.settings.database_path) as database:
41
+ waterlevels, waveconditions = database.get_result_table_eastern_scheldt(
42
+ self.settings
43
+ )
44
+ ivids = database.get_input_variables()
45
+ rvids = database.get_result_variables()
46
+
47
+ # Remove the 'm_os' from the ivids (two times m/m_os because m is used in the wave conditions)
48
+ ivids.remove("m_os")
49
+
50
+ # The water level and wave conditions are based on different grids
51
+ # Repair water level
52
+ for richting, snelheid in product(
53
+ np.unique(waveconditions["r"]), np.unique(waveconditions["u"])
54
+ ):
55
+ # Kijk of deze combi bestaat
56
+ if (
57
+ waterlevels["r"].eq(richting) & waterlevels["u"].eq(snelheid)
58
+ ).sum() == 0:
59
+ _format = waterlevels[
60
+ waterlevels["r"].eq(richting) & waterlevels["u"].eq(0)
61
+ ].copy()
62
+ _format.loc[:, "u"] = snelheid
63
+ _format.loc[:, "h"] = np.NaN
64
+ waterlevels = pd.concat([waterlevels, _format], ignore_index=True)
65
+
66
+ # Repareer Hs
67
+ for richting, snelheid in product(
68
+ np.unique(waterlevels["r"]), np.unique(waterlevels["u"])
69
+ ):
70
+ # Kijk of deze combi bestaat
71
+ if (
72
+ waveconditions["r"].eq(richting) & waveconditions["u"].eq(snelheid)
73
+ ).sum() == 0:
74
+ _format = waveconditions[
75
+ waveconditions["r"].eq(richting) & waveconditions["u"].eq(0)
76
+ ].copy()
77
+ _format.loc[:, "u"] = snelheid
78
+ _format.loc[:, "hs"] = np.NaN
79
+ _format.loc[:, "tp"] = np.NaN
80
+ _format.loc[:, "tspec"] = np.NaN
81
+ _format.loc[:, "dir"] = np.NaN
82
+ waveconditions = pd.concat([waveconditions, _format], ignore_index=True)
83
+
84
+ # Sorteer
85
+ waterlevels = waterlevels.sort_values(by=["k", "r", "m", "d", "p", "u"])
86
+ waterlevels = waterlevels.reset_index(drop=True)
87
+ waveconditions = waveconditions.sort_values(by=["r", "h", "u"])
88
+ waveconditions = waveconditions.reset_index(drop=True)
89
+
90
+ # Fix water levels
91
+ missing_h_index = waterlevels[waterlevels["h"].isna()].index
92
+ waterlevels.loc[missing_h_index, "h"] = np.around(
93
+ waterlevels.loc[missing_h_index - 1, "h"].to_numpy()
94
+ + (
95
+ waterlevels.loc[missing_h_index, "u"].to_numpy()
96
+ - waterlevels.loc[missing_h_index - 1, "u"].to_numpy()
97
+ )
98
+ * (
99
+ (
100
+ waterlevels.loc[missing_h_index + 1, "h"].to_numpy()
101
+ - waterlevels.loc[missing_h_index - 1, "h"].to_numpy()
102
+ )
103
+ / (
104
+ waterlevels.loc[missing_h_index + 1, "u"].to_numpy()
105
+ - waterlevels.loc[missing_h_index - 1, "u"].to_numpy()
106
+ )
107
+ ),
108
+ 4,
109
+ )
110
+
111
+ # Vul de NaNs golfcondities
112
+ for n, row in waveconditions[waveconditions["hs"].isna()].iterrows():
113
+ wd = row["r"]
114
+ wl = row["h"]
115
+ ws = row["u"]
116
+ grid = waveconditions[
117
+ waveconditions["r"].eq(wd) & waveconditions["h"].eq(wl)
118
+ ].dropna()
119
+ waveconditions.loc[n, "hs"] = round(
120
+ float(interp1d(grid["u"], grid["hs"], fill_value="extrapolate")(ws)), 4
121
+ )
122
+ waveconditions.loc[n, "tp"] = round(
123
+ float(interp1d(grid["u"], grid["tp"], fill_value="extrapolate")(ws)), 4
124
+ )
125
+ waveconditions.loc[n, "tspec"] = round(
126
+ float(interp1d(grid["u"], grid["tspec"], fill_value="extrapolate")(ws)),
127
+ 4,
128
+ )
129
+
130
+ # Niet de wave direction extrapoleren
131
+ if np.min(grid["u"]) <= ws and ws <= np.max(grid["u"]):
132
+ waveconditions.loc[n, "dir"] = round(
133
+ float(interp1d(grid["u"], grid["dir"])(ws)), 4
134
+ )
135
+ elif ws > np.max(grid["u"]):
136
+ waveconditions.loc[n, "dir"] = grid["dir"].to_numpy()[-1]
137
+ elif ws < np.min(grid["u"]):
138
+ waveconditions.loc[n, "dir"] = grid["dir"].to_numpy()[0]
139
+
140
+ # Interpoleer de golfcondities op de waterstanden, alvorens ze aan de belastingmodellen toe te voegen
141
+ for (richting, snelheid), wavecond_ur in waveconditions.groupby(["r", "u"]):
142
+ # Maak een index voor de selectie van windrichting en windsnelheid
143
+ idx = waterlevels["r"].eq(richting) & waterlevels["u"].eq(snelheid)
144
+
145
+ # Maak een interpolatiestructuur voor de windrichting en windsnelheid
146
+ intstr = InterpStruct(
147
+ x=waterlevels.loc[idx, "h"].to_numpy(), xp=wavecond_ur["h"].to_numpy()
148
+ )
149
+
150
+ # Interpoleer voor elk van de golfparameters
151
+ for param in ["hs", "tp", "tspec", "dir"]:
152
+ waterlevels.loc[idx, param] = intstr.interp(
153
+ fp=wavecond_ur[param].to_numpy()
154
+ )
155
+
156
+ # Init LoadingModels for each combination of wind direction (r) and closing situation (k)
157
+ for comb, deeltabel in waterlevels.groupby(["r", "k"]):
158
+ direction, closing_situation = comb
159
+
160
+ # Create a LoadingModel
161
+ model = LoadingModel(direction, closing_situation, ivids, rvids)
162
+ model.initialise(deeltabel.copy())
163
+
164
+ # Add model to the models dictionary
165
+ self.model[comb] = model
166
+
167
+ # Breidt het belastingmodel uit op basis van de invoergegevens
168
+ self._extend_loadingmodels()
169
+ self.repair_loadingmodels(rvids)