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,158 @@
|
|
1
|
+
import numpy as np
|
2
|
+
|
3
|
+
from .wave_shape import WaveShape
|
4
|
+
from ....settings.settings import Settings
|
5
|
+
from .....common.enum import WaterSystem, WaveShapeType
|
6
|
+
from .....common.interpolate import Interpolate
|
7
|
+
from .....io.file_hydranl import FileHydraNL
|
8
|
+
|
9
|
+
|
10
|
+
class LakeLevel:
|
11
|
+
"""
|
12
|
+
Class to describe the lake (water) level statistics.
|
13
|
+
"""
|
14
|
+
|
15
|
+
def __init__(self, settings: Settings):
|
16
|
+
"""
|
17
|
+
Constructor class for LakeLevel statistics.
|
18
|
+
|
19
|
+
Parameters
|
20
|
+
----------
|
21
|
+
settings : Settings
|
22
|
+
The Settings object
|
23
|
+
"""
|
24
|
+
# Read exceedance probability peak lake level
|
25
|
+
apeak, epapeak = FileHydraNL.read_file_2columns(settings.lake_level_probability)
|
26
|
+
|
27
|
+
# Adjust for lake level rise
|
28
|
+
apeak += settings.lake_level_rise
|
29
|
+
|
30
|
+
# Lowest lake level
|
31
|
+
a_min_piek = max(apeak[0] - settings.lake_level_rise, settings.a_min)
|
32
|
+
|
33
|
+
# Creeer rooster met meerpeilen voor de trapezia
|
34
|
+
self.apeak = np.r_[
|
35
|
+
np.arange(a_min_piek, settings.a_max, settings.a_step), settings.a_max
|
36
|
+
]
|
37
|
+
self.napeak = len(self.apeak)
|
38
|
+
|
39
|
+
# Als de meerpeilen bekend zijn kunnen de trapezia worden geïnitialiseerd
|
40
|
+
# (Vul de vector met meerpeilen)
|
41
|
+
self.wave_shape = WaveShape(settings, type=WaveShapeType.LAKE_LEVEL)
|
42
|
+
self.wave_shape.initialise_wave_shapes(
|
43
|
+
self.apeak, climate_change=settings.lake_level_rise
|
44
|
+
)
|
45
|
+
|
46
|
+
# Creeer rooster met meerpeilen voor het opdelen van de golfvormen in blokken
|
47
|
+
# TODO self.invoergeg.m_min #= MLAAGST? Moet dit dan kol1.min() zijn?
|
48
|
+
# self.mblok = roosterblokken(self.invoergeg.m_min, self.mpiek)
|
49
|
+
self.ablok = self.apeak.copy()
|
50
|
+
self.nablok = len(self.ablok)
|
51
|
+
|
52
|
+
# Blaas de tabel met overschrijdingskansen voor het meerpeil op
|
53
|
+
# De interpolatie wordt logaritmische uitgevoerd.
|
54
|
+
self.epapeak = np.exp(
|
55
|
+
Interpolate.inextrp1d(x=self.apeak, xp=apeak, fp=np.log(epapeak))
|
56
|
+
)
|
57
|
+
self.epapeak[self.epapeak > 1] = 1.0
|
58
|
+
|
59
|
+
# IJssel-Vechtdelta and VZM related
|
60
|
+
if settings.watersystem in [
|
61
|
+
WaterSystem.IJSSEL_DELTA,
|
62
|
+
WaterSystem.VECHT_DELTA,
|
63
|
+
WaterSystem.VOLKERAK_ZOOMMEER,
|
64
|
+
]:
|
65
|
+
# Lokale paramters
|
66
|
+
N = 376
|
67
|
+
|
68
|
+
# Geef verwachtingswaarde en standaarddeviatie van de normale verdeling in de getransformeerde ruimte een waarde
|
69
|
+
mu = 0.0
|
70
|
+
sigma = settings.sigma_aq # invoergeg.sigma_mq(ig)
|
71
|
+
|
72
|
+
# Zet de gegevens voor de verfijnde interpolatietabel (de y-waarden, ofwel de K_sigma(s) uit vgl. 4.7 van [Geerse, 2003.129x]
|
73
|
+
# Bereken voor elke y-waarde de integraal 4.3 [Geerse, 2003]
|
74
|
+
f_y_k = np.linspace(-2 - 4 * sigma, 20 + 4 * sigma, N)
|
75
|
+
|
76
|
+
# Verfijnde tabel klaarzetten van de cumulatieve verdelingsfunctie onder transformatie van s naar y
|
77
|
+
# Zie ook vgl. 4.3 van [Geerse, 2003]
|
78
|
+
|
79
|
+
# Maak de vector met y-waarden:
|
80
|
+
# Bereken voor elke y-waarde de integraal 4.3 [Geerse, 2003]
|
81
|
+
f_y_sigma = self.wave_shape.cum_norm_s_naar_y(f_y_k, mu, sigma)
|
82
|
+
|
83
|
+
# Kansverdeling schalen of de hoogste ONDERschrijdingskans gelijk stellen aan 1
|
84
|
+
if f_y_sigma[-1] > 1.0:
|
85
|
+
f_y_sigma /= f_y_sigma[-1]
|
86
|
+
else:
|
87
|
+
f_y_sigma[-1] = 1.0
|
88
|
+
|
89
|
+
for i in range(N):
|
90
|
+
if f_y_sigma[i] > 0:
|
91
|
+
D = i
|
92
|
+
break
|
93
|
+
|
94
|
+
# Een ONDERschrijdingskans gelijk aan 0.0 mag worden meegenomen.
|
95
|
+
if D > 0:
|
96
|
+
D -= 1
|
97
|
+
|
98
|
+
self.k_apeak = Interpolate.inextrp1d(
|
99
|
+
x=1 - self.epapeak, xp=f_y_sigma[D:], fp=f_y_k[D:]
|
100
|
+
)
|
101
|
+
|
102
|
+
# Bereken de momentane overschrijdingskansen van het meerpeil
|
103
|
+
self.mom_ovkans_a = self.wave_shape.instantaneous_exceedance_probability(
|
104
|
+
self.epapeak, self.ablok
|
105
|
+
)
|
106
|
+
|
107
|
+
# Transition
|
108
|
+
if (settings.transition_lake_wave_shape is not None) and (
|
109
|
+
settings.transition_lake_wave_shape != 0.0
|
110
|
+
):
|
111
|
+
self.wave_shape.transition_wave(settings.transition_lake_wave_shape)
|
112
|
+
|
113
|
+
# Filter overschrijdingskansen die kleiner dan 0 of grote dan 1 zijn. Dit kan voorkomen door floating point precision
|
114
|
+
self.upablok = np.clip(1.0 - self.mom_ovkans_a, 0.0, 1.0)
|
115
|
+
|
116
|
+
def __len__(self):
|
117
|
+
"""
|
118
|
+
Return the number of discharge discretisations.
|
119
|
+
|
120
|
+
Returns
|
121
|
+
-------
|
122
|
+
int
|
123
|
+
Number of discretisations
|
124
|
+
"""
|
125
|
+
return self.nablok
|
126
|
+
|
127
|
+
def get_discretisation(self) -> np.ndarray:
|
128
|
+
"""
|
129
|
+
Return the discharge discretisation.
|
130
|
+
|
131
|
+
Returns
|
132
|
+
-------
|
133
|
+
np.ndarray
|
134
|
+
1D array with discretisation
|
135
|
+
"""
|
136
|
+
return self.ablok
|
137
|
+
|
138
|
+
def get_exceedance_probability(self) -> np.ndarray:
|
139
|
+
"""
|
140
|
+
Return exceedance probility of the discharge
|
141
|
+
|
142
|
+
Returns
|
143
|
+
-------
|
144
|
+
np.ndarray
|
145
|
+
A 1D array with the discharge exceedance probability
|
146
|
+
"""
|
147
|
+
return self.upablok
|
148
|
+
|
149
|
+
def get_wave_shape(self) -> WaveShape:
|
150
|
+
"""
|
151
|
+
Return the wave form statistics object.
|
152
|
+
|
153
|
+
Returns
|
154
|
+
-------
|
155
|
+
WaveShape
|
156
|
+
The WaveShape statistics
|
157
|
+
"""
|
158
|
+
return self.wave_shape
|
@@ -0,0 +1,358 @@
|
|
1
|
+
import numpy as np
|
2
|
+
|
3
|
+
from dataclasses import dataclass
|
4
|
+
from scipy.stats import multivariate_normal, norm
|
5
|
+
|
6
|
+
from ....settings.settings import Settings
|
7
|
+
from .....io.database_hr import DatabaseHR
|
8
|
+
|
9
|
+
|
10
|
+
class ModelUncertainty:
|
11
|
+
"""
|
12
|
+
Model uncertainties class. Containing all model uncertainties for each closing situation.
|
13
|
+
|
14
|
+
Attributes
|
15
|
+
----------
|
16
|
+
model_uncertainties : dict
|
17
|
+
A dictionary with
|
18
|
+
"""
|
19
|
+
|
20
|
+
# Init attributes
|
21
|
+
model_uncertainties = {}
|
22
|
+
correlations = {}
|
23
|
+
|
24
|
+
def __init__(self, settings: Settings):
|
25
|
+
"""
|
26
|
+
Read the model uncertainties from the database and add them to this class
|
27
|
+
|
28
|
+
Parameters
|
29
|
+
----------
|
30
|
+
settings : Settings
|
31
|
+
The Settings object
|
32
|
+
"""
|
33
|
+
# Save the discretisation step size
|
34
|
+
self.step_size = {
|
35
|
+
"h": settings.model_uncertainty_water_level_steps,
|
36
|
+
"hs": settings.model_uncertainty_wave_height_steps,
|
37
|
+
"tspec": settings.model_uncertainty_wave_period_steps,
|
38
|
+
}
|
39
|
+
|
40
|
+
# Obtain the model uncertainties and correlation between model uncertainties
|
41
|
+
with DatabaseHR(settings.database_path) as database:
|
42
|
+
mu = database.get_model_uncertainties(settings)
|
43
|
+
cu = database.get_correlation_uncertainties(settings)
|
44
|
+
|
45
|
+
# Iterate over the model uncertainties and add them to the class
|
46
|
+
for comb, uncertainty in mu.groupby(["k", "rvid"]):
|
47
|
+
self.model_uncertainties[comb] = DistributionUncertainty(
|
48
|
+
uncertainty.to_numpy()[0]
|
49
|
+
)
|
50
|
+
|
51
|
+
# Iterate over the correlation between model uncertainties and add them to the class
|
52
|
+
for comb, correlation in cu.groupby(["k", "rvid", "rvid2"]):
|
53
|
+
self.correlations[comb] = CorrelationUncertainty(correlation.to_numpy()[0])
|
54
|
+
|
55
|
+
def iterate_model_uncertainty_wave_conditions(
|
56
|
+
self, closing_situation: int = 1, wave_period: str = "tspec"
|
57
|
+
):
|
58
|
+
"""
|
59
|
+
Iterate over all model uncertainty combinations for the significant wave height and wave period
|
60
|
+
|
61
|
+
Parameters
|
62
|
+
----------
|
63
|
+
closing_situation : int, optional
|
64
|
+
The closing situation id (default : 1)
|
65
|
+
wave_period : str, optional
|
66
|
+
Whether to iterate over peak period (tp) or spectral wave period (tspec) (default : 'tspec')
|
67
|
+
|
68
|
+
Returns
|
69
|
+
-------
|
70
|
+
iterator
|
71
|
+
(hs, t, probability of (hs, t))
|
72
|
+
"""
|
73
|
+
# Check if tp or tspec
|
74
|
+
wave_period = wave_period.lower()
|
75
|
+
if wave_period not in ["tp", "tspec"]:
|
76
|
+
raise KeyError(f"[ERROR] Wave period '{wave_period}' unknown.")
|
77
|
+
|
78
|
+
# Distributions
|
79
|
+
mu_hs = self.get_model_uncertainty("hs", closing_situation)
|
80
|
+
mu_t = self.get_model_uncertainty(wave_period, closing_situation)
|
81
|
+
|
82
|
+
# Significant wave height
|
83
|
+
if mu_hs is not None:
|
84
|
+
hs, hsedges = mu_hs.discretise(self.step_size["hs"])
|
85
|
+
tmp = norm.cdf(hsedges)
|
86
|
+
p_hs = tmp[1:] - tmp[:-1]
|
87
|
+
else:
|
88
|
+
hs, p_hs = [1.0], np.array([1.0])
|
89
|
+
|
90
|
+
# Wave period
|
91
|
+
if mu_t is not None:
|
92
|
+
t, tedges = mu_t.discretise(self.step_size["tspec"])
|
93
|
+
tmp = norm.cdf(tedges)
|
94
|
+
p_t = tmp[1:] - tmp[:-1]
|
95
|
+
else:
|
96
|
+
t, p_t = [1.0], np.array([1.0])
|
97
|
+
|
98
|
+
# Multiply the probabilities (assuming independence)
|
99
|
+
combined_probability = p_hs[:, None] * p_t[None, :]
|
100
|
+
|
101
|
+
# Obtain the correlation between wave height and period (optional, otherwise None)
|
102
|
+
corr_hs_t = self.get_correlation("hs", wave_period)
|
103
|
+
|
104
|
+
# If rho is defined, apply correlation
|
105
|
+
if corr_hs_t is not None:
|
106
|
+
# Correlation can only be applied when both the wave height and period are defined
|
107
|
+
if (mu_hs is not None) and (mu_t is not None):
|
108
|
+
# Apply correlation
|
109
|
+
exc_probs = np.zeros((len(hsedges), len(tedges)))
|
110
|
+
for i, x in enumerate(hsedges):
|
111
|
+
for j, y in enumerate(tedges):
|
112
|
+
exc_probs[i, j] = multivariate_normal.cdf(
|
113
|
+
[x, y],
|
114
|
+
mean=(0, 0),
|
115
|
+
cov=[[1, corr_hs_t.rho], [corr_hs_t.rho, 1]],
|
116
|
+
)
|
117
|
+
|
118
|
+
# Take the difference in both directions
|
119
|
+
combined_probability = exc_probs[1:] - exc_probs[:-1]
|
120
|
+
combined_probability = (
|
121
|
+
combined_probability[:, 1:] - combined_probability[:, :-1]
|
122
|
+
)
|
123
|
+
|
124
|
+
# Otherwise give a warning
|
125
|
+
else:
|
126
|
+
print(
|
127
|
+
"[WARNING] Correlation between wave height and period defined. However can not be applied because no model uncertainty is defined for either the wave height, period or both."
|
128
|
+
)
|
129
|
+
|
130
|
+
# Check
|
131
|
+
assert abs(combined_probability.sum() - 1) < 1e-6
|
132
|
+
|
133
|
+
# Iterator
|
134
|
+
for i, fh in enumerate(hs):
|
135
|
+
for j, ft in enumerate(t):
|
136
|
+
yield fh, ft, combined_probability[i, j]
|
137
|
+
|
138
|
+
def get_model_uncertainty(self, result_variable: str, closing_situation: int = 1):
|
139
|
+
"""
|
140
|
+
Return the model uncertainty object for a result variable and closing situation id
|
141
|
+
|
142
|
+
Parameters
|
143
|
+
----------
|
144
|
+
result_variable : str
|
145
|
+
Result variable (e.g. h, hs)
|
146
|
+
closing_situation : int
|
147
|
+
Closing situation ID (default: 1)
|
148
|
+
|
149
|
+
Returns
|
150
|
+
-------
|
151
|
+
DistributionUncertainty or None
|
152
|
+
The DistributionUncertainty object if it exists, otherwise None
|
153
|
+
"""
|
154
|
+
# To lower
|
155
|
+
rv = result_variable.lower()
|
156
|
+
|
157
|
+
# Try to return the model uncertainty, otherwise return None
|
158
|
+
return self.model_uncertainties.get((closing_situation, rv))
|
159
|
+
|
160
|
+
def get_correlation(
|
161
|
+
self, result_variable1: str, result_variable2: str, closing_situation: int = 1
|
162
|
+
):
|
163
|
+
"""
|
164
|
+
Return the correlation object between two result variables given a closing situation id
|
165
|
+
|
166
|
+
Parameters
|
167
|
+
----------
|
168
|
+
result_variable1 : str
|
169
|
+
Result variable (e.g. h, hs)
|
170
|
+
result_variable2 : str
|
171
|
+
Result variable (e.g. h, hs)
|
172
|
+
closing_situation : int
|
173
|
+
Closing situation ID (default: 1)
|
174
|
+
|
175
|
+
Returns
|
176
|
+
-------
|
177
|
+
Correlation or None
|
178
|
+
The Correlation object if it exists, otherwise None
|
179
|
+
"""
|
180
|
+
# To lower
|
181
|
+
rv1 = result_variable1.lower()
|
182
|
+
rv2 = result_variable2.lower()
|
183
|
+
|
184
|
+
# Check both orders [ccid, rvid1, rvid2]
|
185
|
+
return self.correlations.get(
|
186
|
+
(closing_situation, rv1, rv2),
|
187
|
+
self.correlations.get((closing_situation, rv2, rv1)),
|
188
|
+
)
|
189
|
+
|
190
|
+
def process_model_uncertainty(
|
191
|
+
self,
|
192
|
+
closing_situation: int,
|
193
|
+
result_variable: str,
|
194
|
+
levels: np.ndarray,
|
195
|
+
exceedance_probability: np.ndarray,
|
196
|
+
haxis: int,
|
197
|
+
):
|
198
|
+
"""
|
199
|
+
Verwerk modelonzekerheid in gegeven stochast. Afhankelijk van de stochast wordt de onzekerheid
|
200
|
+
opgeteld (additief) of vermenigvuldigd (multiplicatief).
|
201
|
+
|
202
|
+
Args:
|
203
|
+
stochast (str): Stochastnaam. h, hs, tp of tspec
|
204
|
+
niveaus (np.ndarray): Niveaus waarin de onzekerheden worden ingedeeld.
|
205
|
+
ovkansen (np.ndarray): Overschrijdingskansen van de stochast, met eventueel meerdere dimensies
|
206
|
+
die meegeïntegreerd
|
207
|
+
haxis (int): as waarop de te integreren stochast zit
|
208
|
+
sluitsituatie (str): Keringsituatie, in sommige gevallen is de onzekerheid hiervan afhankelijk
|
209
|
+
|
210
|
+
Returns:
|
211
|
+
np.ndarray: Overschrijdingskansen met geïntegreerde onzekerheid
|
212
|
+
"""
|
213
|
+
# Obtain distribution
|
214
|
+
dis = self.get_model_uncertainty(result_variable, closing_situation)
|
215
|
+
|
216
|
+
# Is the model uncertainty defined?
|
217
|
+
if dis is None:
|
218
|
+
return exceedance_probability
|
219
|
+
|
220
|
+
# Additive (h) or Multiplicative (hs, tspec, tp)
|
221
|
+
if result_variable in ["h"]:
|
222
|
+
klassekansen = self.bepaal_klassekansen_additief(levels, dis.mu, dis.sigma)
|
223
|
+
|
224
|
+
elif result_variable in ["hs", "tp", "tspec"]:
|
225
|
+
klassekansen = self.bepaal_klassekansen_multiplicatief(
|
226
|
+
levels, dis.mu, dis.sigma
|
227
|
+
)
|
228
|
+
|
229
|
+
else:
|
230
|
+
raise KeyError(result_variable)
|
231
|
+
|
232
|
+
# Calculate the exceedance probability
|
233
|
+
exceedance_probability = np.tensordot(
|
234
|
+
klassekansen, exceedance_probability, axes=([0], [haxis])
|
235
|
+
)
|
236
|
+
|
237
|
+
return exceedance_probability
|
238
|
+
|
239
|
+
def bepaal_klassekansen_additief(self, niveaus, mu, sigma):
|
240
|
+
# Bepaal klassegrenzen en klassekansen
|
241
|
+
hgrens = np.concatenate(
|
242
|
+
[[-np.inf], (niveaus[1:] + niveaus[:-1]) / 2.0, [np.inf]]
|
243
|
+
)
|
244
|
+
klassekansen = []
|
245
|
+
|
246
|
+
# Bereken per niveau (waterstand) de kans dat de waterstand door onzekerheid in een andere klasse valt
|
247
|
+
for niveau in niveaus:
|
248
|
+
grenskansen = norm.cdf(x=hgrens - mu, loc=niveau, scale=sigma)
|
249
|
+
klassekansen.append(grenskansen[1:] - grenskansen[:-1])
|
250
|
+
klassekansen = np.array(klassekansen)
|
251
|
+
|
252
|
+
return klassekansen
|
253
|
+
|
254
|
+
def bepaal_klassekansen_multiplicatief(self, niveaus, mu, sigma):
|
255
|
+
# Bepaal klassegrenzen en klassekansen
|
256
|
+
hgrens = np.concatenate(
|
257
|
+
[[-np.inf], (niveaus[1:] + niveaus[:-1]) / 2.0, [np.inf]]
|
258
|
+
)
|
259
|
+
klassekansen = []
|
260
|
+
|
261
|
+
# Bereken per niveau (waterstand) de kans dat de waterstand door onzekerheid in een andere klasse valt
|
262
|
+
for niveau in niveaus:
|
263
|
+
grenskansen = norm.cdf(hgrens / niveau, loc=mu, scale=sigma)
|
264
|
+
klassekansen.append(grenskansen[1:] - grenskansen[:-1])
|
265
|
+
klassekansen = np.array(klassekansen)
|
266
|
+
|
267
|
+
return klassekansen
|
268
|
+
|
269
|
+
|
270
|
+
class DistributionUncertainty:
|
271
|
+
"""
|
272
|
+
Model uncertainty class for a closing situation.
|
273
|
+
"""
|
274
|
+
|
275
|
+
def __init__(self, uncertainty: list):
|
276
|
+
"""
|
277
|
+
Initialise the model uncertainty (Normal Distribution)
|
278
|
+
"""
|
279
|
+
# Save information
|
280
|
+
self.k, self.rvid, self.mu, self.sigma = uncertainty
|
281
|
+
self.k = int(self.k)
|
282
|
+
self.mu = float(self.mu)
|
283
|
+
self.sigma = float(self.sigma)
|
284
|
+
|
285
|
+
def discretise(self, nsteps: int):
|
286
|
+
"""
|
287
|
+
Discretise the model uncertainty
|
288
|
+
|
289
|
+
Parameters
|
290
|
+
----------
|
291
|
+
nsteps : int
|
292
|
+
Number of steps
|
293
|
+
|
294
|
+
Returns
|
295
|
+
-------
|
296
|
+
probabilities : list
|
297
|
+
List of the probabilities for each bin
|
298
|
+
edges : list
|
299
|
+
List with the edges of each bin
|
300
|
+
"""
|
301
|
+
# If nsteps is 1, there is no need to discretise
|
302
|
+
if nsteps == 1:
|
303
|
+
return self.mu, [self.mu - 100 * self.sigma, self.mu + 100 * self.sigma]
|
304
|
+
|
305
|
+
# Determine the residual probabilities
|
306
|
+
keuzerestkans = 0.05
|
307
|
+
restkans = keuzerestkans / (nsteps**1.5)
|
308
|
+
afstand = -norm.ppf(q=0.5 * restkans, loc=0.0, scale=1.0) * self.sigma
|
309
|
+
ondergrens = self.mu - afstand
|
310
|
+
bovengrens = self.mu + afstand
|
311
|
+
|
312
|
+
# Calculate the probability at the center of the bin
|
313
|
+
probabilities = (
|
314
|
+
ondergrens + np.arange(0.5, nsteps, 1) * (bovengrens - ondergrens) / nsteps
|
315
|
+
)
|
316
|
+
|
317
|
+
# Determine the edges of the bins
|
318
|
+
edges = (
|
319
|
+
np.concatenate(
|
320
|
+
[
|
321
|
+
[self.mu - 100 * self.sigma],
|
322
|
+
(probabilities[1:] + probabilities[:-1]) / 2,
|
323
|
+
[self.mu + 100 * self.sigma],
|
324
|
+
]
|
325
|
+
)
|
326
|
+
- self.mu
|
327
|
+
) / self.sigma
|
328
|
+
|
329
|
+
# Return probabilities and edges
|
330
|
+
return probabilities, edges
|
331
|
+
|
332
|
+
|
333
|
+
@dataclass
|
334
|
+
class CorrelationUncertainty:
|
335
|
+
"""
|
336
|
+
Class om de correlaties tussen uitvoervariabelen op te slaan.
|
337
|
+
Bijv. de correlatie tussen Hs en Tspec
|
338
|
+
"""
|
339
|
+
|
340
|
+
def __init__(self, correlation: list):
|
341
|
+
"""
|
342
|
+
Initialise the correlation between two result variables
|
343
|
+
"""
|
344
|
+
# Save information
|
345
|
+
self.k, self.rvid, self.rvid2, self.rho = correlation
|
346
|
+
self.k = int(self.k)
|
347
|
+
self.rho = float(self.rho)
|
348
|
+
|
349
|
+
# Only allow correlation between Hs and Tp and Hs and Tspec
|
350
|
+
if [self.rvid, self.rvid2] not in [
|
351
|
+
["hs", "tp"],
|
352
|
+
["tp", "hs"],
|
353
|
+
["hs", "tspec"],
|
354
|
+
["tspec", "hs"],
|
355
|
+
]:
|
356
|
+
raise ValueError(
|
357
|
+
f"Not Implemented: Correlation between ({self.rvid}) and ({self.rvid2})"
|
358
|
+
)
|
@@ -0,0 +1,53 @@
|
|
1
|
+
import numpy as np
|
2
|
+
|
3
|
+
from abc import ABC
|
4
|
+
|
5
|
+
|
6
|
+
class SeaLevel(ABC):
|
7
|
+
"""
|
8
|
+
Class to describe the sea (water) level statistics.
|
9
|
+
Sea level statistics are conditional on the wind direction.
|
10
|
+
"""
|
11
|
+
|
12
|
+
def __init__(self):
|
13
|
+
"""
|
14
|
+
Constructor class for the SeaLevel statistics.
|
15
|
+
"""
|
16
|
+
self.nm = 0
|
17
|
+
self.m = None
|
18
|
+
self.epm = None
|
19
|
+
|
20
|
+
def __len__(self):
|
21
|
+
"""
|
22
|
+
Return the number of sea level discretisations.
|
23
|
+
|
24
|
+
Returns
|
25
|
+
-------
|
26
|
+
int
|
27
|
+
Number of discretisations
|
28
|
+
"""
|
29
|
+
return self.nm
|
30
|
+
|
31
|
+
def get_discretisation(self) -> np.ndarray:
|
32
|
+
"""
|
33
|
+
Return the sea level discretisation.
|
34
|
+
|
35
|
+
Returns
|
36
|
+
-------
|
37
|
+
np.ndarray
|
38
|
+
1D array with discretisation
|
39
|
+
"""
|
40
|
+
return self.m
|
41
|
+
|
42
|
+
def get_exceedance_probability(self) -> np.ndarray:
|
43
|
+
"""
|
44
|
+
Return exceedance probility of the sea level, conditional on the wind
|
45
|
+
direction.
|
46
|
+
|
47
|
+
Returns
|
48
|
+
-------
|
49
|
+
np.ndarray
|
50
|
+
A 2D array with the sea level exceedance probability conditional on
|
51
|
+
the wind direction (r x m)
|
52
|
+
"""
|
53
|
+
return self.epm
|
@@ -0,0 +1,93 @@
|
|
1
|
+
import numpy as np
|
2
|
+
|
3
|
+
from .sea_level import SeaLevel
|
4
|
+
from .....settings.settings import Settings
|
5
|
+
from ......common.interpolate import Interpolate
|
6
|
+
from ......common.probability import ProbabilityFunctions
|
7
|
+
from ......io.file_hydranl import FileHydraNL
|
8
|
+
|
9
|
+
|
10
|
+
class SeaLevelLowerRiver(SeaLevel):
|
11
|
+
"""
|
12
|
+
Class to describe the sea (water) level statistics.
|
13
|
+
Sea level statistics are conditional on the wind direction.
|
14
|
+
"""
|
15
|
+
|
16
|
+
def __init__(self, settings: Settings):
|
17
|
+
"""
|
18
|
+
Initialise the sea level statistics for Rhine Tidal, Meuse Tidal,
|
19
|
+
EuroPoort, Volkerak-Zoommeer and Hollandsche IJssel.
|
20
|
+
|
21
|
+
Parameters
|
22
|
+
----------
|
23
|
+
settings : Settings
|
24
|
+
The Settings object
|
25
|
+
"""
|
26
|
+
# Inherit
|
27
|
+
super().__init__()
|
28
|
+
|
29
|
+
# Read the exceedance probability of the sea level conditional to the wind direction
|
30
|
+
m, epm = FileHydraNL.read_file_ncolumns(settings.sea_level_probability)
|
31
|
+
m += settings.sea_level_rise
|
32
|
+
nr = epm.shape[1]
|
33
|
+
|
34
|
+
# Correct for the distance between Hoek van Holland and Maasmond
|
35
|
+
self.translation_m = 0.02 - settings.sea_level_rise
|
36
|
+
|
37
|
+
# Equidistant filling vector with seawater levels
|
38
|
+
self.m = ProbabilityFunctions.get_hnl_disc_array(
|
39
|
+
settings.m_min, settings.m_max, settings.m_step
|
40
|
+
)
|
41
|
+
|
42
|
+
# Alloceer matrices
|
43
|
+
self.nm = len(self.m)
|
44
|
+
self.epm = np.zeros([self.nm, nr])
|
45
|
+
|
46
|
+
# Interpolate the conditional exceedance probability of the sea level onto the given grid
|
47
|
+
for ir in range(nr):
|
48
|
+
iszero = epm[:, ir] == 0.0
|
49
|
+
if iszero.any():
|
50
|
+
zeroidx = np.where(iszero)[0][-1]
|
51
|
+
|
52
|
+
# Interpoleer of extrapoleer logaritmisch tot de 0
|
53
|
+
self.epm[:zeroidx, ir] = np.exp(
|
54
|
+
Interpolate.inextrp1d(
|
55
|
+
x=self.m[:zeroidx], xp=m[~iszero], fp=np.log(epm[~iszero, ir])
|
56
|
+
)
|
57
|
+
)
|
58
|
+
|
59
|
+
# Interpoleer of extrapoleer lineair vanaf 0
|
60
|
+
self.epm[zeroidx:, ir] = np.maximum(
|
61
|
+
0.0, Interpolate.inextrp1d(self.m[zeroidx:], m, epm[:, ir])
|
62
|
+
)
|
63
|
+
|
64
|
+
else:
|
65
|
+
self.epm[:, ir] = np.exp(
|
66
|
+
Interpolate.inextrp1d(x=self.m, xp=m, fp=np.log(epm[:, ir]))
|
67
|
+
)
|
68
|
+
|
69
|
+
# Limit the upper limit of the excedaance probability to 1.0
|
70
|
+
self.epm = np.minimum(1.0, self.epm)
|
71
|
+
|
72
|
+
# Scaling of the conditional exceedance probability to the used time period
|
73
|
+
if (settings.block_duration != 12.0) and (settings.block_duration is not None):
|
74
|
+
self.epm = 1.0 - (1.0 - self.epm) ** (settings.block_duration / 12.0)
|
75
|
+
|
76
|
+
# Allocate matrix
|
77
|
+
self.pm = np.zeros((self.nm, nr))
|
78
|
+
|
79
|
+
# Berekenen kansdichtheid zeewaterstand gegeven de windrichting
|
80
|
+
for ir in range(nr):
|
81
|
+
self.pm[:, ir] = ProbabilityFunctions.probability_density(
|
82
|
+
self.m, self.epm[:, ir]
|
83
|
+
).density
|
84
|
+
|
85
|
+
# Inlezen parameters kansverdeling gezamenlijke kansdichtheid zeewaterstand, windsnelheid
|
86
|
+
# en windrichting
|
87
|
+
_, self.pwinds = FileHydraNL.read_file_ncolumns(
|
88
|
+
settings.wind_sea_level_probability
|
89
|
+
)
|
90
|
+
self.pwinds = self.pwinds.T
|
91
|
+
|
92
|
+
# Geef twee instellingen van het gegevensblok mee in de structure self
|
93
|
+
self.transitional_wind = settings.transitional_wind
|