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.
- pydra_core/__init__.py +32 -0
- pydra_core/common/__init__.py +0 -0
- pydra_core/common/common.py +98 -0
- pydra_core/common/enum.py +63 -0
- pydra_core/common/interpolate.py +345 -0
- pydra_core/common/probability.py +293 -0
- pydra_core/core/__init__.py +0 -0
- pydra_core/core/calculation.py +51 -0
- pydra_core/core/datamodels/__init__.py +0 -0
- pydra_core/core/datamodels/frequency_line.py +60 -0
- pydra_core/core/exceedance_frequency_line.py +224 -0
- pydra_core/core/exceedance_frequency_line_experimental.py +163 -0
- pydra_core/core/hbn.py +226 -0
- pydra_core/data/settings/calculation_settings.sqlite +0 -0
- pydra_core/data/settings/lower_river_settings.cpg +1 -0
- pydra_core/data/settings/lower_river_settings.dbf +0 -0
- pydra_core/data/settings/lower_river_settings.prj +1 -0
- pydra_core/data/settings/lower_river_settings.shp +0 -0
- pydra_core/data/settings/lower_river_settings.shx +0 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_2017.txt +37 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_2017_metOnzHeid.txt +46 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2015_metOnzHeid_v02.txt +50 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2015_v02.txt +42 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2050_metOnzHeid_v02.txt +56 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2050_v02.txt +48 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2100_metOnzHeid_v02.txt +56 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2100_v02.txt +48 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2015_metOnzHeid_v02.txt +50 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2015_v02.txt +42 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2050_metOnzHeid_v02.txt +56 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2050_v02.txt +48 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2100_metOnzHeid_v02.txt +51 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2100_v02.txt +44 -0
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_Ref.txt +28 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_2017.txt +31 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_2017_metOnzHeid.txt +33 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2015.txt +44 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2015_metOnzHeid.txt +34 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2050.txt +44 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2050_metOnzHeid.txt +34 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2100.txt +44 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2100_metOnzHeid.txt +39 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2015.txt +44 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2015_metOnzHeid.txt +34 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2050.txt +44 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2050_metOnzHeid.txt +34 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2100.txt +44 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2100_metOnzHeid.txt +34 -0
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_Ref.txt +14 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_2017.txt +47 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_2017_metOnzHeid.txt +47 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2015.txt +49 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2015_metOnzHeid.txt +59 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2050.txt +49 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2050_metOnzHeid.txt +59 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2100.txt +49 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2100_metOnzHeid.txt +59 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2015.txt +49 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2015_metOnzHeid.txt +59 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2050.txt +49 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2050_metOnzHeid.txt +59 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2100.txt +49 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2100_metOnzHeid.txt +59 -0
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_Ref.txt +21 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_2017.txt +33 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_2017_metOnzHeid.txt +60 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015.txt +49 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015_BenedenRijn.txt +50 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015_metOnzHeid.txt +63 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015_metOnzHeid_BenedenRijn.txt +65 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050.txt +49 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050_BenedenRijn.txt +50 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050_metOnzHeid.txt +63 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050_metOnzHeid_BenedenRijn.txt +65 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100.txt +49 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100_BenedenRijn.txt +50 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100_metOnzHeid.txt +63 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100_metOnzHeid_BenedenRijn.txt +65 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015.txt +50 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015_BenedenRijn.txt +51 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015_metOnzHeid.txt +63 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015_metOnzHeid_BenedenRijn.txt +65 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050.txt +50 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050_BenedenRijn.txt +51 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050_metOnzHeid.txt +63 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050_metOnzHeid_BenedenRijn.txt +65 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100.txt +50 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100_BenedenRijn.txt +51 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100_metOnzHeid.txt +63 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100_metOnzHeid_BenedenRijn.txt +65 -0
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_Ref.txt +23 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_2017.txt +55 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_2017_metOnzHeid.txt +55 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2015.txt +46 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2015_metOnzHeid.txt +65 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2050.txt +46 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2050_metOnzHeid.txt +65 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2100.txt +46 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2100_metOnzHeid.txt +65 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2015.txt +47 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2015_metOnzHeid.txt +65 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2050.txt +47 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2050_metOnzHeid.txt +65 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2100.txt +47 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2100_metOnzHeid.txt +65 -0
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_Ref.txt +15 -0
- pydra_core/data/statistics/Golfvorm/Borgharen/Golfvormen_Borgharen.txt +76 -0
- pydra_core/data/statistics/Golfvorm/Dalfsen/Golfvormen_Dalfsen.txt +83 -0
- pydra_core/data/statistics/Golfvorm/Grevelingenmeer/Golfvormen_Grevelingenmeer.txt +34 -0
- pydra_core/data/statistics/Golfvorm/IJsselmeer/Golfvormen_IJsselmeer.txt +83 -0
- pydra_core/data/statistics/Golfvorm/Lith/Golfvormen_Lith.txt +76 -0
- pydra_core/data/statistics/Golfvorm/Lobith/Golfvormen_Lobith.txt +76 -0
- pydra_core/data/statistics/Golfvorm/Markermeer/Golfvormen_Markermeer.txt +140 -0
- pydra_core/data/statistics/Golfvorm/Olst/Golfvormen_Olst.txt +83 -0
- pydra_core/data/statistics/Golfvorm/Veerse Meer/Golfvormen_Veersemeer.txt +54 -0
- pydra_core/data/statistics/Golfvorm/Veluwerandmeer/Golfvormen_Veluwerandmeer.txt +140 -0
- pydra_core/data/statistics/Golfvorm/Volkerak-Zoommeer/Golfvormen_Volkerakzoommeer.txt +74 -0
- pydra_core/data/statistics/Meerpeil/Grevelingenmeer/Ovkans_Grevelingenmeer_piekmeerpeil_2017.txt +13 -0
- pydra_core/data/statistics/Meerpeil/Grevelingenmeer/Ovkans_Grevelingenmeer_piekmeerpeil_2017_metOnzHeid.txt +25 -0
- pydra_core/data/statistics/Meerpeil/Grevelingenmeer/Ovkans_Grevelingenmeer_piekmeerpeil_v01.txt +13 -0
- pydra_core/data/statistics/Meerpeil/IJsselmeer/Ovkans_IJsselmeer_piekmeerpeil_2017.txt +26 -0
- pydra_core/data/statistics/Meerpeil/IJsselmeer/Ovkans_IJsselmeer_piekmeerpeil_2017_metOnzHeid.txt +40 -0
- pydra_core/data/statistics/Meerpeil/IJsselmeer/Ovkans_IJsselmeer_piekmeerpeil_v01.txt +15 -0
- pydra_core/data/statistics/Meerpeil/Markermeer/Ovkans_Markermeer_piekmeerpeil_2017.txt +19 -0
- pydra_core/data/statistics/Meerpeil/Markermeer/Ovkans_Markermeer_piekmeerpeil_2017_metOnzHeid.txt +38 -0
- pydra_core/data/statistics/Meerpeil/Markermeer/Ovkans_Markermeer_piekmeerpeil_v01.txt +11 -0
- pydra_core/data/statistics/Meerpeil/Veerse Meer/Ovkans_Veersemeer_piekmeerpeil_excl_peilverhoging.txt +14 -0
- pydra_core/data/statistics/Meerpeil/Veerse Meer/Ovkans_Veersemeer_piekmeerpeil_v01.txt +16 -0
- pydra_core/data/statistics/Meerpeil/Veluwerandmeer/Ovkans_Veluwerandmeer_piekmeerpeil_2017.txt +14 -0
- pydra_core/data/statistics/Meerpeil/Veluwerandmeer/Ovkans_Veluwerandmeer_piekmeerpeil_2017_metOnzHeid.txt +37 -0
- pydra_core/data/statistics/Meerpeil/Veluwerandmeer/Ovkans_Veluwerandmeer_piekmeerpeil_v01.txt +14 -0
- pydra_core/data/statistics/Meerpeil/Volkerak-Zoommeer/Ovkans_VZM_piekmeerpeil_BER-VZM.txt +18 -0
- pydra_core/data/statistics/Meerpeil/Volkerak-Zoommeer/Ovkans_VZM_piekmeerpeil_BER-VZM_metOnzHeid.txt +43 -0
- pydra_core/data/statistics/Restant/Oosterschelde/BesliskansenOSKering.txt +525 -0
- pydra_core/data/statistics/Restant/Oosterschelde/KansenFaseverschil_2023.txt +8 -0
- pydra_core/data/statistics/Restant/Oosterschelde/KansenFaseverschil_OS.txt +13 -0
- pydra_core/data/statistics/Restant/Oosterschelde/KansenStormduur_OS.txt +15 -0
- pydra_core/data/statistics/Restant/Oosterschelde/KansenStormduur_OS_40_60_80uur_2023.txt +17 -0
- pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2008.txt +24 -0
- pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2013.txt +19 -0
- pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2017.txt +19 -0
- pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2023.txt +14 -0
- pydra_core/data/statistics/Restant/Up2U/Up2U10.dat +59 -0
- pydra_core/data/statistics/Restant/Up2U/Up2Up.dat +59 -0
- pydra_core/data/statistics/Restant/Up2U/Up2Ustar.dat +59 -0
- pydra_core/data/statistics/Restant/hulpdijken.txt +60 -0
- pydra_core/data/statistics/Restant/hulpgolfhoogtes.txt +24 -0
- pydra_core/data/statistics/Restant/hulpgolfperiodes.txt +39 -0
- pydra_core/data/statistics/Restant/kansstormduur.txt +8 -0
- pydra_core/data/statistics/Restant/pwind_west.txt +34 -0
- pydra_core/data/statistics/Restant/pwind_west_met_Volkerfactor.txt +34 -0
- pydra_core/data/statistics/Restant/pwind_west_zonder_Volkerfactor.txt +34 -0
- pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Midden/VS_sigmafunctie_Kust_Midden.txt +19 -0
- pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Midden/VS_sigmafunctie_Kust_Midden_2017.txt +23 -0
- pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Noord/VS_sigmafunctie_Kust_Noord.txt +19 -0
- pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Noord/VS_sigmafunctie_Kust_Noord_2017.txt +23 -0
- pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Zuid/VS_sigmafunctie_Kust_Zuid.txt +19 -0
- pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Zuid/VS_sigmafunctie_Kust_Zuid_2017.txt +23 -0
- pydra_core/data/statistics/Sigmafunctie/Oosterschelde/VS_sigmafunctie_OS.txt +22 -0
- pydra_core/data/statistics/Sigmafunctie/Oosterschelde/VS_sigmafunctie_OS_16sectoren_2023.txt +24 -0
- pydra_core/data/statistics/Sigmafunctie/Oosterschelde/VS_sigmafunctie_OS_2017.txt +22 -0
- pydra_core/data/statistics/Sigmafunctie/Waddenzee Oost/VS_sigmafunctie_WZ_oost.txt +19 -0
- pydra_core/data/statistics/Sigmafunctie/Waddenzee Oost/VS_sigmafunctie_WZ_oost_2017.txt +23 -0
- pydra_core/data/statistics/Sigmafunctie/Waddenzee West/VS_sigmafunctie_WZ_west.txt +19 -0
- pydra_core/data/statistics/Sigmafunctie/Waddenzee West/VS_sigmafunctie_WZ_west_2017.txt +23 -0
- pydra_core/data/statistics/Sigmafunctie/Westerschelde/VS_sigmafunctie_WS.txt +19 -0
- pydra_core/data/statistics/Sigmafunctie/Westerschelde/VS_sigmafunctie_WS_2017.txt +23 -0
- pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Europoortkering Maas 2017.csv +631 -0
- pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Europoortkering Rijn 2017.csv +631 -0
- pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Hollandsche IJsselkering.csv +757 -0
- pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Oosterscheldekering 2017.csv +55081 -0
- pydra_core/data/statistics/Topduur/Borgharen/Topduur_Borgharen_2017.txt +19 -0
- pydra_core/data/statistics/Topduur/Borgharen/Topduur_Borgharen_v00.txt +14 -0
- pydra_core/data/statistics/Topduur/Dalfsen/Topduur_Dalfsen_2017.txt +20 -0
- pydra_core/data/statistics/Topduur/Dalfsen/Topduur_Dalfsen_v01.txt +16 -0
- pydra_core/data/statistics/Topduur/Grevelingenmeer/Topduur_Grevelingenmeer_2017.txt +14 -0
- pydra_core/data/statistics/Topduur/Grevelingenmeer/Topduur_Grevelingenmeer_v01.txt +14 -0
- pydra_core/data/statistics/Topduur/IJsselmeer/Topduur_IJsselmeer_2017.txt +20 -0
- pydra_core/data/statistics/Topduur/IJsselmeer/Topduur_IJsselmeer_v01.txt +15 -0
- pydra_core/data/statistics/Topduur/Lith/Topduur_Lith_2017.txt +19 -0
- pydra_core/data/statistics/Topduur/Lith/Topduur_Lith_v01.txt +17 -0
- pydra_core/data/statistics/Topduur/Lobith/Topduur_Lobith_2017.txt +19 -0
- pydra_core/data/statistics/Topduur/Lobith/Topduur_Lobith_v01.txt +17 -0
- pydra_core/data/statistics/Topduur/Markermeer/Topduur_Markermeer_2017.txt +20 -0
- pydra_core/data/statistics/Topduur/Markermeer/Topduur_Markermeer_v01.txt +12 -0
- pydra_core/data/statistics/Topduur/Olst/Topduur_Olst_2017.txt +20 -0
- pydra_core/data/statistics/Topduur/Olst/Topduur_Olst_v01.txt +16 -0
- pydra_core/data/statistics/Topduur/Veerse Meer/Topduur_Veersemeer_excl_peilverhoging.txt +13 -0
- pydra_core/data/statistics/Topduur/Veerse Meer/Topduur_Veersemeer_v01.txt +16 -0
- pydra_core/data/statistics/Topduur/Veluwerandmeer/Topduur_Veluwerandmeer_2017.txt +12 -0
- pydra_core/data/statistics/Topduur/Veluwerandmeer/Topduur_Veluwerandmeer_v01.txt +12 -0
- pydra_core/data/statistics/Topduur/Volkerak-Zoommeer/Topduur_Volkerakzoommeer_BER-VZM.txt +18 -0
- pydra_core/data/statistics/Windrichting/Deelen/Richtingskansen_Deelen_2017.txt +28 -0
- pydra_core/data/statistics/Windrichting/Hollandse Kust/KansenWindrichting_Kust.txt +17 -0
- pydra_core/data/statistics/Windrichting/Hollandse Kust/KansenWindrichting_Kust_2017.txt +24 -0
- pydra_core/data/statistics/Windrichting/Oosterschelde/KansenWindrichting_16sectoren_OS_2023.txt +31 -0
- pydra_core/data/statistics/Windrichting/Oosterschelde/KansenWindrichting_OS.txt +20 -0
- pydra_core/data/statistics/Windrichting/Oosterschelde/KansenWindrichting_OS_2017.txt +24 -0
- pydra_core/data/statistics/Windrichting/Schiphol/Richtingskansen_Schiphol_12sectoren.txt +20 -0
- pydra_core/data/statistics/Windrichting/Schiphol/Richtingskansen_Schiphol_12sectoren_2017.txt +20 -0
- pydra_core/data/statistics/Windrichting/Schiphol/Richtingskansen_Schiphol_2017.txt +28 -0
- pydra_core/data/statistics/Windrichting/Schiphol/kanswindrichting_v01.txt +28 -0
- pydra_core/data/statistics/Windrichting/Waddenzee/KansenWindrichting_WZ.txt +17 -0
- pydra_core/data/statistics/Windrichting/Waddenzee/KansenWindrichting_WZ_2017.txt +24 -0
- pydra_core/data/statistics/Windrichting/Westerschelde/KansenWindrichting_WS.txt +17 -0
- pydra_core/data/statistics/Windrichting/Westerschelde/KansenWindrichting_WS_2017.txt +24 -0
- pydra_core/data/statistics/Windsnelheid/De Kooy/OvkansWindsnelheid_Texel.txt +70 -0
- pydra_core/data/statistics/Windsnelheid/De Kooy/Ovkanswind_de Kooy_2017.txt +92 -0
- pydra_core/data/statistics/Windsnelheid/De Kooy/Ovkanswind_de Kooy_2017_metOnzHeid.txt +92 -0
- pydra_core/data/statistics/Windsnelheid/Deelen/Ovkanswind_Deelen_2017.txt +90 -0
- pydra_core/data/statistics/Windsnelheid/Deelen/Ovkanswind_Deelen_2017_metOnzHeid.txt +90 -0
- pydra_core/data/statistics/Windsnelheid/Hoek van Holland/OvkansWindsnelheid_Hoek van Holland.txt +70 -0
- pydra_core/data/statistics/Windsnelheid/Hoek van Holland/Ovkanswind_Hoek van Holland_2017.txt +92 -0
- pydra_core/data/statistics/Windsnelheid/Hoek van Holland/Ovkanswind_Hoek van Holland_2017_metOnzHeid.txt +92 -0
- pydra_core/data/statistics/Windsnelheid/IJmuiden/OvkansWindsnelheid_IJmuiden.txt +70 -0
- pydra_core/data/statistics/Windsnelheid/IJmuiden/Ovkanswind_IJmuiden_2017.txt +92 -0
- pydra_core/data/statistics/Windsnelheid/IJmuiden/Ovkanswind_IJmuiden_2017_metOnzHeid.txt +92 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren.txt +51 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017.txt +90 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017_metOnzHeid.txt +90 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017_metWindDrag.txt +97 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017_metWindDrag_metOnzHeid.txt +97 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_16sectoren_2017_metWindDrag.txt +97 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_16sectoren_2017_metWindDrag_metOnzHeid.txt +97 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_2017.txt +90 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_2017_metOnzHeid.txt +90 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_met_Volkerfactor_2017.txt +90 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_met_Volkerfactor_2017_metOnzHeid.txt +90 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol.txt +58 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol_10%.txt +64 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol_5%.txt +62 -0
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol_B_met volker.txt +60 -0
- pydra_core/data/statistics/Windsnelheid/Vlissingen/OvkansWindsnelheid_OS.txt +67 -0
- pydra_core/data/statistics/Windsnelheid/Vlissingen/OvkansWindsnelheid_Vlissingen.txt +70 -0
- pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_16sectoren_2023.txt +92 -0
- pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_16sectoren_2023_metOnzHeid.txt +91 -0
- pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017.txt +92 -0
- pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017_metOnzHeid.txt +92 -0
- pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017_metWindDrag.txt +97 -0
- pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017_metWindDrag_metOnzHeid.txt +97 -0
- pydra_core/data/statistics/Windsnelheid/West-Terschelling/OvkansWindsnelheid_West-Tersch.txt +70 -0
- pydra_core/data/statistics/Windsnelheid/West-Terschelling/Ovkanswind_West Terschelling_2017.txt +92 -0
- pydra_core/data/statistics/Windsnelheid/West-Terschelling/Ovkanswind_West Terschelling_2017_metOnzHeid.txt +92 -0
- pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar1985_2017.txt +82 -0
- pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar1985_2017_metOnzHeid.txt +82 -0
- pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar2017.txt +82 -0
- pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar2017_metOnzHeid.txt +82 -0
- pydra_core/data/statistics/Zeewaterstand/Delfzijl/OvkansZee_Delfzijl.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar1985_2017.txt +90 -0
- pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar1985_2017_metOnzHeid.txt +90 -0
- pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar2017.txt +89 -0
- pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar2017_metOnzHeid.txt +89 -0
- pydra_core/data/statistics/Zeewaterstand/Den Helder/OvkansZee_Den Helder.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar1985_2017.txt +89 -0
- pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar1985_2017_metOnzHeid.txt +89 -0
- pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar2017.txt +88 -0
- pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar2017_metOnzHeid.txt +88 -0
- pydra_core/data/statistics/Zeewaterstand/Den Oever/OvkansZee_Den Oever.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar1985_2017.txt +72 -0
- pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar1985_2017_metOnzHeid.txt +72 -0
- pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar2017.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar2017_metOnzHeid.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/Hansweert/OvkansZee_Hansweert.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar1985_2017.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar1985_2017_metOnzHeid.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar2017.txt +85 -0
- pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar2017_metOnzHeid.txt +85 -0
- pydra_core/data/statistics/Zeewaterstand/Harlingen/OvkansZee_Harlingen.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar1985_2017.txt +85 -0
- pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar1985_2017_metOnzHeid.txt +85 -0
- pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar2017.txt +84 -0
- pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar2017_metOnzHeid.txt +84 -0
- pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/OvkansZee_Hoek van Holland.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar1985_2017.txt +87 -0
- pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar1985_2017_metOnzHeid.txt +87 -0
- pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar2017.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar2017_metOnzHeid.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/Huibertgat/OvkansZee_Huibertgat.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar1985_2017.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar1985_2017_metOnzHeid.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar2017.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar2017_metOnzHeid.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/IJmuiden/OvkansZee_IJmuiden.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar1985_2017.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar1985_2017_metOnzHeid.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar2017.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar2017_metOnzHeid.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/OvkansZee_IJmuiden_virtueel.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar1985_2017.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar1985_2017_metOnzHeid.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar2017.txt +85 -0
- pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar2017_metOnzHeid.txt +85 -0
- pydra_core/data/statistics/Zeewaterstand/Lauwersoog/OvkansZee_Lauwersoog.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar1985_2011.txt +89 -0
- pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar1985_2017.txt +89 -0
- pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar1985_2017_metOnzheid.txt +93 -0
- pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar2017.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar2017_metOnzheid.txt +86 -0
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar1985_2017.txt +80 -0
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar1985_2017_metOnzHeid.txt +80 -0
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar2017.txt +80 -0
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar2017_metOnzHeid.txt +80 -0
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_16sectoren_12u_2023.txt +75 -0
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_16sectoren_12u_2023_metOnzHeid.txt +74 -0
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/OvkansZee_OS11.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/OvkansZeewaterstand_OS.txt +72 -0
- pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar1985_2017.txt +75 -0
- pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar1985_2017_metOnzHeid.txt +75 -0
- pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar2017.txt +75 -0
- pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar2017_metOnzHeid.txt +75 -0
- pydra_core/data/statistics/Zeewaterstand/Vlissingen/OvkansZee_Vlissingen.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar1985_2017.txt +75 -0
- pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar1985_2017_metOnzHeid.txt +75 -0
- pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar2017.txt +75 -0
- pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar2017_metOnzHeid.txt +75 -0
- pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/OvkansZee_Vlissingen_virtueel.txt +71 -0
- pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar1985_2017.txt +88 -0
- pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar1985_2017_metOnzHeid.txt +88 -0
- pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar2017.txt +87 -0
- pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar2017_metOnzHeid.txt +87 -0
- pydra_core/data/statistics/Zeewaterstand/West-Terschelling/OvkansZee_West-Terschelling.txt +71 -0
- pydra_core/hrdatabase/__init__.py +0 -0
- pydra_core/hrdatabase/hrdatabase.py +177 -0
- pydra_core/io/__init__.py +0 -0
- pydra_core/io/database_hr.py +598 -0
- pydra_core/io/database_settings.py +183 -0
- pydra_core/io/file_hydranl.py +92 -0
- pydra_core/location/__init__.py +0 -0
- pydra_core/location/location.py +115 -0
- pydra_core/location/model/__init__.py +0 -0
- pydra_core/location/model/base_model.py +270 -0
- pydra_core/location/model/loading/__init__.py +0 -0
- pydra_core/location/model/loading/loading.py +368 -0
- pydra_core/location/model/loading/loading_factory.py +89 -0
- pydra_core/location/model/loading/loading_model/__init__.py +0 -0
- pydra_core/location/model/loading/loading_model/loading_model.py +324 -0
- pydra_core/location/model/loading/other_systems/__init__.py +0 -0
- pydra_core/location/model/loading/other_systems/loading_wave_overtopping.py +122 -0
- pydra_core/location/model/loading/water_systems/__init__.py +0 -0
- pydra_core/location/model/loading/water_systems/loading_coast.py +54 -0
- pydra_core/location/model/loading/water_systems/loading_eastern_scheldt.py +169 -0
- pydra_core/location/model/loading/water_systems/loading_ijssel_vechtdelta.py +55 -0
- pydra_core/location/model/loading/water_systems/loading_lake.py +55 -0
- pydra_core/location/model/loading/water_systems/loading_lower_rivier.py +68 -0
- pydra_core/location/model/loading/water_systems/loading_upper_river.py +55 -0
- pydra_core/location/model/statistics/__init__.py +0 -0
- pydra_core/location/model/statistics/other_systems/__init__.py +0 -0
- pydra_core/location/model/statistics/other_systems/statistics_wave_overtopping.py +72 -0
- pydra_core/location/model/statistics/statistics.py +171 -0
- pydra_core/location/model/statistics/statistics_factory.py +89 -0
- pydra_core/location/model/statistics/stochastics/__init__.py +0 -0
- pydra_core/location/model/statistics/stochastics/barrier/__init__.py +0 -0
- pydra_core/location/model/statistics/stochastics/barrier/barrier.py +43 -0
- pydra_core/location/model/statistics/stochastics/barrier/barrier_easternscheldt.py +147 -0
- pydra_core/location/model/statistics/stochastics/barrier/barrier_europoort.py +209 -0
- pydra_core/location/model/statistics/stochastics/barrier/barrier_ramspol.py +41 -0
- pydra_core/location/model/statistics/stochastics/barrier/no_barrier.py +21 -0
- pydra_core/location/model/statistics/stochastics/discharge.py +108 -0
- pydra_core/location/model/statistics/stochastics/discrete_probability.py +55 -0
- pydra_core/location/model/statistics/stochastics/lake_level.py +158 -0
- pydra_core/location/model/statistics/stochastics/model_uncertainty.py +358 -0
- pydra_core/location/model/statistics/stochastics/sea_level/sea_level.py +53 -0
- pydra_core/location/model/statistics/stochastics/sea_level/sea_level_lower_river.py +93 -0
- pydra_core/location/model/statistics/stochastics/sea_level/sea_level_point.py +65 -0
- pydra_core/location/model/statistics/stochastics/sea_level/sea_level_triangular.py +158 -0
- pydra_core/location/model/statistics/stochastics/sigma_function.py +24 -0
- pydra_core/location/model/statistics/stochastics/wave_shape.py +624 -0
- pydra_core/location/model/statistics/stochastics/wind_speed.py +196 -0
- pydra_core/location/model/statistics/water_systems/__init__.py +0 -0
- pydra_core/location/model/statistics/water_systems/statistics_coast.py +153 -0
- pydra_core/location/model/statistics/water_systems/statistics_eastern_scheldt.py +177 -0
- pydra_core/location/model/statistics/water_systems/statistics_ijssel_vechtdelta.py +229 -0
- pydra_core/location/model/statistics/water_systems/statistics_lake.py +86 -0
- pydra_core/location/model/statistics/water_systems/statistics_lower_river.py +321 -0
- pydra_core/location/model/statistics/water_systems/statistics_upper_river.py +86 -0
- pydra_core/location/model/water_system.py +249 -0
- pydra_core/location/model/wave_overtopping.py +25 -0
- pydra_core/location/profile/__init__.py +0 -0
- pydra_core/location/profile/foreland.py +246 -0
- pydra_core/location/profile/lib/DikesOvertopping.LICENSE +619 -0
- pydra_core/location/profile/lib/README.MD +10 -0
- pydra_core/location/profile/lib/__init__.py +1 -0
- pydra_core/location/profile/profile.py +971 -0
- pydra_core/location/profile/profile_loading.py +473 -0
- pydra_core/location/settings/__init__.py +0 -0
- pydra_core/location/settings/settings.py +387 -0
- pydra_core-0.0.1.dist-info/METADATA +22 -0
- pydra_core-0.0.1.dist-info/RECORD +389 -0
- 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")
|
File without changes
|
@@ -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
|
File without changes
|
@@ -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)
|