pydra-core 0.0.1__py2.py3-none-any.whl → 0.0.3__py2.py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- pydra_core/__init__.py +32 -32
- pydra_core/common/common.py +98 -98
- pydra_core/common/enum.py +63 -63
- pydra_core/common/interpolate.py +345 -345
- pydra_core/common/probability.py +293 -293
- pydra_core/core/calculation.py +51 -51
- pydra_core/core/datamodels/frequency_line.py +60 -60
- pydra_core/core/exceedance_frequency_line.py +224 -224
- pydra_core/core/exceedance_frequency_line_experimental.py +163 -163
- pydra_core/core/hbn.py +226 -226
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_2017.txt +36 -36
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_2017_metOnzHeid.txt +45 -45
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2015_metOnzHeid_v02.txt +50 -50
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2015_v02.txt +42 -42
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2050_metOnzHeid_v02.txt +56 -56
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2050_v02.txt +48 -48
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2100_metOnzHeid_v02.txt +56 -56
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_G_2100_v02.txt +48 -48
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2015_metOnzHeid_v02.txt +50 -50
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2015_v02.txt +42 -42
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2050_metOnzHeid_v02.txt +56 -56
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2050_v02.txt +48 -48
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2100_metOnzHeid_v02.txt +51 -51
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_OI2014_W_2100_v02.txt +44 -44
- pydra_core/data/statistics/Afvoer/Borgharen/Ovkans_Borgharen_piekafvoer_Ref.txt +27 -27
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_2017.txt +30 -30
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_2017_metOnzHeid.txt +32 -32
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2015.txt +44 -44
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2015_metOnzHeid.txt +33 -33
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2050.txt +44 -44
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2050_metOnzHeid.txt +33 -33
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2100.txt +44 -44
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_G_2100_metOnzHeid.txt +38 -38
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2015.txt +44 -44
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2015_metOnzHeid.txt +33 -33
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2050.txt +44 -44
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2050_metOnzHeid.txt +33 -33
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2100.txt +44 -44
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_OI2014_W_2100_metOnzHeid.txt +33 -33
- pydra_core/data/statistics/Afvoer/Dalfsen/Ovkans_Dalfsen_piekafvoer_Ref.txt +13 -13
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_2017.txt +47 -47
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_2017_metOnzHeid.txt +47 -47
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2015.txt +49 -49
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2015_metOnzHeid.txt +58 -58
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2050.txt +49 -49
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2050_metOnzHeid.txt +58 -58
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2100.txt +49 -49
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_G_2100_metOnzHeid.txt +58 -58
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2015.txt +49 -49
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2015_metOnzHeid.txt +58 -58
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2050.txt +49 -49
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2050_metOnzHeid.txt +58 -58
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2100.txt +49 -49
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_OI2014_W_2100_metOnzHeid.txt +58 -58
- pydra_core/data/statistics/Afvoer/Lith/Ovkans_Lith_piekafvoer_Ref.txt +20 -20
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_2017.txt +33 -33
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_2017_metOnzHeid.txt +59 -59
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015.txt +49 -49
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015_BenedenRijn.txt +49 -49
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015_metOnzHeid.txt +62 -62
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2015_metOnzHeid_BenedenRijn.txt +65 -65
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050.txt +49 -49
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050_BenedenRijn.txt +49 -49
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050_metOnzHeid.txt +62 -62
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2050_metOnzHeid_BenedenRijn.txt +64 -64
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100.txt +49 -49
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100_BenedenRijn.txt +49 -49
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100_metOnzHeid.txt +62 -62
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_G_2100_metOnzHeid_BenedenRijn.txt +64 -64
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015.txt +50 -50
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015_BenedenRijn.txt +50 -50
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015_metOnzHeid.txt +62 -62
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2015_metOnzHeid_BenedenRijn.txt +64 -64
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050.txt +50 -50
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050_BenedenRijn.txt +50 -50
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050_metOnzHeid.txt +62 -62
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2050_metOnzHeid_BenedenRijn.txt +64 -64
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100.txt +50 -50
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100_BenedenRijn.txt +50 -50
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100_metOnzHeid.txt +62 -62
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_OI2014_W_2100_metOnzHeid_BenedenRijn.txt +65 -65
- pydra_core/data/statistics/Afvoer/Lobith/Ovkans_Lobith_piekafvoer_Ref.txt +22 -22
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_2017.txt +55 -55
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_2017_metOnzHeid.txt +55 -55
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2015.txt +46 -46
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2015_metOnzHeid.txt +64 -64
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2050.txt +46 -46
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2050_metOnzHeid.txt +64 -64
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2100.txt +46 -46
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_G_2100_metOnzHeid.txt +64 -64
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2015.txt +47 -47
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2015_metOnzHeid.txt +64 -64
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2050.txt +47 -47
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2050_metOnzHeid.txt +64 -64
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2100.txt +47 -47
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_OI2014_W_2100_metOnzHeid.txt +64 -64
- pydra_core/data/statistics/Afvoer/Olst/Ovkans_Olst_piekafvoer_Ref.txt +14 -14
- pydra_core/data/statistics/Golfvorm/Borgharen/Golfvormen_Borgharen.txt +76 -76
- pydra_core/data/statistics/Golfvorm/Dalfsen/Golfvormen_Dalfsen.txt +83 -83
- pydra_core/data/statistics/Golfvorm/Grevelingenmeer/Golfvormen_Grevelingenmeer.txt +33 -33
- pydra_core/data/statistics/Golfvorm/IJsselmeer/Golfvormen_IJsselmeer.txt +83 -83
- pydra_core/data/statistics/Golfvorm/Lith/Golfvormen_Lith.txt +76 -76
- pydra_core/data/statistics/Golfvorm/Lobith/Golfvormen_Lobith.txt +76 -76
- pydra_core/data/statistics/Golfvorm/Markermeer/Golfvormen_Markermeer.txt +139 -139
- pydra_core/data/statistics/Golfvorm/Olst/Golfvormen_Olst.txt +83 -83
- pydra_core/data/statistics/Golfvorm/Veerse Meer/Golfvormen_Veersemeer.txt +53 -53
- pydra_core/data/statistics/Golfvorm/Veluwerandmeer/Golfvormen_Veluwerandmeer.txt +139 -139
- pydra_core/data/statistics/Golfvorm/Volkerak-Zoommeer/Golfvormen_Volkerakzoommeer.txt +73 -73
- pydra_core/data/statistics/Meerpeil/Grevelingenmeer/Ovkans_Grevelingenmeer_piekmeerpeil_2017.txt +12 -12
- pydra_core/data/statistics/Meerpeil/Grevelingenmeer/Ovkans_Grevelingenmeer_piekmeerpeil_2017_metOnzHeid.txt +24 -24
- pydra_core/data/statistics/Meerpeil/Grevelingenmeer/Ovkans_Grevelingenmeer_piekmeerpeil_v01.txt +12 -12
- pydra_core/data/statistics/Meerpeil/IJsselmeer/Ovkans_IJsselmeer_piekmeerpeil_2017.txt +25 -25
- pydra_core/data/statistics/Meerpeil/IJsselmeer/Ovkans_IJsselmeer_piekmeerpeil_2017_metOnzHeid.txt +39 -39
- pydra_core/data/statistics/Meerpeil/IJsselmeer/Ovkans_IJsselmeer_piekmeerpeil_v01.txt +14 -14
- pydra_core/data/statistics/Meerpeil/Markermeer/Ovkans_Markermeer_piekmeerpeil_2017.txt +18 -18
- pydra_core/data/statistics/Meerpeil/Markermeer/Ovkans_Markermeer_piekmeerpeil_2017_metOnzHeid.txt +37 -37
- pydra_core/data/statistics/Meerpeil/Markermeer/Ovkans_Markermeer_piekmeerpeil_v01.txt +10 -10
- pydra_core/data/statistics/Meerpeil/Veerse Meer/Ovkans_Veersemeer_piekmeerpeil_excl_peilverhoging.txt +13 -13
- pydra_core/data/statistics/Meerpeil/Veerse Meer/Ovkans_Veersemeer_piekmeerpeil_v01.txt +15 -15
- pydra_core/data/statistics/Meerpeil/Veluwerandmeer/Ovkans_Veluwerandmeer_piekmeerpeil_2017.txt +13 -13
- pydra_core/data/statistics/Meerpeil/Veluwerandmeer/Ovkans_Veluwerandmeer_piekmeerpeil_2017_metOnzHeid.txt +36 -36
- pydra_core/data/statistics/Meerpeil/Veluwerandmeer/Ovkans_Veluwerandmeer_piekmeerpeil_v01.txt +13 -13
- pydra_core/data/statistics/Meerpeil/Volkerak-Zoommeer/Ovkans_VZM_piekmeerpeil_BER-VZM.txt +17 -17
- pydra_core/data/statistics/Meerpeil/Volkerak-Zoommeer/Ovkans_VZM_piekmeerpeil_BER-VZM_metOnzHeid.txt +42 -42
- pydra_core/data/statistics/Restant/Oosterschelde/BesliskansenOSKering.txt +524 -524
- pydra_core/data/statistics/Restant/Oosterschelde/KansenFaseverschil_2023.txt +7 -7
- pydra_core/data/statistics/Restant/Oosterschelde/KansenFaseverschil_OS.txt +13 -13
- pydra_core/data/statistics/Restant/Oosterschelde/KansenStormduur_OS.txt +14 -14
- pydra_core/data/statistics/Restant/Oosterschelde/KansenStormduur_OS_40_60_80uur_2023.txt +16 -16
- pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2008.txt +23 -23
- pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2013.txt +18 -18
- pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2017.txt +18 -18
- pydra_core/data/statistics/Restant/Oosterschelde/ScenariokansenOSKering_2023.txt +13 -13
- pydra_core/data/statistics/Restant/Up2U/Up2U10.dat +59 -59
- pydra_core/data/statistics/Restant/Up2U/Up2Up.dat +59 -59
- pydra_core/data/statistics/Restant/Up2U/Up2Ustar.dat +59 -59
- pydra_core/data/statistics/Restant/hulpdijken.txt +59 -59
- pydra_core/data/statistics/Restant/hulpgolfhoogtes.txt +23 -23
- pydra_core/data/statistics/Restant/hulpgolfperiodes.txt +38 -38
- pydra_core/data/statistics/Restant/kansstormduur.txt +8 -8
- pydra_core/data/statistics/Restant/pwind_west.txt +33 -33
- pydra_core/data/statistics/Restant/pwind_west_met_Volkerfactor.txt +33 -33
- pydra_core/data/statistics/Restant/pwind_west_zonder_Volkerfactor.txt +33 -33
- pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Midden/VS_sigmafunctie_Kust_Midden.txt +18 -18
- pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Midden/VS_sigmafunctie_Kust_Midden_2017.txt +22 -22
- pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Noord/VS_sigmafunctie_Kust_Noord.txt +18 -18
- pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Noord/VS_sigmafunctie_Kust_Noord_2017.txt +22 -22
- pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Zuid/VS_sigmafunctie_Kust_Zuid.txt +18 -18
- pydra_core/data/statistics/Sigmafunctie/Hollandse Kust Zuid/VS_sigmafunctie_Kust_Zuid_2017.txt +22 -22
- pydra_core/data/statistics/Sigmafunctie/Oosterschelde/VS_sigmafunctie_OS.txt +21 -21
- pydra_core/data/statistics/Sigmafunctie/Oosterschelde/VS_sigmafunctie_OS_16sectoren_2023.txt +23 -23
- pydra_core/data/statistics/Sigmafunctie/Oosterschelde/VS_sigmafunctie_OS_2017.txt +21 -21
- pydra_core/data/statistics/Sigmafunctie/Waddenzee Oost/VS_sigmafunctie_WZ_oost.txt +18 -18
- pydra_core/data/statistics/Sigmafunctie/Waddenzee Oost/VS_sigmafunctie_WZ_oost_2017.txt +22 -22
- pydra_core/data/statistics/Sigmafunctie/Waddenzee West/VS_sigmafunctie_WZ_west.txt +18 -18
- pydra_core/data/statistics/Sigmafunctie/Waddenzee West/VS_sigmafunctie_WZ_west_2017.txt +22 -22
- pydra_core/data/statistics/Sigmafunctie/Westerschelde/VS_sigmafunctie_WS.txt +18 -18
- pydra_core/data/statistics/Sigmafunctie/Westerschelde/VS_sigmafunctie_WS_2017.txt +22 -22
- pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Europoortkering Maas 2017.csv +630 -630
- pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Europoortkering Rijn 2017.csv +630 -630
- pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Hollandsche IJsselkering.csv +757 -757
- pydra_core/data/statistics/Sluitpeilen/Sluitfunctie Oosterscheldekering 2017.csv +55080 -55080
- pydra_core/data/statistics/Topduur/Borgharen/Topduur_Borgharen_2017.txt +18 -18
- pydra_core/data/statistics/Topduur/Borgharen/Topduur_Borgharen_v00.txt +14 -14
- pydra_core/data/statistics/Topduur/Dalfsen/Topduur_Dalfsen_2017.txt +19 -19
- pydra_core/data/statistics/Topduur/Dalfsen/Topduur_Dalfsen_v01.txt +15 -15
- pydra_core/data/statistics/Topduur/Grevelingenmeer/Topduur_Grevelingenmeer_2017.txt +13 -13
- pydra_core/data/statistics/Topduur/Grevelingenmeer/Topduur_Grevelingenmeer_v01.txt +13 -13
- pydra_core/data/statistics/Topduur/IJsselmeer/Topduur_IJsselmeer_2017.txt +19 -19
- pydra_core/data/statistics/Topduur/IJsselmeer/Topduur_IJsselmeer_v01.txt +14 -14
- pydra_core/data/statistics/Topduur/Lith/Topduur_Lith_2017.txt +18 -18
- pydra_core/data/statistics/Topduur/Lith/Topduur_Lith_v01.txt +17 -17
- pydra_core/data/statistics/Topduur/Lobith/Topduur_Lobith_2017.txt +18 -18
- pydra_core/data/statistics/Topduur/Lobith/Topduur_Lobith_v01.txt +16 -16
- pydra_core/data/statistics/Topduur/Markermeer/Topduur_Markermeer_2017.txt +19 -19
- pydra_core/data/statistics/Topduur/Markermeer/Topduur_Markermeer_v01.txt +11 -11
- pydra_core/data/statistics/Topduur/Olst/Topduur_Olst_2017.txt +19 -19
- pydra_core/data/statistics/Topduur/Olst/Topduur_Olst_v01.txt +15 -15
- pydra_core/data/statistics/Topduur/Veerse Meer/Topduur_Veersemeer_excl_peilverhoging.txt +12 -12
- pydra_core/data/statistics/Topduur/Veerse Meer/Topduur_Veersemeer_v01.txt +15 -15
- pydra_core/data/statistics/Topduur/Veluwerandmeer/Topduur_Veluwerandmeer_2017.txt +11 -11
- pydra_core/data/statistics/Topduur/Veluwerandmeer/Topduur_Veluwerandmeer_v01.txt +11 -11
- pydra_core/data/statistics/Topduur/Volkerak-Zoommeer/Topduur_Volkerakzoommeer_BER-VZM.txt +17 -17
- pydra_core/data/statistics/Windrichting/Deelen/Richtingskansen_Deelen_2017.txt +27 -27
- pydra_core/data/statistics/Windrichting/Hollandse Kust/KansenWindrichting_Kust.txt +16 -16
- pydra_core/data/statistics/Windrichting/Hollandse Kust/KansenWindrichting_Kust_2017.txt +23 -23
- pydra_core/data/statistics/Windrichting/Oosterschelde/KansenWindrichting_16sectoren_OS_2023.txt +30 -30
- pydra_core/data/statistics/Windrichting/Oosterschelde/KansenWindrichting_OS.txt +19 -19
- pydra_core/data/statistics/Windrichting/Oosterschelde/KansenWindrichting_OS_2017.txt +23 -23
- pydra_core/data/statistics/Windrichting/Schiphol/Richtingskansen_Schiphol_12sectoren.txt +19 -19
- pydra_core/data/statistics/Windrichting/Schiphol/Richtingskansen_Schiphol_12sectoren_2017.txt +19 -19
- pydra_core/data/statistics/Windrichting/Schiphol/Richtingskansen_Schiphol_2017.txt +27 -27
- pydra_core/data/statistics/Windrichting/Schiphol/kanswindrichting_v01.txt +28 -28
- pydra_core/data/statistics/Windrichting/Waddenzee/KansenWindrichting_WZ.txt +16 -16
- pydra_core/data/statistics/Windrichting/Waddenzee/KansenWindrichting_WZ_2017.txt +23 -23
- pydra_core/data/statistics/Windrichting/Westerschelde/KansenWindrichting_WS.txt +16 -16
- pydra_core/data/statistics/Windrichting/Westerschelde/KansenWindrichting_WS_2017.txt +23 -23
- pydra_core/data/statistics/Windsnelheid/De Kooy/OvkansWindsnelheid_Texel.txt +69 -69
- pydra_core/data/statistics/Windsnelheid/De Kooy/Ovkanswind_de Kooy_2017.txt +91 -91
- pydra_core/data/statistics/Windsnelheid/De Kooy/Ovkanswind_de Kooy_2017_metOnzHeid.txt +91 -91
- pydra_core/data/statistics/Windsnelheid/Deelen/Ovkanswind_Deelen_2017.txt +90 -90
- pydra_core/data/statistics/Windsnelheid/Deelen/Ovkanswind_Deelen_2017_metOnzHeid.txt +90 -90
- pydra_core/data/statistics/Windsnelheid/Hoek van Holland/OvkansWindsnelheid_Hoek van Holland.txt +69 -69
- pydra_core/data/statistics/Windsnelheid/Hoek van Holland/Ovkanswind_Hoek van Holland_2017.txt +91 -91
- pydra_core/data/statistics/Windsnelheid/Hoek van Holland/Ovkanswind_Hoek van Holland_2017_metOnzHeid.txt +91 -91
- pydra_core/data/statistics/Windsnelheid/IJmuiden/OvkansWindsnelheid_IJmuiden.txt +69 -69
- pydra_core/data/statistics/Windsnelheid/IJmuiden/Ovkanswind_IJmuiden_2017.txt +91 -91
- pydra_core/data/statistics/Windsnelheid/IJmuiden/Ovkanswind_IJmuiden_2017_metOnzHeid.txt +91 -91
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren.txt +50 -50
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017.txt +90 -90
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017_metOnzHeid.txt +90 -90
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017_metWindDrag.txt +96 -96
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_12sectoren_2017_metWindDrag_metOnzHeid.txt +96 -96
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_16sectoren_2017_metWindDrag.txt +96 -96
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_16sectoren_2017_metWindDrag_metOnzHeid.txt +96 -96
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_2017.txt +90 -90
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_2017_metOnzHeid.txt +90 -90
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_met_Volkerfactor_2017.txt +90 -90
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_Schiphol_met_Volkerfactor_2017_metOnzHeid.txt +90 -90
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol.txt +57 -57
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol_10%.txt +63 -63
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol_5%.txt +61 -61
- pydra_core/data/statistics/Windsnelheid/Schiphol/Ovkanswind_schiphol_B_met volker.txt +59 -59
- pydra_core/data/statistics/Windsnelheid/Vlissingen/OvkansWindsnelheid_OS.txt +66 -66
- pydra_core/data/statistics/Windsnelheid/Vlissingen/OvkansWindsnelheid_Vlissingen.txt +69 -69
- pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_16sectoren_2023.txt +91 -91
- pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_16sectoren_2023_metOnzHeid.txt +90 -90
- pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017.txt +91 -91
- pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017_metOnzHeid.txt +91 -91
- pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017_metWindDrag.txt +96 -96
- pydra_core/data/statistics/Windsnelheid/Vlissingen/Ovkanswind_Vlissingen_2017_metWindDrag_metOnzHeid.txt +96 -96
- pydra_core/data/statistics/Windsnelheid/West-Terschelling/OvkansWindsnelheid_West-Tersch.txt +69 -69
- pydra_core/data/statistics/Windsnelheid/West-Terschelling/Ovkanswind_West Terschelling_2017.txt +91 -91
- pydra_core/data/statistics/Windsnelheid/West-Terschelling/Ovkanswind_West Terschelling_2017_metOnzHeid.txt +91 -91
- pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar1985_2017.txt +81 -81
- pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar1985_2017_metOnzHeid.txt +81 -81
- pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar2017.txt +81 -81
- pydra_core/data/statistics/Zeewaterstand/Delfzijl/CondPovDelfzijl_12u_zichtjaar2017_metOnzHeid.txt +81 -81
- pydra_core/data/statistics/Zeewaterstand/Delfzijl/OvkansZee_Delfzijl.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar1985_2017.txt +89 -89
- pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar1985_2017_metOnzHeid.txt +89 -89
- pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar2017.txt +88 -88
- pydra_core/data/statistics/Zeewaterstand/Den Helder/CondPovDenHelder_12u_zichtjaar2017_metOnzHeid.txt +88 -88
- pydra_core/data/statistics/Zeewaterstand/Den Helder/OvkansZee_Den Helder.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar1985_2017.txt +88 -88
- pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar1985_2017_metOnzHeid.txt +88 -88
- pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar2017.txt +87 -87
- pydra_core/data/statistics/Zeewaterstand/Den Oever/CondPovDenOeverBuiten_12u_zichtjaar2017_metOnzHeid.txt +87 -87
- pydra_core/data/statistics/Zeewaterstand/Den Oever/OvkansZee_Den Oever.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar1985_2017.txt +71 -71
- pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar1985_2017_metOnzHeid.txt +71 -71
- pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar2017.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/Hansweert/CondPovHansweert_12u_zichtjaar2017_metOnzHeid.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/Hansweert/OvkansZee_Hansweert.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar1985_2017.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar1985_2017_metOnzHeid.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar2017.txt +84 -84
- pydra_core/data/statistics/Zeewaterstand/Harlingen/CondPovHarlingen_12u_zichtjaar2017_metOnzHeid.txt +84 -84
- pydra_core/data/statistics/Zeewaterstand/Harlingen/OvkansZee_Harlingen.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar1985_2017.txt +84 -84
- pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar1985_2017_metOnzHeid.txt +84 -84
- pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar2017.txt +83 -83
- pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/CondPovHoekvanHolland_12u_zichtjaar2017_metOnzHeid.txt +83 -83
- pydra_core/data/statistics/Zeewaterstand/Hoek van Holland/OvkansZee_Hoek van Holland.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar1985_2017.txt +86 -86
- pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar1985_2017_metOnzHeid.txt +86 -86
- pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar2017.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/Huibertgat/CondPovHuibertgat_12u_zichtjaar2017_metOnzHeid.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/Huibertgat/OvkansZee_Huibertgat.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar1985_2017.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar1985_2017_metOnzHeid.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar2017.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/IJmuiden/CondPovIJmuiden_12u_zichtjaar2017_metOnzHeid.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/IJmuiden/OvkansZee_IJmuiden.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar1985_2017.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar1985_2017_metOnzHeid.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar2017.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/CondPovIJmuiden-Additional_12u_zichtjaar2017_metOnzHeid.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/IJmuiden virtueel/OvkansZee_IJmuiden_virtueel.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar1985_2017.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar1985_2017_metOnzHeid.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar2017.txt +84 -84
- pydra_core/data/statistics/Zeewaterstand/Lauwersoog/CondPovLauwersoog_12u_zichtjaar2017_metOnzHeid.txt +84 -84
- pydra_core/data/statistics/Zeewaterstand/Lauwersoog/OvkansZee_Lauwersoog.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar1985_2011.txt +88 -88
- pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar1985_2017.txt +88 -88
- pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar1985_2017_metOnzheid.txt +92 -92
- pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar2017.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/Maasmond/CondPovMaasmond_12u_zichtjaar2017_metOnzheid.txt +85 -85
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar1985_2017.txt +79 -79
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar1985_2017_metOnzHeid.txt +79 -79
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar2017.txt +79 -79
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_12u_zichtjaar2017_metOnzHeid.txt +79 -79
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_16sectoren_12u_2023.txt +74 -74
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/CondPovOS11_16sectoren_12u_2023_metOnzHeid.txt +73 -73
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/OvkansZee_OS11.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/Oosterschelde/OvkansZeewaterstand_OS.txt +71 -71
- pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar1985_2017.txt +74 -74
- pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar1985_2017_metOnzHeid.txt +74 -74
- pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar2017.txt +74 -74
- pydra_core/data/statistics/Zeewaterstand/Vlissingen/CondPovVlissingen_12u_zichtjaar2017_metOnzHeid.txt +74 -74
- pydra_core/data/statistics/Zeewaterstand/Vlissingen/OvkansZee_Vlissingen.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar1985_2017.txt +74 -74
- pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar1985_2017_metOnzHeid.txt +74 -74
- pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar2017.txt +74 -74
- pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/CondPovVlissingen-Additional_12u_zichtjaar2017_metOnzHeid.txt +74 -74
- pydra_core/data/statistics/Zeewaterstand/Vlissingen virtueel/OvkansZee_Vlissingen_virtueel.txt +70 -70
- pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar1985_2017.txt +87 -87
- pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar1985_2017_metOnzHeid.txt +87 -87
- pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar2017.txt +86 -86
- pydra_core/data/statistics/Zeewaterstand/West-Terschelling/CondPovWestTerschelling_12u_zichtjaar2017_metOnzHeid.txt +86 -86
- pydra_core/data/statistics/Zeewaterstand/West-Terschelling/OvkansZee_West-Terschelling.txt +70 -70
- pydra_core/hrdatabase/hrdatabase.py +177 -177
- pydra_core/io/database_hr.py +598 -598
- pydra_core/io/database_settings.py +183 -183
- pydra_core/io/file_hydranl.py +92 -92
- pydra_core/location/location.py +115 -115
- pydra_core/location/model/base_model.py +270 -270
- pydra_core/location/model/loading/loading.py +368 -368
- pydra_core/location/model/loading/loading_factory.py +89 -89
- pydra_core/location/model/loading/loading_model/loading_model.py +324 -324
- pydra_core/location/model/loading/other_systems/loading_wave_overtopping.py +122 -122
- pydra_core/location/model/loading/water_systems/loading_coast.py +54 -54
- pydra_core/location/model/loading/water_systems/loading_eastern_scheldt.py +169 -169
- pydra_core/location/model/loading/water_systems/loading_ijssel_vechtdelta.py +55 -55
- pydra_core/location/model/loading/water_systems/loading_lake.py +55 -55
- pydra_core/location/model/loading/water_systems/loading_lower_rivier.py +68 -68
- pydra_core/location/model/loading/water_systems/loading_upper_river.py +55 -55
- pydra_core/location/model/statistics/other_systems/statistics_wave_overtopping.py +72 -72
- pydra_core/location/model/statistics/statistics.py +171 -171
- pydra_core/location/model/statistics/statistics_factory.py +89 -89
- pydra_core/location/model/statistics/stochastics/barrier/barrier.py +43 -43
- pydra_core/location/model/statistics/stochastics/barrier/barrier_easternscheldt.py +147 -147
- pydra_core/location/model/statistics/stochastics/barrier/barrier_europoort.py +209 -209
- pydra_core/location/model/statistics/stochastics/barrier/barrier_ramspol.py +41 -41
- pydra_core/location/model/statistics/stochastics/barrier/no_barrier.py +21 -21
- pydra_core/location/model/statistics/stochastics/discharge.py +108 -108
- pydra_core/location/model/statistics/stochastics/discrete_probability.py +55 -55
- pydra_core/location/model/statistics/stochastics/lake_level.py +158 -158
- pydra_core/location/model/statistics/stochastics/model_uncertainty.py +358 -358
- pydra_core/location/model/statistics/stochastics/sea_level/sea_level.py +53 -53
- pydra_core/location/model/statistics/stochastics/sea_level/sea_level_lower_river.py +93 -93
- pydra_core/location/model/statistics/stochastics/sea_level/sea_level_point.py +65 -65
- pydra_core/location/model/statistics/stochastics/sea_level/sea_level_triangular.py +158 -158
- pydra_core/location/model/statistics/stochastics/sigma_function.py +24 -24
- pydra_core/location/model/statistics/stochastics/wave_shape.py +624 -624
- pydra_core/location/model/statistics/stochastics/wind_speed.py +196 -196
- pydra_core/location/model/statistics/water_systems/statistics_coast.py +153 -153
- pydra_core/location/model/statistics/water_systems/statistics_eastern_scheldt.py +177 -177
- pydra_core/location/model/statistics/water_systems/statistics_ijssel_vechtdelta.py +229 -229
- pydra_core/location/model/statistics/water_systems/statistics_lake.py +86 -86
- pydra_core/location/model/statistics/water_systems/statistics_lower_river.py +321 -321
- pydra_core/location/model/statistics/water_systems/statistics_upper_river.py +86 -86
- pydra_core/location/model/water_system.py +249 -249
- pydra_core/location/model/wave_overtopping.py +25 -25
- pydra_core/location/profile/foreland.py +246 -246
- pydra_core/location/profile/lib/CombOverloopOverslag64.dll +0 -0
- pydra_core/location/profile/lib/DynamicLib-DaF.dll +0 -0
- pydra_core/location/profile/lib/README.MD +10 -10
- pydra_core/location/profile/lib/dllDikesOvertopping.dll +0 -0
- pydra_core/location/profile/lib/feedbackDLL.dll +0 -0
- pydra_core/location/profile/profile.py +971 -971
- pydra_core/location/profile/profile_loading.py +473 -473
- pydra_core/location/settings/settings.py +387 -387
- {pydra_core-0.0.1.dist-info → pydra_core-0.0.3.dist-info}/METADATA +25 -5
- pydra_core-0.0.3.dist-info/RECORD +393 -0
- pydra_core-0.0.1.dist-info/RECORD +0 -389
- {pydra_core-0.0.1.dist-info → pydra_core-0.0.3.dist-info}/WHEEL +0 -0
@@ -1,249 +1,249 @@
|
|
1
|
-
import numpy as np
|
2
|
-
|
3
|
-
from .base_model import BaseModel
|
4
|
-
from .loading.loading_factory import LoadingFactory
|
5
|
-
from .statistics.statistics_factory import StatisticsFactory
|
6
|
-
from ..settings.settings import Settings
|
7
|
-
from ...common.probability import ProbabilityFunctions
|
8
|
-
|
9
|
-
|
10
|
-
class WaterSystem(BaseModel):
|
11
|
-
def __init__(self, settings: Settings):
|
12
|
-
"""
|
13
|
-
Water System model
|
14
|
-
"""
|
15
|
-
# Inherit
|
16
|
-
super().__init__(settings)
|
17
|
-
|
18
|
-
# Statistics
|
19
|
-
self.statistics = StatisticsFactory.get_statistics(self.settings)
|
20
|
-
|
21
|
-
# Loading
|
22
|
-
self.loading = LoadingFactory.get_loading(self.settings)
|
23
|
-
|
24
|
-
def process_slow_stochastics(
|
25
|
-
self, exceedance_probability: np.ndarray, axis: int = None
|
26
|
-
) -> np.ndarray:
|
27
|
-
"""
|
28
|
-
Convert probabilities given a discharge to probabilities per duration.
|
29
|
-
|
30
|
-
This function converts probabilities represented by a discharge to
|
31
|
-
probabilities per specified duration based on the given stochastic
|
32
|
-
variable ('stochastic'). The probabilities are computed for each
|
33
|
-
duration (basisduur).
|
34
|
-
|
35
|
-
Parameters
|
36
|
-
----------
|
37
|
-
exceedance_probability : np.ndarray
|
38
|
-
Numpy array with the discharge on the first dimension.
|
39
|
-
|
40
|
-
Returns
|
41
|
-
-------
|
42
|
-
np.ndarray
|
43
|
-
Probabilities per specified duration (basisduur).
|
44
|
-
"""
|
45
|
-
# Input stochastics
|
46
|
-
statistics = self.get_statistics()
|
47
|
-
slow_stochastics = list(statistics.stochastics_slow.keys())
|
48
|
-
_axis = range(1, len(slow_stochastics) + 1) if axis is None else axis
|
49
|
-
|
50
|
-
# Put slow variable on first axis if not already
|
51
|
-
newpos = range(len(np.atleast_1d(_axis)))
|
52
|
-
if newpos != _axis:
|
53
|
-
ep_x = np.moveaxis(exceedance_probability, _axis, newpos)
|
54
|
-
else:
|
55
|
-
ep_x = exceedance_probability
|
56
|
-
|
57
|
-
# Calculate exceedance frequencies per peak discharge / lake level
|
58
|
-
ep_ks = self.process_wave_shape(ep_x)
|
59
|
-
|
60
|
-
# Steps in probability density
|
61
|
-
if len(slow_stochastics) == 1 and slow_stochastics[0] == "q":
|
62
|
-
p_peak = ProbabilityFunctions.probability_density(
|
63
|
-
statistics.discharge.qpeak, statistics.discharge.epqpeak
|
64
|
-
).probability
|
65
|
-
|
66
|
-
elif len(slow_stochastics) == 1 and slow_stochastics[0] == "a":
|
67
|
-
p_peak = ProbabilityFunctions.probability_density(
|
68
|
-
statistics.lake_level.apeak, statistics.lake_level.epapeak
|
69
|
-
).probability
|
70
|
-
|
71
|
-
elif len(slow_stochastics) == 2 and slow_stochastics == ["a", "q"]:
|
72
|
-
dq = ProbabilityFunctions.probability_density(
|
73
|
-
statistics.discharge.qblok, statistics.discharge.epqpeak
|
74
|
-
).delta
|
75
|
-
dm = ProbabilityFunctions.probability_density(
|
76
|
-
statistics.lake_level.ablok, statistics.lake_level.epapeak
|
77
|
-
).delta
|
78
|
-
p_peak = statistics.density_aq_peak * dm[:, None] * dq[None, :]
|
79
|
-
|
80
|
-
elif len(slow_stochastics) == 2 and slow_stochastics == ["q", "a"]:
|
81
|
-
dq = ProbabilityFunctions.probability_density(
|
82
|
-
statistics.discharge.qblok, statistics.discharge.epqpeak
|
83
|
-
).delta
|
84
|
-
da = ProbabilityFunctions.probability_density(
|
85
|
-
statistics.lake_level.ablok, statistics.lake_level.epapeak
|
86
|
-
).delta
|
87
|
-
p_peak = statistics.density_aq_peak.T * dq[:, None] * da[None, :]
|
88
|
-
|
89
|
-
# Reshape steps when multiplying to trapezoidal probs
|
90
|
-
shp = p_peak.shape + (1,) * (ep_ks.ndim - p_peak.ndim)
|
91
|
-
|
92
|
-
# Trapezoidal probability
|
93
|
-
p_trapezoidal = (p_peak.reshape(shp) * ep_ks).sum(
|
94
|
-
axis=tuple(range(p_peak.ndim))
|
95
|
-
)
|
96
|
-
|
97
|
-
return p_trapezoidal
|
98
|
-
|
99
|
-
def process_wave_shape(self, exceedance_probability: np.ndarray) -> np.ndarray:
|
100
|
-
"""
|
101
|
-
Process the discharge waveshapes into the exceedance probabilities
|
102
|
-
conditioned on the discharge level. The discharge level is represented
|
103
|
-
on the first axis, which has dimensions equal to the number of
|
104
|
-
discharge steps in the statistics.
|
105
|
-
|
106
|
-
Parameters
|
107
|
-
----------
|
108
|
-
exceedance_probability : np.ndarray
|
109
|
-
Numpy array containing the exceedance probabilities with the
|
110
|
-
discharge on the first dimension.
|
111
|
-
|
112
|
-
Returns
|
113
|
-
-------
|
114
|
-
blokondkans : np.ndarray
|
115
|
-
Exceedance probabilities of the discharge per duration (basisduur).
|
116
|
-
"""
|
117
|
-
# Input variables
|
118
|
-
statistics = self.get_statistics()
|
119
|
-
slow_stochastics = list(statistics.stochastics_slow.keys())
|
120
|
-
fp = exceedance_probability
|
121
|
-
|
122
|
-
# Result variables
|
123
|
-
intidxs = []
|
124
|
-
xs = []
|
125
|
-
xps = []
|
126
|
-
|
127
|
-
# Verzamel de interpolatieindices voor alle trage stochasten
|
128
|
-
for i, _stochastic in enumerate(slow_stochastics):
|
129
|
-
if _stochastic == "q":
|
130
|
-
xp = statistics.discharge.qpeak
|
131
|
-
x = statistics.discharge.get_wave_shape().get_wave_shapes()
|
132
|
-
tijden = statistics.discharge.get_wave_shape().time
|
133
|
-
elif _stochastic == "a":
|
134
|
-
xp = statistics.lake_level.apeak
|
135
|
-
x = statistics.lake_level.get_wave_shape().get_wave_shapes()
|
136
|
-
tijden = statistics.lake_level.get_wave_shape().time
|
137
|
-
else:
|
138
|
-
raise ValueError(
|
139
|
-
f"Eerste trage stochast is niet 'q' of 'm'/'a' (gegeven eerste trage stochast: {_stochastic})"
|
140
|
-
)
|
141
|
-
|
142
|
-
# Check if the length matches
|
143
|
-
if exceedance_probability.shape[i] != x.shape[1]:
|
144
|
-
raise ValueError(
|
145
|
-
f"The number of elements in the stochast axis ({i}) should be {x.shape[1]} ({x.shape}), but is {exceedance_probability.shape[i]} ({exceedance_probability.shape})."
|
146
|
-
)
|
147
|
-
|
148
|
-
# Bepaal de interpolatie-indices, de xp-punten rondom x waartussen wordt geïnterpoleerd
|
149
|
-
intidx = np.array(
|
150
|
-
[(xp[None, :] <= ix[:, None]).sum(1) - 1 for ix in x], dtype=np.uint16
|
151
|
-
)
|
152
|
-
intidx = np.minimum(np.maximum(intidx, 0), len(xp) - 2)
|
153
|
-
|
154
|
-
intidxs.append(intidx)
|
155
|
-
xs.append(x)
|
156
|
-
xps.append(xp)
|
157
|
-
|
158
|
-
# Bepaal de tijdsduur van het eerste en het laatste blokje uit de golfvorm
|
159
|
-
block_duration = tijden[1] - tijden[0]
|
160
|
-
eindduur = tijden[-1] - tijden[-2]
|
161
|
-
|
162
|
-
# Alloceer arrays. Het is sneller om in de loop de arrays over te schrijven dan om ze opnieuw aan te maken
|
163
|
-
ondkanstot = np.ones(exceedance_probability.shape)
|
164
|
-
blokondkans = np.zeros(exceedance_probability.shape)
|
165
|
-
ovkansen = np.zeros(exceedance_probability.shape)
|
166
|
-
|
167
|
-
nt = len(tijden)
|
168
|
-
|
169
|
-
for it in range(nt - 1):
|
170
|
-
# Interpoleer de overschrijdingskansen
|
171
|
-
if len(slow_stochastics) == 1:
|
172
|
-
# Bepaal de index van de interpolatiewaarden (afvoeren / meerpeil) voor de betreffende tijdstap
|
173
|
-
iix = intidxs[0][it]
|
174
|
-
|
175
|
-
# Bepaal de fracties van de fp waarden obv xp, die moet worden ingevuld voor f (obv x)
|
176
|
-
fracs = (x[it] - xp[iix]) / (xp[iix + 1] - xp[iix])
|
177
|
-
|
178
|
-
# Bepaal de vorm van de output array, dit is (Ntraag, Ntijd, Nderest1, Nderest2, ...)
|
179
|
-
fracshp = fracs.shape + (1,) * (fp.ndim - 1)
|
180
|
-
|
181
|
-
# Interpoleer alle overschrijdingskansen in één keer door de fracties met de resultaatwaarden (fp) te vermenigvuldigen
|
182
|
-
ovkansen[:] = (1 - fracs.reshape(fracshp)) * fp[iix] + fp[
|
183
|
-
iix + 1
|
184
|
-
] * fracs.reshape(fracshp)
|
185
|
-
|
186
|
-
elif len(slow_stochastics) == 2:
|
187
|
-
iix1 = intidxs[0][it]
|
188
|
-
iix2 = intidxs[1][it]
|
189
|
-
|
190
|
-
# Bepaal de fracties van de fp waarden obv xp, die moet worden ingevuld voor f (obv x)
|
191
|
-
fracs1 = (xs[0][it] - xps[0][iix1]) / (xps[0][iix1 + 1] - xps[0][iix1])
|
192
|
-
fracs2 = (xs[1][it] - xps[1][iix2]) / (xps[1][iix2 + 1] - xps[1][iix2])
|
193
|
-
|
194
|
-
# Bepaal de vorm van de output array, dit is (Ntraag, Ntijd, Nderest1, Nderest2, ...)
|
195
|
-
frac2shp = fracs2.shape + (1,) * (fp.ndim - 2)
|
196
|
-
|
197
|
-
# 2D interpolatie
|
198
|
-
# Merk op dat dit via een loop gaat. Dit is sneller dan in enkele array-operaties, omdat
|
199
|
-
# de arrays zo groot zijn dat fancy-indexing traag wordt
|
200
|
-
for i, (ix, ixp1) in enumerate(zip(iix1, iix1 + 1)):
|
201
|
-
# Interpoleer eerst over de eerste stochast
|
202
|
-
fy1 = (1 - fracs1[i]) * fp[ix][iix2] + fp[ixp1][iix2] * fracs1[i]
|
203
|
-
fy2 = (1 - fracs1[i]) * fp[ix][iix2 + 1] + fp[ixp1][
|
204
|
-
iix2 + 1
|
205
|
-
] * fracs1[i]
|
206
|
-
|
207
|
-
# Interpoleer de tweede stochast
|
208
|
-
ovkansen[i] = fy1 + (fy2 - fy1) * fracs2.reshape(frac2shp)
|
209
|
-
|
210
|
-
# fy1 = (1 - fracs1.reshape(frac1shp)) * fp[np.ix_(iix1, iix2 )] + fp[np.ix_(iix1+1, iix2 )] * fracs1.reshape(frac1shp)
|
211
|
-
# fy2 = (1 - fracs1.reshape(frac1shp)) * fp[np.ix_(iix1, iix2+1)] + fp[np.ix_(iix1+1, iix2+1)] * fracs1.reshape(frac1shp)
|
212
|
-
|
213
|
-
# Door het interpoleren kunnen overschrijdingskansen gecreëerd worden, die een fractie groter zijn dan 1.0
|
214
|
-
ovkansen[:] = np.minimum(ovkansen, 1.0)
|
215
|
-
|
216
|
-
# De berekende overschrijdingskansen gelden voor een blokje met de duur, die gelijk is
|
217
|
-
# aan de door de gebruiker gekozen block_duration van de wind. Voor het discretiseren van de
|
218
|
-
# golfvormen heeft de gebuiker een andere duur opgegeven. De bovenstaande overschrijdings-
|
219
|
-
# kansen worden hiervoor gecorrigeerd
|
220
|
-
if block_duration != statistics.wind_speed.block_duration_wind:
|
221
|
-
ovkansen[:] = 1.0 - (1.0 - ovkansen) ** (
|
222
|
-
block_duration / statistics.wind_speed.block_duration_wind
|
223
|
-
)
|
224
|
-
|
225
|
-
# Bereken de onderschrijdingskans voor de basisduur gebruikmakend van de overschrijdingskansen per blokje
|
226
|
-
# Factoren zijn 1
|
227
|
-
blokondkans[:] = 1.0 - ovkansen
|
228
|
-
|
229
|
-
# Eerste blok is half
|
230
|
-
if it == 0:
|
231
|
-
blokondkans[:] **= 0.5
|
232
|
-
|
233
|
-
# Neem het voorlaatste en laatste blok samen
|
234
|
-
if it == (nt - 1):
|
235
|
-
# Als de eindduur kleiner is dan een halve block_duration, dan is de factor kleiner dan 1
|
236
|
-
if eindduur < (0.5 * block_duration):
|
237
|
-
factor = ((0.5 * block_duration) + eindduur) / block_duration
|
238
|
-
blokondkans[:] **= factor
|
239
|
-
|
240
|
-
# Als de eindduur groter of even lang is als een halve block_duration
|
241
|
-
else:
|
242
|
-
# Vermenig de block_duration ook nog met het laatste blokje
|
243
|
-
factor = (eindduur - (block_duration / 2.0)) / block_duration
|
244
|
-
blokondkans[:] *= (1.0 - ovkansen[:, :]) ** factor
|
245
|
-
|
246
|
-
ondkanstot *= blokondkans
|
247
|
-
|
248
|
-
# Return
|
249
|
-
return 1 - ondkanstot
|
1
|
+
import numpy as np
|
2
|
+
|
3
|
+
from .base_model import BaseModel
|
4
|
+
from .loading.loading_factory import LoadingFactory
|
5
|
+
from .statistics.statistics_factory import StatisticsFactory
|
6
|
+
from ..settings.settings import Settings
|
7
|
+
from ...common.probability import ProbabilityFunctions
|
8
|
+
|
9
|
+
|
10
|
+
class WaterSystem(BaseModel):
|
11
|
+
def __init__(self, settings: Settings):
|
12
|
+
"""
|
13
|
+
Water System model
|
14
|
+
"""
|
15
|
+
# Inherit
|
16
|
+
super().__init__(settings)
|
17
|
+
|
18
|
+
# Statistics
|
19
|
+
self.statistics = StatisticsFactory.get_statistics(self.settings)
|
20
|
+
|
21
|
+
# Loading
|
22
|
+
self.loading = LoadingFactory.get_loading(self.settings)
|
23
|
+
|
24
|
+
def process_slow_stochastics(
|
25
|
+
self, exceedance_probability: np.ndarray, axis: int = None
|
26
|
+
) -> np.ndarray:
|
27
|
+
"""
|
28
|
+
Convert probabilities given a discharge to probabilities per duration.
|
29
|
+
|
30
|
+
This function converts probabilities represented by a discharge to
|
31
|
+
probabilities per specified duration based on the given stochastic
|
32
|
+
variable ('stochastic'). The probabilities are computed for each
|
33
|
+
duration (basisduur).
|
34
|
+
|
35
|
+
Parameters
|
36
|
+
----------
|
37
|
+
exceedance_probability : np.ndarray
|
38
|
+
Numpy array with the discharge on the first dimension.
|
39
|
+
|
40
|
+
Returns
|
41
|
+
-------
|
42
|
+
np.ndarray
|
43
|
+
Probabilities per specified duration (basisduur).
|
44
|
+
"""
|
45
|
+
# Input stochastics
|
46
|
+
statistics = self.get_statistics()
|
47
|
+
slow_stochastics = list(statistics.stochastics_slow.keys())
|
48
|
+
_axis = range(1, len(slow_stochastics) + 1) if axis is None else axis
|
49
|
+
|
50
|
+
# Put slow variable on first axis if not already
|
51
|
+
newpos = range(len(np.atleast_1d(_axis)))
|
52
|
+
if newpos != _axis:
|
53
|
+
ep_x = np.moveaxis(exceedance_probability, _axis, newpos)
|
54
|
+
else:
|
55
|
+
ep_x = exceedance_probability
|
56
|
+
|
57
|
+
# Calculate exceedance frequencies per peak discharge / lake level
|
58
|
+
ep_ks = self.process_wave_shape(ep_x)
|
59
|
+
|
60
|
+
# Steps in probability density
|
61
|
+
if len(slow_stochastics) == 1 and slow_stochastics[0] == "q":
|
62
|
+
p_peak = ProbabilityFunctions.probability_density(
|
63
|
+
statistics.discharge.qpeak, statistics.discharge.epqpeak
|
64
|
+
).probability
|
65
|
+
|
66
|
+
elif len(slow_stochastics) == 1 and slow_stochastics[0] == "a":
|
67
|
+
p_peak = ProbabilityFunctions.probability_density(
|
68
|
+
statistics.lake_level.apeak, statistics.lake_level.epapeak
|
69
|
+
).probability
|
70
|
+
|
71
|
+
elif len(slow_stochastics) == 2 and slow_stochastics == ["a", "q"]:
|
72
|
+
dq = ProbabilityFunctions.probability_density(
|
73
|
+
statistics.discharge.qblok, statistics.discharge.epqpeak
|
74
|
+
).delta
|
75
|
+
dm = ProbabilityFunctions.probability_density(
|
76
|
+
statistics.lake_level.ablok, statistics.lake_level.epapeak
|
77
|
+
).delta
|
78
|
+
p_peak = statistics.density_aq_peak * dm[:, None] * dq[None, :]
|
79
|
+
|
80
|
+
elif len(slow_stochastics) == 2 and slow_stochastics == ["q", "a"]:
|
81
|
+
dq = ProbabilityFunctions.probability_density(
|
82
|
+
statistics.discharge.qblok, statistics.discharge.epqpeak
|
83
|
+
).delta
|
84
|
+
da = ProbabilityFunctions.probability_density(
|
85
|
+
statistics.lake_level.ablok, statistics.lake_level.epapeak
|
86
|
+
).delta
|
87
|
+
p_peak = statistics.density_aq_peak.T * dq[:, None] * da[None, :]
|
88
|
+
|
89
|
+
# Reshape steps when multiplying to trapezoidal probs
|
90
|
+
shp = p_peak.shape + (1,) * (ep_ks.ndim - p_peak.ndim)
|
91
|
+
|
92
|
+
# Trapezoidal probability
|
93
|
+
p_trapezoidal = (p_peak.reshape(shp) * ep_ks).sum(
|
94
|
+
axis=tuple(range(p_peak.ndim))
|
95
|
+
)
|
96
|
+
|
97
|
+
return p_trapezoidal
|
98
|
+
|
99
|
+
def process_wave_shape(self, exceedance_probability: np.ndarray) -> np.ndarray:
|
100
|
+
"""
|
101
|
+
Process the discharge waveshapes into the exceedance probabilities
|
102
|
+
conditioned on the discharge level. The discharge level is represented
|
103
|
+
on the first axis, which has dimensions equal to the number of
|
104
|
+
discharge steps in the statistics.
|
105
|
+
|
106
|
+
Parameters
|
107
|
+
----------
|
108
|
+
exceedance_probability : np.ndarray
|
109
|
+
Numpy array containing the exceedance probabilities with the
|
110
|
+
discharge on the first dimension.
|
111
|
+
|
112
|
+
Returns
|
113
|
+
-------
|
114
|
+
blokondkans : np.ndarray
|
115
|
+
Exceedance probabilities of the discharge per duration (basisduur).
|
116
|
+
"""
|
117
|
+
# Input variables
|
118
|
+
statistics = self.get_statistics()
|
119
|
+
slow_stochastics = list(statistics.stochastics_slow.keys())
|
120
|
+
fp = exceedance_probability
|
121
|
+
|
122
|
+
# Result variables
|
123
|
+
intidxs = []
|
124
|
+
xs = []
|
125
|
+
xps = []
|
126
|
+
|
127
|
+
# Verzamel de interpolatieindices voor alle trage stochasten
|
128
|
+
for i, _stochastic in enumerate(slow_stochastics):
|
129
|
+
if _stochastic == "q":
|
130
|
+
xp = statistics.discharge.qpeak
|
131
|
+
x = statistics.discharge.get_wave_shape().get_wave_shapes()
|
132
|
+
tijden = statistics.discharge.get_wave_shape().time
|
133
|
+
elif _stochastic == "a":
|
134
|
+
xp = statistics.lake_level.apeak
|
135
|
+
x = statistics.lake_level.get_wave_shape().get_wave_shapes()
|
136
|
+
tijden = statistics.lake_level.get_wave_shape().time
|
137
|
+
else:
|
138
|
+
raise ValueError(
|
139
|
+
f"Eerste trage stochast is niet 'q' of 'm'/'a' (gegeven eerste trage stochast: {_stochastic})"
|
140
|
+
)
|
141
|
+
|
142
|
+
# Check if the length matches
|
143
|
+
if exceedance_probability.shape[i] != x.shape[1]:
|
144
|
+
raise ValueError(
|
145
|
+
f"The number of elements in the stochast axis ({i}) should be {x.shape[1]} ({x.shape}), but is {exceedance_probability.shape[i]} ({exceedance_probability.shape})."
|
146
|
+
)
|
147
|
+
|
148
|
+
# Bepaal de interpolatie-indices, de xp-punten rondom x waartussen wordt geïnterpoleerd
|
149
|
+
intidx = np.array(
|
150
|
+
[(xp[None, :] <= ix[:, None]).sum(1) - 1 for ix in x], dtype=np.uint16
|
151
|
+
)
|
152
|
+
intidx = np.minimum(np.maximum(intidx, 0), len(xp) - 2)
|
153
|
+
|
154
|
+
intidxs.append(intidx)
|
155
|
+
xs.append(x)
|
156
|
+
xps.append(xp)
|
157
|
+
|
158
|
+
# Bepaal de tijdsduur van het eerste en het laatste blokje uit de golfvorm
|
159
|
+
block_duration = tijden[1] - tijden[0]
|
160
|
+
eindduur = tijden[-1] - tijden[-2]
|
161
|
+
|
162
|
+
# Alloceer arrays. Het is sneller om in de loop de arrays over te schrijven dan om ze opnieuw aan te maken
|
163
|
+
ondkanstot = np.ones(exceedance_probability.shape)
|
164
|
+
blokondkans = np.zeros(exceedance_probability.shape)
|
165
|
+
ovkansen = np.zeros(exceedance_probability.shape)
|
166
|
+
|
167
|
+
nt = len(tijden)
|
168
|
+
|
169
|
+
for it in range(nt - 1):
|
170
|
+
# Interpoleer de overschrijdingskansen
|
171
|
+
if len(slow_stochastics) == 1:
|
172
|
+
# Bepaal de index van de interpolatiewaarden (afvoeren / meerpeil) voor de betreffende tijdstap
|
173
|
+
iix = intidxs[0][it]
|
174
|
+
|
175
|
+
# Bepaal de fracties van de fp waarden obv xp, die moet worden ingevuld voor f (obv x)
|
176
|
+
fracs = (x[it] - xp[iix]) / (xp[iix + 1] - xp[iix])
|
177
|
+
|
178
|
+
# Bepaal de vorm van de output array, dit is (Ntraag, Ntijd, Nderest1, Nderest2, ...)
|
179
|
+
fracshp = fracs.shape + (1,) * (fp.ndim - 1)
|
180
|
+
|
181
|
+
# Interpoleer alle overschrijdingskansen in één keer door de fracties met de resultaatwaarden (fp) te vermenigvuldigen
|
182
|
+
ovkansen[:] = (1 - fracs.reshape(fracshp)) * fp[iix] + fp[
|
183
|
+
iix + 1
|
184
|
+
] * fracs.reshape(fracshp)
|
185
|
+
|
186
|
+
elif len(slow_stochastics) == 2:
|
187
|
+
iix1 = intidxs[0][it]
|
188
|
+
iix2 = intidxs[1][it]
|
189
|
+
|
190
|
+
# Bepaal de fracties van de fp waarden obv xp, die moet worden ingevuld voor f (obv x)
|
191
|
+
fracs1 = (xs[0][it] - xps[0][iix1]) / (xps[0][iix1 + 1] - xps[0][iix1])
|
192
|
+
fracs2 = (xs[1][it] - xps[1][iix2]) / (xps[1][iix2 + 1] - xps[1][iix2])
|
193
|
+
|
194
|
+
# Bepaal de vorm van de output array, dit is (Ntraag, Ntijd, Nderest1, Nderest2, ...)
|
195
|
+
frac2shp = fracs2.shape + (1,) * (fp.ndim - 2)
|
196
|
+
|
197
|
+
# 2D interpolatie
|
198
|
+
# Merk op dat dit via een loop gaat. Dit is sneller dan in enkele array-operaties, omdat
|
199
|
+
# de arrays zo groot zijn dat fancy-indexing traag wordt
|
200
|
+
for i, (ix, ixp1) in enumerate(zip(iix1, iix1 + 1)):
|
201
|
+
# Interpoleer eerst over de eerste stochast
|
202
|
+
fy1 = (1 - fracs1[i]) * fp[ix][iix2] + fp[ixp1][iix2] * fracs1[i]
|
203
|
+
fy2 = (1 - fracs1[i]) * fp[ix][iix2 + 1] + fp[ixp1][
|
204
|
+
iix2 + 1
|
205
|
+
] * fracs1[i]
|
206
|
+
|
207
|
+
# Interpoleer de tweede stochast
|
208
|
+
ovkansen[i] = fy1 + (fy2 - fy1) * fracs2.reshape(frac2shp)
|
209
|
+
|
210
|
+
# fy1 = (1 - fracs1.reshape(frac1shp)) * fp[np.ix_(iix1, iix2 )] + fp[np.ix_(iix1+1, iix2 )] * fracs1.reshape(frac1shp)
|
211
|
+
# fy2 = (1 - fracs1.reshape(frac1shp)) * fp[np.ix_(iix1, iix2+1)] + fp[np.ix_(iix1+1, iix2+1)] * fracs1.reshape(frac1shp)
|
212
|
+
|
213
|
+
# Door het interpoleren kunnen overschrijdingskansen gecreëerd worden, die een fractie groter zijn dan 1.0
|
214
|
+
ovkansen[:] = np.minimum(ovkansen, 1.0)
|
215
|
+
|
216
|
+
# De berekende overschrijdingskansen gelden voor een blokje met de duur, die gelijk is
|
217
|
+
# aan de door de gebruiker gekozen block_duration van de wind. Voor het discretiseren van de
|
218
|
+
# golfvormen heeft de gebuiker een andere duur opgegeven. De bovenstaande overschrijdings-
|
219
|
+
# kansen worden hiervoor gecorrigeerd
|
220
|
+
if block_duration != statistics.wind_speed.block_duration_wind:
|
221
|
+
ovkansen[:] = 1.0 - (1.0 - ovkansen) ** (
|
222
|
+
block_duration / statistics.wind_speed.block_duration_wind
|
223
|
+
)
|
224
|
+
|
225
|
+
# Bereken de onderschrijdingskans voor de basisduur gebruikmakend van de overschrijdingskansen per blokje
|
226
|
+
# Factoren zijn 1
|
227
|
+
blokondkans[:] = 1.0 - ovkansen
|
228
|
+
|
229
|
+
# Eerste blok is half
|
230
|
+
if it == 0:
|
231
|
+
blokondkans[:] **= 0.5
|
232
|
+
|
233
|
+
# Neem het voorlaatste en laatste blok samen
|
234
|
+
if it == (nt - 1):
|
235
|
+
# Als de eindduur kleiner is dan een halve block_duration, dan is de factor kleiner dan 1
|
236
|
+
if eindduur < (0.5 * block_duration):
|
237
|
+
factor = ((0.5 * block_duration) + eindduur) / block_duration
|
238
|
+
blokondkans[:] **= factor
|
239
|
+
|
240
|
+
# Als de eindduur groter of even lang is als een halve block_duration
|
241
|
+
else:
|
242
|
+
# Vermenig de block_duration ook nog met het laatste blokje
|
243
|
+
factor = (eindduur - (block_duration / 2.0)) / block_duration
|
244
|
+
blokondkans[:] *= (1.0 - ovkansen[:, :]) ** factor
|
245
|
+
|
246
|
+
ondkanstot *= blokondkans
|
247
|
+
|
248
|
+
# Return
|
249
|
+
return 1 - ondkanstot
|
@@ -1,25 +1,25 @@
|
|
1
|
-
import numpy as np
|
2
|
-
|
3
|
-
from .base_model import BaseModel
|
4
|
-
from .loading.other_systems.loading_wave_overtopping import LoadingWaveOvertopping
|
5
|
-
from .statistics.other_systems.statistics_wave_overtopping import (
|
6
|
-
StatisticsWaveOvertopping,
|
7
|
-
)
|
8
|
-
from ..location import Location
|
9
|
-
|
10
|
-
|
11
|
-
class WaveOvertopping(BaseModel):
|
12
|
-
def __init__(
|
13
|
-
self, location: Location, water_levels: np.ndarray, probability: np.ndarray
|
14
|
-
):
|
15
|
-
"""
|
16
|
-
Wave Overtopping model
|
17
|
-
"""
|
18
|
-
# Inherit
|
19
|
-
super().__init__(location.get_settings())
|
20
|
-
|
21
|
-
# Init statistics
|
22
|
-
self.statistics = StatisticsWaveOvertopping(location, water_levels, probability)
|
23
|
-
|
24
|
-
# Init loading
|
25
|
-
self.loading = LoadingWaveOvertopping(location, water_levels)
|
1
|
+
import numpy as np
|
2
|
+
|
3
|
+
from .base_model import BaseModel
|
4
|
+
from .loading.other_systems.loading_wave_overtopping import LoadingWaveOvertopping
|
5
|
+
from .statistics.other_systems.statistics_wave_overtopping import (
|
6
|
+
StatisticsWaveOvertopping,
|
7
|
+
)
|
8
|
+
from ..location import Location
|
9
|
+
|
10
|
+
|
11
|
+
class WaveOvertopping(BaseModel):
|
12
|
+
def __init__(
|
13
|
+
self, location: Location, water_levels: np.ndarray, probability: np.ndarray
|
14
|
+
):
|
15
|
+
"""
|
16
|
+
Wave Overtopping model
|
17
|
+
"""
|
18
|
+
# Inherit
|
19
|
+
super().__init__(location.get_settings())
|
20
|
+
|
21
|
+
# Init statistics
|
22
|
+
self.statistics = StatisticsWaveOvertopping(location, water_levels, probability)
|
23
|
+
|
24
|
+
# Init loading
|
25
|
+
self.loading = LoadingWaveOvertopping(location, water_levels)
|