HydPy 6.2.dev1__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hydpy/__init__.py +275 -0
- hydpy/aliases.py +2554 -0
- hydpy/auxs/__init__.py +0 -0
- hydpy/auxs/anntools.py +1305 -0
- hydpy/auxs/armatools.py +883 -0
- hydpy/auxs/calibtools.py +3337 -0
- hydpy/auxs/interptools.py +1094 -0
- hydpy/auxs/iuhtools.py +543 -0
- hydpy/auxs/networktools.py +597 -0
- hydpy/auxs/ppolytools.py +809 -0
- hydpy/auxs/quadtools.py +61 -0
- hydpy/auxs/roottools.py +228 -0
- hydpy/auxs/smoothtools.py +273 -0
- hydpy/auxs/statstools.py +2125 -0
- hydpy/auxs/validtools.py +81 -0
- hydpy/conf/HydPyConfigBase.xsd +68637 -0
- hydpy/conf/HydPyConfigBase.xsdt +358 -0
- hydpy/conf/HydPyConfigMultipleRuns.xsd +25 -0
- hydpy/conf/HydPyConfigSingleRun.xsd +24 -0
- hydpy/conf/__init__.py +0 -0
- hydpy/conf/a_coefficients_explicit_lobatto_sequence.npy +0 -0
- hydpy/conf/support_points_for_smoothpar_logistic2.npy +0 -0
- hydpy/config.py +42 -0
- hydpy/core/__init__.py +0 -0
- hydpy/core/aliastools.py +214 -0
- hydpy/core/autodoctools.py +1947 -0
- hydpy/core/auxfiletools.py +1169 -0
- hydpy/core/devicetools.py +3810 -0
- hydpy/core/exceptiontools.py +269 -0
- hydpy/core/filetools.py +1985 -0
- hydpy/core/hydpytools.py +3089 -0
- hydpy/core/importtools.py +1398 -0
- hydpy/core/indextools.py +345 -0
- hydpy/core/itemtools.py +1849 -0
- hydpy/core/masktools.py +460 -0
- hydpy/core/modeltools.py +4868 -0
- hydpy/core/netcdftools.py +2683 -0
- hydpy/core/objecttools.py +2023 -0
- hydpy/core/optiontools.py +1045 -0
- hydpy/core/parametertools.py +4674 -0
- hydpy/core/printtools.py +222 -0
- hydpy/core/propertytools.py +643 -0
- hydpy/core/pubtools.py +254 -0
- hydpy/core/selectiontools.py +1571 -0
- hydpy/core/sequencetools.py +4476 -0
- hydpy/core/seriestools.py +339 -0
- hydpy/core/testtools.py +2483 -0
- hydpy/core/timetools.py +3567 -0
- hydpy/core/typingtools.py +333 -0
- hydpy/core/variabletools.py +2615 -0
- hydpy/cythons/__init__.py +24 -0
- hydpy/cythons/annutils.pxd +33 -0
- hydpy/cythons/annutils.pyi +25 -0
- hydpy/cythons/annutils.pyx +120 -0
- hydpy/cythons/autogen/__init__.py +0 -0
- hydpy/cythons/autogen/annutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/annutils.pxd +42 -0
- hydpy/cythons/autogen/annutils.pyx +129 -0
- hydpy/cythons/autogen/c_arma.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_arma.pxd +179 -0
- hydpy/cythons/autogen/c_arma.pyx +356 -0
- hydpy/cythons/autogen/c_arma_rimorido.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_arma_rimorido.pxd +179 -0
- hydpy/cythons/autogen/c_arma_rimorido.pyx +356 -0
- hydpy/cythons/autogen/c_conv.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_conv.pxd +198 -0
- hydpy/cythons/autogen/c_conv.pyx +491 -0
- hydpy/cythons/autogen/c_conv_idw.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_conv_idw.pxd +124 -0
- hydpy/cythons/autogen/c_conv_idw.pyx +264 -0
- hydpy/cythons/autogen/c_conv_idw_ed.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_conv_idw_ed.pxd +197 -0
- hydpy/cythons/autogen/c_conv_idw_ed.pyx +481 -0
- hydpy/cythons/autogen/c_conv_nn.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_conv_nn.pxd +120 -0
- hydpy/cythons/autogen/c_conv_nn.pyx +224 -0
- hydpy/cythons/autogen/c_dam.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam.pxd +805 -0
- hydpy/cythons/autogen/c_dam.pyx +1477 -0
- hydpy/cythons/autogen/c_dam_llake.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_llake.pxd +364 -0
- hydpy/cythons/autogen/c_dam_llake.pyx +705 -0
- hydpy/cythons/autogen/c_dam_lreservoir.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_lreservoir.pxd +365 -0
- hydpy/cythons/autogen/c_dam_lreservoir.pyx +708 -0
- hydpy/cythons/autogen/c_dam_lretention.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_lretention.pxd +340 -0
- hydpy/cythons/autogen/c_dam_lretention.pyx +625 -0
- hydpy/cythons/autogen/c_dam_pump.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_pump.pxd +402 -0
- hydpy/cythons/autogen/c_dam_pump.pyx +724 -0
- hydpy/cythons/autogen/c_dam_pump_sluice.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_pump_sluice.pxd +452 -0
- hydpy/cythons/autogen/c_dam_pump_sluice.pyx +829 -0
- hydpy/cythons/autogen/c_dam_sluice.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_sluice.pxd +404 -0
- hydpy/cythons/autogen/c_dam_sluice.pyx +726 -0
- hydpy/cythons/autogen/c_dam_v001.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v001.pxd +452 -0
- hydpy/cythons/autogen/c_dam_v001.pyx +816 -0
- hydpy/cythons/autogen/c_dam_v002.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v002.pxd +394 -0
- hydpy/cythons/autogen/c_dam_v002.pyx +703 -0
- hydpy/cythons/autogen/c_dam_v003.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v003.pxd +417 -0
- hydpy/cythons/autogen/c_dam_v003.pyx +744 -0
- hydpy/cythons/autogen/c_dam_v004.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v004.pxd +486 -0
- hydpy/cythons/autogen/c_dam_v004.pyx +891 -0
- hydpy/cythons/autogen/c_dam_v005.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dam_v005.pxd +524 -0
- hydpy/cythons/autogen/c_dam_v005.pyx +928 -0
- hydpy/cythons/autogen/c_dummy.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy.pxd +151 -0
- hydpy/cythons/autogen/c_dummy.pyx +263 -0
- hydpy/cythons/autogen/c_dummy_interceptedwater.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_interceptedwater.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_interceptedwater.pyx +104 -0
- hydpy/cythons/autogen/c_dummy_node2node.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_node2node.pxd +89 -0
- hydpy/cythons/autogen/c_dummy_node2node.pyx +148 -0
- hydpy/cythons/autogen/c_dummy_snowalbedo.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_snowalbedo.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_snowalbedo.pyx +104 -0
- hydpy/cythons/autogen/c_dummy_snowcover.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_snowcover.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_snowcover.pyx +104 -0
- hydpy/cythons/autogen/c_dummy_snowycanopy.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_snowycanopy.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_snowycanopy.pyx +104 -0
- hydpy/cythons/autogen/c_dummy_soilwater.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_dummy_soilwater.pxd +69 -0
- hydpy/cythons/autogen/c_dummy_soilwater.pyx +104 -0
- hydpy/cythons/autogen/c_evap.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap.pxd +1029 -0
- hydpy/cythons/autogen/c_evap.pyx +2601 -0
- hydpy/cythons/autogen/c_evap_aet_hbv96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_aet_hbv96.pxd +227 -0
- hydpy/cythons/autogen/c_evap_aet_hbv96.pyx +584 -0
- hydpy/cythons/autogen/c_evap_aet_minhas.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_aet_minhas.pxd +193 -0
- hydpy/cythons/autogen/c_evap_aet_minhas.pyx +478 -0
- hydpy/cythons/autogen/c_evap_aet_morsim.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_aet_morsim.pxd +681 -0
- hydpy/cythons/autogen/c_evap_aet_morsim.pyx +1642 -0
- hydpy/cythons/autogen/c_evap_pet_ambav1.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_pet_ambav1.pxd +532 -0
- hydpy/cythons/autogen/c_evap_pet_ambav1.pyx +1296 -0
- hydpy/cythons/autogen/c_evap_pet_hbv96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_pet_hbv96.pxd +179 -0
- hydpy/cythons/autogen/c_evap_pet_hbv96.pyx +328 -0
- hydpy/cythons/autogen/c_evap_pet_m.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_pet_m.pxd +124 -0
- hydpy/cythons/autogen/c_evap_pet_m.pyx +214 -0
- hydpy/cythons/autogen/c_evap_pet_mlc.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_pet_mlc.pxd +126 -0
- hydpy/cythons/autogen/c_evap_pet_mlc.pyx +214 -0
- hydpy/cythons/autogen/c_evap_ret_fao56.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_ret_fao56.pxd +305 -0
- hydpy/cythons/autogen/c_evap_ret_fao56.pyx +624 -0
- hydpy/cythons/autogen/c_evap_ret_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_ret_io.pxd +112 -0
- hydpy/cythons/autogen/c_evap_ret_io.pyx +176 -0
- hydpy/cythons/autogen/c_evap_ret_tw2002.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_evap_ret_tw2002.pxd +139 -0
- hydpy/cythons/autogen/c_evap_ret_tw2002.pyx +273 -0
- hydpy/cythons/autogen/c_exch.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_exch.pxd +230 -0
- hydpy/cythons/autogen/c_exch.pyx +462 -0
- hydpy/cythons/autogen/c_exch_branch_hbv96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_exch_branch_hbv96.pxd +134 -0
- hydpy/cythons/autogen/c_exch_branch_hbv96.pyx +255 -0
- hydpy/cythons/autogen/c_exch_waterlevel.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_exch_waterlevel.pxd +54 -0
- hydpy/cythons/autogen/c_exch_waterlevel.pyx +78 -0
- hydpy/cythons/autogen/c_exch_weir_hbv96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_exch_weir_hbv96.pxd +156 -0
- hydpy/cythons/autogen/c_exch_weir_hbv96.pyx +282 -0
- hydpy/cythons/autogen/c_ga.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_ga.pxd +353 -0
- hydpy/cythons/autogen/c_ga.pyx +1204 -0
- hydpy/cythons/autogen/c_ga_garto.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_ga_garto.pxd +330 -0
- hydpy/cythons/autogen/c_ga_garto.pyx +1105 -0
- hydpy/cythons/autogen/c_ga_garto_submodel1.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_ga_garto_submodel1.pxd +236 -0
- hydpy/cythons/autogen/c_ga_garto_submodel1.pyx +944 -0
- hydpy/cythons/autogen/c_gland.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_gland.pxd +437 -0
- hydpy/cythons/autogen/c_gland.pyx +726 -0
- hydpy/cythons/autogen/c_gland_gr4.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_gland_gr4.pxd +382 -0
- hydpy/cythons/autogen/c_gland_gr4.pyx +605 -0
- hydpy/cythons/autogen/c_gland_gr5.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_gland_gr5.pxd +368 -0
- hydpy/cythons/autogen/c_gland_gr5.pyx +568 -0
- hydpy/cythons/autogen/c_gland_gr6.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_gland_gr6.pxd +420 -0
- hydpy/cythons/autogen/c_gland_gr6.pyx +673 -0
- hydpy/cythons/autogen/c_hland.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_hland.pxd +855 -0
- hydpy/cythons/autogen/c_hland.pyx +2486 -0
- hydpy/cythons/autogen/c_hland_96.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_hland_96.pxd +631 -0
- hydpy/cythons/autogen/c_hland_96.pyx +1724 -0
- hydpy/cythons/autogen/c_hland_96c.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_hland_96c.pxd +621 -0
- hydpy/cythons/autogen/c_hland_96c.pyx +1822 -0
- hydpy/cythons/autogen/c_hland_96p.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_hland_96p.pxd +683 -0
- hydpy/cythons/autogen/c_hland_96p.pyx +1911 -0
- hydpy/cythons/autogen/c_kinw.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_kinw.pxd +509 -0
- hydpy/cythons/autogen/c_kinw.pyx +965 -0
- hydpy/cythons/autogen/c_kinw_williams.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_kinw_williams.pxd +409 -0
- hydpy/cythons/autogen/c_kinw_williams.pyx +763 -0
- hydpy/cythons/autogen/c_kinw_williams_ext.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_kinw_williams_ext.pxd +220 -0
- hydpy/cythons/autogen/c_kinw_williams_ext.pyx +440 -0
- hydpy/cythons/autogen/c_lland.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_lland.pxd +1386 -0
- hydpy/cythons/autogen/c_lland.pyx +3679 -0
- hydpy/cythons/autogen/c_lland_dd.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_lland_dd.pxd +679 -0
- hydpy/cythons/autogen/c_lland_dd.pyx +1719 -0
- hydpy/cythons/autogen/c_lland_knauf.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_lland_knauf.pxd +1096 -0
- hydpy/cythons/autogen/c_lland_knauf.pyx +2784 -0
- hydpy/cythons/autogen/c_lland_knauf_ic.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_lland_knauf_ic.pxd +1369 -0
- hydpy/cythons/autogen/c_lland_knauf_ic.pyx +3625 -0
- hydpy/cythons/autogen/c_meteo.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo.pxd +469 -0
- hydpy/cythons/autogen/c_meteo.pyx +879 -0
- hydpy/cythons/autogen/c_meteo_clear_glob_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_clear_glob_io.pxd +75 -0
- hydpy/cythons/autogen/c_meteo_clear_glob_io.pyx +107 -0
- hydpy/cythons/autogen/c_meteo_glob_fao56.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_glob_fao56.pxd +209 -0
- hydpy/cythons/autogen/c_meteo_glob_fao56.pyx +339 -0
- hydpy/cythons/autogen/c_meteo_glob_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_glob_io.pxd +63 -0
- hydpy/cythons/autogen/c_meteo_glob_io.pyx +91 -0
- hydpy/cythons/autogen/c_meteo_glob_morsim.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_glob_morsim.pxd +289 -0
- hydpy/cythons/autogen/c_meteo_glob_morsim.pyx +527 -0
- hydpy/cythons/autogen/c_meteo_precip_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_precip_io.pxd +112 -0
- hydpy/cythons/autogen/c_meteo_precip_io.pyx +176 -0
- hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.pxd +87 -0
- hydpy/cythons/autogen/c_meteo_psun_sun_glob_io.pyx +123 -0
- hydpy/cythons/autogen/c_meteo_sun_fao56.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_sun_fao56.pxd +209 -0
- hydpy/cythons/autogen/c_meteo_sun_fao56.pyx +343 -0
- hydpy/cythons/autogen/c_meteo_sun_morsim.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_sun_morsim.pxd +286 -0
- hydpy/cythons/autogen/c_meteo_sun_morsim.pyx +519 -0
- hydpy/cythons/autogen/c_meteo_temp_io.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_meteo_temp_io.pxd +112 -0
- hydpy/cythons/autogen/c_meteo_temp_io.pyx +176 -0
- hydpy/cythons/autogen/c_musk.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_musk.pxd +282 -0
- hydpy/cythons/autogen/c_musk.pyx +605 -0
- hydpy/cythons/autogen/c_musk_classic.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_musk_classic.pxd +138 -0
- hydpy/cythons/autogen/c_musk_classic.pyx +226 -0
- hydpy/cythons/autogen/c_musk_mct.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_musk_mct.pxd +282 -0
- hydpy/cythons/autogen/c_musk_mct.pyx +609 -0
- hydpy/cythons/autogen/c_rconc.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_rconc.pxd +119 -0
- hydpy/cythons/autogen/c_rconc.pyx +174 -0
- hydpy/cythons/autogen/c_rconc_nash.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_rconc_nash.pxd +111 -0
- hydpy/cythons/autogen/c_rconc_nash.pyx +185 -0
- hydpy/cythons/autogen/c_rconc_uh.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_rconc_uh.pxd +92 -0
- hydpy/cythons/autogen/c_rconc_uh.pyx +125 -0
- hydpy/cythons/autogen/c_sw1d.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d.pxd +511 -0
- hydpy/cythons/autogen/c_sw1d.pyx +1263 -0
- hydpy/cythons/autogen/c_sw1d_channel.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_channel.pxd +119 -0
- hydpy/cythons/autogen/c_sw1d_channel.pyx +300 -0
- hydpy/cythons/autogen/c_sw1d_gate_out.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_gate_out.pxd +240 -0
- hydpy/cythons/autogen/c_sw1d_gate_out.pyx +476 -0
- hydpy/cythons/autogen/c_sw1d_lias.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_lias.pxd +320 -0
- hydpy/cythons/autogen/c_sw1d_lias.pyx +619 -0
- hydpy/cythons/autogen/c_sw1d_lias_sluice.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_lias_sluice.pxd +325 -0
- hydpy/cythons/autogen/c_sw1d_lias_sluice.pyx +644 -0
- hydpy/cythons/autogen/c_sw1d_network.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_network.pxd +90 -0
- hydpy/cythons/autogen/c_sw1d_network.pyx +246 -0
- hydpy/cythons/autogen/c_sw1d_pump.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_pump.pxd +256 -0
- hydpy/cythons/autogen/c_sw1d_pump.pyx +502 -0
- hydpy/cythons/autogen/c_sw1d_q_in.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_q_in.pxd +224 -0
- hydpy/cythons/autogen/c_sw1d_q_in.pyx +383 -0
- hydpy/cythons/autogen/c_sw1d_q_out.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_q_out.pxd +224 -0
- hydpy/cythons/autogen/c_sw1d_q_out.pyx +383 -0
- hydpy/cythons/autogen/c_sw1d_storage.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_storage.pxd +193 -0
- hydpy/cythons/autogen/c_sw1d_storage.pyx +349 -0
- hydpy/cythons/autogen/c_sw1d_weir_out.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_sw1d_weir_out.pxd +212 -0
- hydpy/cythons/autogen/c_sw1d_weir_out.pyx +404 -0
- hydpy/cythons/autogen/c_test.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_test.pxd +175 -0
- hydpy/cythons/autogen/c_test.pyx +348 -0
- hydpy/cythons/autogen/c_test_discontinous.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_test_discontinous.pxd +146 -0
- hydpy/cythons/autogen/c_test_discontinous.pyx +256 -0
- hydpy/cythons/autogen/c_test_stiff0d.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_test_stiff0d.pxd +146 -0
- hydpy/cythons/autogen/c_test_stiff0d.pyx +250 -0
- hydpy/cythons/autogen/c_test_stiff1d.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_test_stiff1d.pxd +145 -0
- hydpy/cythons/autogen/c_test_stiff1d.pyx +294 -0
- hydpy/cythons/autogen/c_whmod.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_whmod.pxd +482 -0
- hydpy/cythons/autogen/c_whmod.pyx +1156 -0
- hydpy/cythons/autogen/c_whmod_rural.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_whmod_rural.pxd +411 -0
- hydpy/cythons/autogen/c_whmod_rural.pyx +982 -0
- hydpy/cythons/autogen/c_whmod_urban.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_whmod_urban.pxd +482 -0
- hydpy/cythons/autogen/c_whmod_urban.pyx +1155 -0
- hydpy/cythons/autogen/c_wland.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wland.pxd +842 -0
- hydpy/cythons/autogen/c_wland.pyx +1890 -0
- hydpy/cythons/autogen/c_wland_gd.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wland_gd.pxd +829 -0
- hydpy/cythons/autogen/c_wland_gd.pyx +1847 -0
- hydpy/cythons/autogen/c_wland_wag.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wland_wag.pxd +810 -0
- hydpy/cythons/autogen/c_wland_wag.pyx +1780 -0
- hydpy/cythons/autogen/c_wq.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wq.pxd +275 -0
- hydpy/cythons/autogen/c_wq.pyx +652 -0
- hydpy/cythons/autogen/c_wq_trapeze.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wq_trapeze.pxd +170 -0
- hydpy/cythons/autogen/c_wq_trapeze.pyx +400 -0
- hydpy/cythons/autogen/c_wq_trapeze_strickler.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wq_trapeze_strickler.pxd +243 -0
- hydpy/cythons/autogen/c_wq_trapeze_strickler.pyx +578 -0
- hydpy/cythons/autogen/c_wq_walrus.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/c_wq_walrus.pxd +61 -0
- hydpy/cythons/autogen/c_wq_walrus.pyx +82 -0
- hydpy/cythons/autogen/configutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/configutils.pxd +17 -0
- hydpy/cythons/autogen/configutils.pyx +119 -0
- hydpy/cythons/autogen/interfaceutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/interfaceutils.pxd +31 -0
- hydpy/cythons/autogen/interfaceutils.pyx +82 -0
- hydpy/cythons/autogen/interputils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/interputils.pxd +42 -0
- hydpy/cythons/autogen/interputils.pyx +118 -0
- hydpy/cythons/autogen/masterinterface.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/masterinterface.pxd +153 -0
- hydpy/cythons/autogen/masterinterface.pyx +222 -0
- hydpy/cythons/autogen/pointerutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/pointerutils.pxd +31 -0
- hydpy/cythons/autogen/pointerutils.pyx +650 -0
- hydpy/cythons/autogen/ppolyutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/ppolyutils.pxd +35 -0
- hydpy/cythons/autogen/ppolyutils.pyx +59 -0
- hydpy/cythons/autogen/quadutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/quadutils.pxd +26 -0
- hydpy/cythons/autogen/quadutils.pyx +973 -0
- hydpy/cythons/autogen/rootutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/rootutils.pxd +28 -0
- hydpy/cythons/autogen/rootutils.pyx +109 -0
- hydpy/cythons/autogen/sequenceutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/sequenceutils.pxd +45 -0
- hydpy/cythons/autogen/sequenceutils.pyx +101 -0
- hydpy/cythons/autogen/smoothutils.cp313-win_amd64.pyd +0 -0
- hydpy/cythons/autogen/smoothutils.pxd +29 -0
- hydpy/cythons/autogen/smoothutils.pyx +833 -0
- hydpy/cythons/configutils.pxd +8 -0
- hydpy/cythons/configutils.pyi +5 -0
- hydpy/cythons/configutils.pyx +110 -0
- hydpy/cythons/interfaceutils.pxd +22 -0
- hydpy/cythons/interfaceutils.pyi +15 -0
- hydpy/cythons/interfaceutils.pyx +73 -0
- hydpy/cythons/interputils.pxd +33 -0
- hydpy/cythons/interputils.pyi +32 -0
- hydpy/cythons/interputils.pyx +109 -0
- hydpy/cythons/modelutils.py +2990 -0
- hydpy/cythons/pointerutils.pxd +22 -0
- hydpy/cythons/pointerutils.pyi +89 -0
- hydpy/cythons/pointerutils.pyx +641 -0
- hydpy/cythons/ppolyutils.pxd +26 -0
- hydpy/cythons/ppolyutils.pyi +21 -0
- hydpy/cythons/ppolyutils.pyx +50 -0
- hydpy/cythons/quadutils.pxd +17 -0
- hydpy/cythons/quadutils.pyi +13 -0
- hydpy/cythons/quadutils.pyx +964 -0
- hydpy/cythons/rootutils.pxd +19 -0
- hydpy/cythons/rootutils.pyi +21 -0
- hydpy/cythons/rootutils.pyx +100 -0
- hydpy/cythons/sequenceutils.pxd +36 -0
- hydpy/cythons/sequenceutils.pyi +7 -0
- hydpy/cythons/sequenceutils.pyx +92 -0
- hydpy/cythons/smoothutils.pxd +20 -0
- hydpy/cythons/smoothutils.pyi +15 -0
- hydpy/cythons/smoothutils.pyx +824 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_dill_assl.py +13 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_kalk.py +13 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_leun.py +14 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/land_lahn_marb.py +13 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_dill_assl_lahn_leun.py +5 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_lahn_leun_lahn_kalk.py +5 -0
- hydpy/data/HydPy-H-Lahn/conditions/init_1996_01_01_00_00_00/stream_lahn_marb_lahn_leun.py +5 -0
- hydpy/data/HydPy-H-Lahn/control/default/land.py +9 -0
- hydpy/data/HydPy-H-Lahn/control/default/land_dill_assl.py +57 -0
- hydpy/data/HydPy-H-Lahn/control/default/land_lahn_kalk.py +57 -0
- hydpy/data/HydPy-H-Lahn/control/default/land_lahn_leun.py +56 -0
- hydpy/data/HydPy-H-Lahn/control/default/land_lahn_marb.py +57 -0
- hydpy/data/HydPy-H-Lahn/control/default/stream_dill_assl_lahn_leun.py +7 -0
- hydpy/data/HydPy-H-Lahn/control/default/stream_lahn_leun_lahn_kalk.py +7 -0
- hydpy/data/HydPy-H-Lahn/control/default/stream_lahn_marb_lahn_leun.py +7 -0
- hydpy/data/HydPy-H-Lahn/multiple_runs.xml +309 -0
- hydpy/data/HydPy-H-Lahn/multiple_runs_alpha.xml +71 -0
- hydpy/data/HydPy-H-Lahn/network/default/headwaters.py +11 -0
- hydpy/data/HydPy-H-Lahn/network/default/nonheadwaters.py +11 -0
- hydpy/data/HydPy-H-Lahn/network/default/streams.py +8 -0
- hydpy/data/HydPy-H-Lahn/series/default/dill_assl_obs_q.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/evap_pet_hbv96_input_normalairtemperature.nc +0 -0
- hydpy/data/HydPy-H-Lahn/series/default/evap_pet_hbv96_input_normalevapotranspiration.nc +0 -0
- hydpy/data/HydPy-H-Lahn/series/default/hland_96_input_p.nc +0 -0
- hydpy/data/HydPy-H-Lahn/series/default/hland_96_input_t.nc +0 -0
- hydpy/data/HydPy-H-Lahn/series/default/lahn_kalk_obs_q.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/lahn_leun_obs_q.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/lahn_marb_obs_q.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_hland_96_input_p.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_dill_assl_hland_96_input_t.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_hland_96_input_p.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_kalk_hland_96_input_t.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_hland_96_input_p.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_leun_hland_96_input_t.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_evap_pet_hbv96_input_normalairtemperature.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_evap_pet_hbv96_input_normalevapotranspiration.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_hland_96_input_p.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/land_lahn_marb_hland_96_input_t.asc +11387 -0
- hydpy/data/HydPy-H-Lahn/series/default/obs_q.nc +0 -0
- hydpy/data/HydPy-H-Lahn/single_run.xml +152 -0
- hydpy/data/HydPy-H-Lahn/single_run.xmlt +143 -0
- hydpy/data/__init__.py +17 -0
- hydpy/docs/__init__.py +0 -0
- hydpy/docs/autofigs/__init__.py +0 -0
- hydpy/docs/bib/__init__.py +0 -0
- hydpy/docs/bib/refs.bib +566 -0
- hydpy/docs/combine_docversions.py +133 -0
- hydpy/docs/draw_model_sketches.py +1301 -0
- hydpy/docs/enable_autodoc.py +7 -0
- hydpy/docs/figs/HydPy-G-GR4.png +0 -0
- hydpy/docs/figs/HydPy-G-GR5.png +0 -0
- hydpy/docs/figs/HydPy-G-GR6.png +0 -0
- hydpy/docs/figs/HydPy-H-HBV96-COSERO.png +0 -0
- hydpy/docs/figs/HydPy-H-HBV96-PREVAH.png +0 -0
- hydpy/docs/figs/HydPy-H-HBV96.png +0 -0
- hydpy/docs/figs/HydPy-H-Lahn.png +0 -0
- hydpy/docs/figs/HydPy-KinW-Williams.png +0 -0
- hydpy/docs/figs/HydPy-L-DD.png +0 -0
- hydpy/docs/figs/HydPy-W-Wag.png +0 -0
- hydpy/docs/figs/HydPy_Logo.png +0 -0
- hydpy/docs/figs/HydPy_Logo_Text.png +0 -0
- hydpy/docs/figs/IDLE-editor.png +0 -0
- hydpy/docs/figs/IDLE-shell.png +0 -0
- hydpy/docs/figs/LAWA_river-basin-bumbers.png +0 -0
- hydpy/docs/figs/__init__.py +0 -0
- hydpy/docs/html_/__init__.py +0 -0
- hydpy/docs/polish_html.py +57 -0
- hydpy/docs/prepare.py +224 -0
- hydpy/docs/publish_docs.py +53 -0
- hydpy/docs/rst/HydPy-ARMA.rst +27 -0
- hydpy/docs/rst/HydPy-Conv.rst +22 -0
- hydpy/docs/rst/HydPy-Dam.rst +79 -0
- hydpy/docs/rst/HydPy-Dummy.rst +21 -0
- hydpy/docs/rst/HydPy-Evap.rst +26 -0
- hydpy/docs/rst/HydPy-Exch.rst +36 -0
- hydpy/docs/rst/HydPy-G.rst +40 -0
- hydpy/docs/rst/HydPy-GA.rst +34 -0
- hydpy/docs/rst/HydPy-H.rst +24 -0
- hydpy/docs/rst/HydPy-KinW.rst +32 -0
- hydpy/docs/rst/HydPy-L.rst +42 -0
- hydpy/docs/rst/HydPy-Meteo.rst +28 -0
- hydpy/docs/rst/HydPy-Musk.rst +21 -0
- hydpy/docs/rst/HydPy-Rconc.rst +17 -0
- hydpy/docs/rst/HydPy-SW1D.rst +49 -0
- hydpy/docs/rst/HydPy-Test.rst +19 -0
- hydpy/docs/rst/HydPy-W.rst +20 -0
- hydpy/docs/rst/HydPy-WHMod.rst +19 -0
- hydpy/docs/rst/HydPy-WQ.rst +20 -0
- hydpy/docs/rst/__init__.py +0 -0
- hydpy/docs/rst/additional_repositories.rst +40 -0
- hydpy/docs/rst/auxiliaries.rst +31 -0
- hydpy/docs/rst/continuous_integration.rst +75 -0
- hydpy/docs/rst/core.rst +75 -0
- hydpy/docs/rst/cythons.rst +47 -0
- hydpy/docs/rst/definitions.rst +506 -0
- hydpy/docs/rst/developer_guide.rst +54 -0
- hydpy/docs/rst/example_projects.rst +40 -0
- hydpy/docs/rst/execution.rst +22 -0
- hydpy/docs/rst/framework_tools.rst +56 -0
- hydpy/docs/rst/how_to_read_the_reference_manual.rst +156 -0
- hydpy/docs/rst/hydpydependencies.rst +55 -0
- hydpy/docs/rst/index.rst +125 -0
- hydpy/docs/rst/installation.rst +155 -0
- hydpy/docs/rst/model_families.rst +79 -0
- hydpy/docs/rst/model_overview.rst +291 -0
- hydpy/docs/rst/modelimports.rst +10 -0
- hydpy/docs/rst/options.rst +119 -0
- hydpy/docs/rst/programming_style.rst +572 -0
- hydpy/docs/rst/project_structure.rst +520 -0
- hydpy/docs/rst/quickstart.rst +304 -0
- hydpy/docs/rst/reference_manual.rst +29 -0
- hydpy/docs/rst/required_tools.rst +50 -0
- hydpy/docs/rst/simulation.rst +514 -0
- hydpy/docs/rst/submodel_interfaces.rst +32 -0
- hydpy/docs/rst/tests_and_documentation.rst +85 -0
- hydpy/docs/rst/user_guide.rst +38 -0
- hydpy/docs/rst/version_control.rst +116 -0
- hydpy/docs/rst/zbibliography.rst +8 -0
- hydpy/docs/sphinx/__init__.py +0 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/changes/frameset.html +11 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/changes/rstsource.html +15 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/changes/versionchanges.html +33 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/defindex.html +35 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/domainindex.html +56 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/genindex-single.html +63 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/genindex-split.html +41 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/genindex.html +76 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/globaltoc.html +11 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/layout.html +221 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/localtoc.html +15 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/opensearch.xml +13 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/page.html +13 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/relations.html +23 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/search.html +65 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/searchbox.html +21 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/searchfield.html +23 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/sourcelink.html +18 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/basic.css_t +925 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/doctools.js +156 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/documentation_options.js_t +13 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/file.png +0 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/language_data.js_t +26 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/minus.png +0 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/plus.png +0 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/searchtools.js +574 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/static/sphinx_highlight.js +154 -0
- hydpy/docs/sphinx/_themes/basic_hydpy/theme.conf +16 -0
- hydpy/docs/sphinx/_themes/classic_hydpy/layout.html +23 -0
- hydpy/docs/sphinx/_themes/classic_hydpy/static/classic.css_t +358 -0
- hydpy/docs/sphinx/_themes/classic_hydpy/static/sidebar.js_t +72 -0
- hydpy/docs/sphinx/_themes/classic_hydpy/theme.conf +32 -0
- hydpy/docs/sphinx/conf.py +398 -0
- hydpy/docs/sphinx/defaultlinks_extension.py +36 -0
- hydpy/docs/sphinx/integrationtest_extension.py +104 -0
- hydpy/docs/sphinx/projectstructure_extension.py +58 -0
- hydpy/docs/sphinx/submodelgraph_extension.py +53 -0
- hydpy/exe/__init__.py +0 -0
- hydpy/exe/commandtools.py +651 -0
- hydpy/exe/hyd.py +277 -0
- hydpy/exe/modelimports.py +41 -0
- hydpy/exe/replacetools.py +216 -0
- hydpy/exe/servertools.py +2348 -0
- hydpy/exe/xmltools.py +3280 -0
- hydpy/interfaces/__init__.py +0 -0
- hydpy/interfaces/aetinterfaces.py +94 -0
- hydpy/interfaces/dischargeinterfaces.py +45 -0
- hydpy/interfaces/petinterfaces.py +117 -0
- hydpy/interfaces/precipinterfaces.py +42 -0
- hydpy/interfaces/radiationinterfaces.py +79 -0
- hydpy/interfaces/rconcinterfaces.py +30 -0
- hydpy/interfaces/routinginterfaces.py +324 -0
- hydpy/interfaces/soilinterfaces.py +96 -0
- hydpy/interfaces/stateinterfaces.py +98 -0
- hydpy/interfaces/tempinterfaces.py +46 -0
- hydpy/models/__init__.py +0 -0
- hydpy/models/arma/__init__.py +14 -0
- hydpy/models/arma/arma_control.py +383 -0
- hydpy/models/arma/arma_derived.py +204 -0
- hydpy/models/arma/arma_fluxes.py +41 -0
- hydpy/models/arma/arma_inlets.py +11 -0
- hydpy/models/arma/arma_logs.py +19 -0
- hydpy/models/arma/arma_model.py +461 -0
- hydpy/models/arma/arma_outlets.py +11 -0
- hydpy/models/arma_rimorido.py +381 -0
- hydpy/models/conv/__init__.py +12 -0
- hydpy/models/conv/conv_control.py +303 -0
- hydpy/models/conv/conv_derived.py +271 -0
- hydpy/models/conv/conv_fluxes.py +54 -0
- hydpy/models/conv/conv_inlets.py +11 -0
- hydpy/models/conv/conv_model.py +687 -0
- hydpy/models/conv/conv_outlets.py +11 -0
- hydpy/models/conv_idw.py +120 -0
- hydpy/models/conv_idw_ed.py +184 -0
- hydpy/models/conv_nn.py +112 -0
- hydpy/models/dam/__init__.py +16 -0
- hydpy/models/dam/dam_aides.py +17 -0
- hydpy/models/dam/dam_control.py +346 -0
- hydpy/models/dam/dam_derived.py +559 -0
- hydpy/models/dam/dam_factors.py +46 -0
- hydpy/models/dam/dam_fluxes.py +179 -0
- hydpy/models/dam/dam_inlets.py +29 -0
- hydpy/models/dam/dam_logs.py +52 -0
- hydpy/models/dam/dam_model.py +5011 -0
- hydpy/models/dam/dam_outlets.py +23 -0
- hydpy/models/dam/dam_receivers.py +41 -0
- hydpy/models/dam/dam_senders.py +23 -0
- hydpy/models/dam/dam_solver.py +75 -0
- hydpy/models/dam/dam_states.py +11 -0
- hydpy/models/dam_llake.py +499 -0
- hydpy/models/dam_lreservoir.py +548 -0
- hydpy/models/dam_lretention.py +343 -0
- hydpy/models/dam_pump.py +278 -0
- hydpy/models/dam_pump_sluice.py +339 -0
- hydpy/models/dam_sluice.py +319 -0
- hydpy/models/dam_v001.py +1127 -0
- hydpy/models/dam_v002.py +381 -0
- hydpy/models/dam_v003.py +422 -0
- hydpy/models/dam_v004.py +665 -0
- hydpy/models/dam_v005.py +479 -0
- hydpy/models/dummy/__init__.py +15 -0
- hydpy/models/dummy/dummy_control.py +22 -0
- hydpy/models/dummy/dummy_fluxes.py +11 -0
- hydpy/models/dummy/dummy_inlets.py +11 -0
- hydpy/models/dummy/dummy_inputs.py +41 -0
- hydpy/models/dummy/dummy_model.py +196 -0
- hydpy/models/dummy/dummy_outlets.py +11 -0
- hydpy/models/dummy_interceptedwater.py +85 -0
- hydpy/models/dummy_node2node.py +83 -0
- hydpy/models/dummy_snowalbedo.py +84 -0
- hydpy/models/dummy_snowcover.py +84 -0
- hydpy/models/dummy_snowycanopy.py +86 -0
- hydpy/models/dummy_soilwater.py +85 -0
- hydpy/models/evap/__init__.py +13 -0
- hydpy/models/evap/evap_control.py +354 -0
- hydpy/models/evap/evap_derived.py +236 -0
- hydpy/models/evap/evap_factors.py +188 -0
- hydpy/models/evap/evap_fixed.py +68 -0
- hydpy/models/evap/evap_fluxes.py +150 -0
- hydpy/models/evap/evap_inputs.py +54 -0
- hydpy/models/evap/evap_logs.py +91 -0
- hydpy/models/evap/evap_masks.py +48 -0
- hydpy/models/evap/evap_model.py +9170 -0
- hydpy/models/evap/evap_parameters.py +149 -0
- hydpy/models/evap/evap_sequences.py +32 -0
- hydpy/models/evap/evap_states.py +18 -0
- hydpy/models/evap_aet_hbv96.py +372 -0
- hydpy/models/evap_aet_minhas.py +331 -0
- hydpy/models/evap_aet_morsim.py +627 -0
- hydpy/models/evap_pet_ambav1.py +483 -0
- hydpy/models/evap_pet_hbv96.py +147 -0
- hydpy/models/evap_pet_m.py +94 -0
- hydpy/models/evap_pet_mlc.py +107 -0
- hydpy/models/evap_ret_fao56.py +265 -0
- hydpy/models/evap_ret_io.py +74 -0
- hydpy/models/evap_ret_tw2002.py +165 -0
- hydpy/models/exch/__init__.py +14 -0
- hydpy/models/exch/exch_control.py +262 -0
- hydpy/models/exch/exch_derived.py +36 -0
- hydpy/models/exch/exch_factors.py +26 -0
- hydpy/models/exch/exch_fluxes.py +48 -0
- hydpy/models/exch/exch_inlets.py +11 -0
- hydpy/models/exch/exch_logs.py +12 -0
- hydpy/models/exch/exch_model.py +451 -0
- hydpy/models/exch/exch_outlets.py +17 -0
- hydpy/models/exch/exch_receivers.py +17 -0
- hydpy/models/exch_branch_hbv96.py +186 -0
- hydpy/models/exch_waterlevel.py +73 -0
- hydpy/models/exch_weir_hbv96.py +609 -0
- hydpy/models/ga/__init__.py +14 -0
- hydpy/models/ga/ga_aides.py +17 -0
- hydpy/models/ga/ga_control.py +208 -0
- hydpy/models/ga/ga_derived.py +77 -0
- hydpy/models/ga/ga_fluxes.py +83 -0
- hydpy/models/ga/ga_inputs.py +26 -0
- hydpy/models/ga/ga_logs.py +17 -0
- hydpy/models/ga/ga_model.py +2952 -0
- hydpy/models/ga/ga_states.py +87 -0
- hydpy/models/ga_garto.py +1001 -0
- hydpy/models/ga_garto_submodel1.py +79 -0
- hydpy/models/gland/__init__.py +14 -0
- hydpy/models/gland/gland_control.py +90 -0
- hydpy/models/gland/gland_derived.py +113 -0
- hydpy/models/gland/gland_fluxes.py +137 -0
- hydpy/models/gland/gland_inputs.py +12 -0
- hydpy/models/gland/gland_model.py +1439 -0
- hydpy/models/gland/gland_outlets.py +11 -0
- hydpy/models/gland/gland_states.py +90 -0
- hydpy/models/gland_gr4.py +501 -0
- hydpy/models/gland_gr5.py +463 -0
- hydpy/models/gland_gr6.py +487 -0
- hydpy/models/hland/__init__.py +20 -0
- hydpy/models/hland/hland_aides.py +19 -0
- hydpy/models/hland/hland_constants.py +37 -0
- hydpy/models/hland/hland_control.py +1530 -0
- hydpy/models/hland/hland_derived.py +683 -0
- hydpy/models/hland/hland_factors.py +57 -0
- hydpy/models/hland/hland_fixed.py +42 -0
- hydpy/models/hland/hland_fluxes.py +279 -0
- hydpy/models/hland/hland_inputs.py +19 -0
- hydpy/models/hland/hland_masks.py +107 -0
- hydpy/models/hland/hland_model.py +4664 -0
- hydpy/models/hland/hland_outlets.py +11 -0
- hydpy/models/hland/hland_parameters.py +227 -0
- hydpy/models/hland/hland_sequences.py +382 -0
- hydpy/models/hland/hland_states.py +236 -0
- hydpy/models/hland_96.py +1812 -0
- hydpy/models/hland_96c.py +1196 -0
- hydpy/models/hland_96p.py +1204 -0
- hydpy/models/kinw/__init__.py +18 -0
- hydpy/models/kinw/kinw_aides.py +306 -0
- hydpy/models/kinw/kinw_control.py +270 -0
- hydpy/models/kinw/kinw_derived.py +197 -0
- hydpy/models/kinw/kinw_fixed.py +33 -0
- hydpy/models/kinw/kinw_fluxes.py +37 -0
- hydpy/models/kinw/kinw_inlets.py +11 -0
- hydpy/models/kinw/kinw_model.py +3026 -0
- hydpy/models/kinw/kinw_outlets.py +11 -0
- hydpy/models/kinw/kinw_solver.py +45 -0
- hydpy/models/kinw/kinw_states.py +17 -0
- hydpy/models/kinw_williams.py +1299 -0
- hydpy/models/kinw_williams_ext.py +768 -0
- hydpy/models/lland/__init__.py +42 -0
- hydpy/models/lland/lland_aides.py +38 -0
- hydpy/models/lland/lland_constants.py +88 -0
- hydpy/models/lland/lland_control.py +1329 -0
- hydpy/models/lland/lland_derived.py +380 -0
- hydpy/models/lland/lland_factors.py +18 -0
- hydpy/models/lland/lland_fixed.py +128 -0
- hydpy/models/lland/lland_fluxes.py +626 -0
- hydpy/models/lland/lland_inlets.py +12 -0
- hydpy/models/lland/lland_inputs.py +33 -0
- hydpy/models/lland/lland_logs.py +17 -0
- hydpy/models/lland/lland_masks.py +212 -0
- hydpy/models/lland/lland_model.py +7690 -0
- hydpy/models/lland/lland_outlets.py +12 -0
- hydpy/models/lland/lland_parameters.py +195 -0
- hydpy/models/lland/lland_sequences.py +67 -0
- hydpy/models/lland/lland_states.py +280 -0
- hydpy/models/lland_dd.py +2270 -0
- hydpy/models/lland_knauf.py +2156 -0
- hydpy/models/lland_knauf_ic.py +1920 -0
- hydpy/models/meteo/__init__.py +12 -0
- hydpy/models/meteo/meteo_control.py +154 -0
- hydpy/models/meteo/meteo_derived.py +159 -0
- hydpy/models/meteo/meteo_factors.py +88 -0
- hydpy/models/meteo/meteo_fixed.py +19 -0
- hydpy/models/meteo/meteo_fluxes.py +46 -0
- hydpy/models/meteo/meteo_inputs.py +47 -0
- hydpy/models/meteo/meteo_logs.py +30 -0
- hydpy/models/meteo/meteo_model.py +2904 -0
- hydpy/models/meteo/meteo_parameters.py +14 -0
- hydpy/models/meteo/meteo_sequences.py +22 -0
- hydpy/models/meteo_clear_glob_io.py +77 -0
- hydpy/models/meteo_glob_fao56.py +217 -0
- hydpy/models/meteo_glob_io.py +68 -0
- hydpy/models/meteo_glob_morsim.py +444 -0
- hydpy/models/meteo_precip_io.py +76 -0
- hydpy/models/meteo_psun_sun_glob_io.py +83 -0
- hydpy/models/meteo_sun_fao56.py +188 -0
- hydpy/models/meteo_sun_morsim.py +466 -0
- hydpy/models/meteo_temp_io.py +76 -0
- hydpy/models/musk/__init__.py +15 -0
- hydpy/models/musk/musk_control.py +328 -0
- hydpy/models/musk/musk_derived.py +32 -0
- hydpy/models/musk/musk_factors.py +53 -0
- hydpy/models/musk/musk_fluxes.py +24 -0
- hydpy/models/musk/musk_inlets.py +11 -0
- hydpy/models/musk/musk_masks.py +15 -0
- hydpy/models/musk/musk_model.py +838 -0
- hydpy/models/musk/musk_outlets.py +11 -0
- hydpy/models/musk/musk_sequences.py +88 -0
- hydpy/models/musk/musk_solver.py +68 -0
- hydpy/models/musk/musk_states.py +64 -0
- hydpy/models/musk_classic.py +228 -0
- hydpy/models/musk_mct.py +1247 -0
- hydpy/models/rconc/__init__.py +12 -0
- hydpy/models/rconc/rconc_control.py +473 -0
- hydpy/models/rconc/rconc_derived.py +76 -0
- hydpy/models/rconc/rconc_fluxes.py +19 -0
- hydpy/models/rconc/rconc_logs.py +74 -0
- hydpy/models/rconc/rconc_model.py +260 -0
- hydpy/models/rconc/rconc_states.py +11 -0
- hydpy/models/rconc_nash.py +48 -0
- hydpy/models/rconc_uh.py +53 -0
- hydpy/models/sw1d/__init__.py +17 -0
- hydpy/models/sw1d/sw1d_control.py +356 -0
- hydpy/models/sw1d/sw1d_derived.py +85 -0
- hydpy/models/sw1d/sw1d_factors.py +78 -0
- hydpy/models/sw1d/sw1d_fixed.py +12 -0
- hydpy/models/sw1d/sw1d_fluxes.py +55 -0
- hydpy/models/sw1d/sw1d_inlets.py +17 -0
- hydpy/models/sw1d/sw1d_model.py +3385 -0
- hydpy/models/sw1d/sw1d_outlets.py +11 -0
- hydpy/models/sw1d/sw1d_receivers.py +11 -0
- hydpy/models/sw1d/sw1d_senders.py +11 -0
- hydpy/models/sw1d/sw1d_states.py +23 -0
- hydpy/models/sw1d_channel.py +2051 -0
- hydpy/models/sw1d_gate_out.py +599 -0
- hydpy/models/sw1d_lias.py +105 -0
- hydpy/models/sw1d_lias_sluice.py +531 -0
- hydpy/models/sw1d_network.py +1219 -0
- hydpy/models/sw1d_pump.py +448 -0
- hydpy/models/sw1d_q_in.py +79 -0
- hydpy/models/sw1d_q_out.py +81 -0
- hydpy/models/sw1d_storage.py +78 -0
- hydpy/models/sw1d_weir_out.py +75 -0
- hydpy/models/test/__init__.py +14 -0
- hydpy/models/test/test_control.py +28 -0
- hydpy/models/test/test_fluxes.py +17 -0
- hydpy/models/test/test_model.py +201 -0
- hydpy/models/test/test_solver.py +48 -0
- hydpy/models/test/test_states.py +17 -0
- hydpy/models/test_discontinous.py +46 -0
- hydpy/models/test_stiff0d.py +47 -0
- hydpy/models/test_stiff1d.py +42 -0
- hydpy/models/whmod/__init__.py +21 -0
- hydpy/models/whmod/whmod_constants.py +77 -0
- hydpy/models/whmod/whmod_control.py +333 -0
- hydpy/models/whmod/whmod_derived.py +210 -0
- hydpy/models/whmod/whmod_factors.py +9 -0
- hydpy/models/whmod/whmod_fluxes.py +105 -0
- hydpy/models/whmod/whmod_inputs.py +15 -0
- hydpy/models/whmod/whmod_masks.py +178 -0
- hydpy/models/whmod/whmod_model.py +2091 -0
- hydpy/models/whmod/whmod_parameters.py +155 -0
- hydpy/models/whmod/whmod_sequences.py +193 -0
- hydpy/models/whmod/whmod_states.py +73 -0
- hydpy/models/whmod_rural.py +794 -0
- hydpy/models/whmod_urban.py +1011 -0
- hydpy/models/wland/__init__.py +43 -0
- hydpy/models/wland/wland_aides.py +55 -0
- hydpy/models/wland/wland_constants.py +103 -0
- hydpy/models/wland/wland_control.py +508 -0
- hydpy/models/wland/wland_derived.py +330 -0
- hydpy/models/wland/wland_factors.py +11 -0
- hydpy/models/wland/wland_fixed.py +12 -0
- hydpy/models/wland/wland_fluxes.py +166 -0
- hydpy/models/wland/wland_inputs.py +33 -0
- hydpy/models/wland/wland_masks.py +54 -0
- hydpy/models/wland/wland_model.py +3755 -0
- hydpy/models/wland/wland_outlets.py +11 -0
- hydpy/models/wland/wland_parameters.py +214 -0
- hydpy/models/wland/wland_sequences.py +108 -0
- hydpy/models/wland/wland_solver.py +45 -0
- hydpy/models/wland/wland_states.py +56 -0
- hydpy/models/wland_gd.py +888 -0
- hydpy/models/wland_wag.py +1244 -0
- hydpy/models/wq/__init__.py +14 -0
- hydpy/models/wq/wq_control.py +117 -0
- hydpy/models/wq/wq_derived.py +182 -0
- hydpy/models/wq/wq_factors.py +79 -0
- hydpy/models/wq/wq_fluxes.py +17 -0
- hydpy/models/wq/wq_model.py +1889 -0
- hydpy/models/wq_trapeze.py +168 -0
- hydpy/models/wq_trapeze_strickler.py +101 -0
- hydpy/models/wq_walrus.py +57 -0
- hydpy/py.typed +0 -0
- hydpy/tests/.coveragerc +22 -0
- hydpy/tests/__init__.py +0 -0
- hydpy/tests/check_consistency.py +32 -0
- hydpy/tests/hydpydoctestcustomize.pth +1 -0
- hydpy/tests/hydpydoctestcustomize.py +15 -0
- hydpy/tests/iotesting/__init__.py +0 -0
- hydpy/tests/run_doctests.py +233 -0
- hydpy-6.2.dev1.data/scripts/hyd.py +277 -0
- hydpy-6.2.dev1.dist-info/LICENSE +165 -0
- hydpy-6.2.dev1.dist-info/METADATA +163 -0
- hydpy-6.2.dev1.dist-info/RECORD +890 -0
- hydpy-6.2.dev1.dist-info/WHEEL +5 -0
- hydpy-6.2.dev1.dist-info/licenses_hydpy_installer.txt +42 -0
- hydpy-6.2.dev1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
# pylint: disable=missing-module-docstring
|
|
2
|
+
|
|
3
|
+
# import...
|
|
4
|
+
# ...from site-packages
|
|
5
|
+
import numpy
|
|
6
|
+
|
|
7
|
+
# ...from HydPy
|
|
8
|
+
from hydpy import config
|
|
9
|
+
from hydpy.core import objecttools
|
|
10
|
+
from hydpy.core import parametertools
|
|
11
|
+
from hydpy.core.typingtools import *
|
|
12
|
+
from hydpy.auxs import iuhtools
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class Responses(parametertools.Parameter):
|
|
16
|
+
"""Assigns different ARMA models to different discharge thresholds.
|
|
17
|
+
|
|
18
|
+
Parameter |Responses| is not involved in the actual calculations during the
|
|
19
|
+
simulation run. Instead, it is thought for the intuitive handling of different
|
|
20
|
+
ARMA models. It can be applied as follows.
|
|
21
|
+
|
|
22
|
+
Initially, each new `responses` object is emtpy:
|
|
23
|
+
|
|
24
|
+
>>> from hydpy.models.arma import *
|
|
25
|
+
>>> parameterstep()
|
|
26
|
+
>>> responses
|
|
27
|
+
responses()
|
|
28
|
+
|
|
29
|
+
One can assign ARMA models as attributes to it:
|
|
30
|
+
|
|
31
|
+
>>> responses.th_0_0 = ((1.0, 2.0), (3.0, 4.0, 6.0))
|
|
32
|
+
|
|
33
|
+
`th_0_0` stands for a threshold discharge value of 0.0 m³/s, which the given ARMA
|
|
34
|
+
model corresponds to. For integer discharge values, one can omit the decimal
|
|
35
|
+
digit:
|
|
36
|
+
|
|
37
|
+
>>> responses.th_1 = ((), (7.0,))
|
|
38
|
+
|
|
39
|
+
One can also omit the leading letters, but not the underscore:
|
|
40
|
+
|
|
41
|
+
>>> responses.th_2_5 = ([8.0], range(9, 20))
|
|
42
|
+
|
|
43
|
+
Internally, all threshold keys are brought into the standard format:
|
|
44
|
+
|
|
45
|
+
>>> responses
|
|
46
|
+
responses(th_0_0=((1.0, 2.0),
|
|
47
|
+
(3.0, 4.0, 6.0)),
|
|
48
|
+
th_1_0=((),
|
|
49
|
+
(7.0,)),
|
|
50
|
+
th_2_5=((8.0,),
|
|
51
|
+
(9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0,
|
|
52
|
+
18.0, 19.0)))
|
|
53
|
+
|
|
54
|
+
All ARMA models are available via attribute access and their attribute names are
|
|
55
|
+
made available to function |dir|:
|
|
56
|
+
|
|
57
|
+
>>> "th_1_0" in dir(responses)
|
|
58
|
+
True
|
|
59
|
+
|
|
60
|
+
Note that all iterables containing the AR and MA coefficients are converted to
|
|
61
|
+
tuples, to prevent them from being changed by accident:
|
|
62
|
+
|
|
63
|
+
>>> responses.th_1[1][0]
|
|
64
|
+
7.0
|
|
65
|
+
>>> responses.th_1_0[1][0] = 77.0
|
|
66
|
+
Traceback (most recent call last):
|
|
67
|
+
...
|
|
68
|
+
TypeError: 'tuple' object does not support item assignment
|
|
69
|
+
|
|
70
|
+
Instead, one can delete and or overwrite existing ARMA models:
|
|
71
|
+
|
|
72
|
+
>>> del responses.th_2_5
|
|
73
|
+
>>> responses.th_1 = ((), (77.0,))
|
|
74
|
+
>>> responses
|
|
75
|
+
responses(th_0_0=((1.0, 2.0),
|
|
76
|
+
(3.0, 4.0, 6.0)),
|
|
77
|
+
th_1_0=((),
|
|
78
|
+
(77.0,)))
|
|
79
|
+
|
|
80
|
+
Names that cannot be identified as threshold values result in an exception:
|
|
81
|
+
|
|
82
|
+
>>> responses.test = ((), ())
|
|
83
|
+
Traceback (most recent call last):
|
|
84
|
+
...
|
|
85
|
+
AttributeError: To define different response functions for parameter `responses` \
|
|
86
|
+
of element `?`, one has to pass them as keyword arguments or set them as additional \
|
|
87
|
+
attributes. The used name must meet a specific format (see the documentation for \
|
|
88
|
+
further information). The given name `test` does not meet this format.
|
|
89
|
+
|
|
90
|
+
Suitable get-related attribute exceptions are also implemented:
|
|
91
|
+
|
|
92
|
+
>>> responses.test
|
|
93
|
+
Traceback (most recent call last):
|
|
94
|
+
...
|
|
95
|
+
AttributeError: Parameter `responses` of element `?` does not have an attribute \
|
|
96
|
+
named `test` and the name `test` is also not a valid threshold value identifier.
|
|
97
|
+
|
|
98
|
+
>>> responses._0_1
|
|
99
|
+
Traceback (most recent call last):
|
|
100
|
+
...
|
|
101
|
+
AttributeError: Parameter `responses` of element `?` does not have an attribute \
|
|
102
|
+
named `_0_1` nor an arma model corresponding to a threshold value named `th_0_1`.
|
|
103
|
+
|
|
104
|
+
The above examples show that all AR and MA coefficients are converted to floating
|
|
105
|
+
point values. It this is not possible or something else goes totally wrong during
|
|
106
|
+
the definition of a new ARMA model, errors like the following are raised:
|
|
107
|
+
|
|
108
|
+
>>> responses.th_10 = ()
|
|
109
|
+
Traceback (most recent call last):
|
|
110
|
+
...
|
|
111
|
+
IndexError: While trying to set a new threshold (th_10) coefficient pair for \
|
|
112
|
+
parameter `responses` of element `?`, the following error occurred: tuple index out \
|
|
113
|
+
of range
|
|
114
|
+
|
|
115
|
+
Except for the mentioned conversion to floating point values, there are no
|
|
116
|
+
plausibility checks performed. You have to use other tools to gain plausible
|
|
117
|
+
coefficients. The HydPy framework offers the module |iuhtools| for such purposes.
|
|
118
|
+
|
|
119
|
+
Prepare one instantaneous unit hydrograph (iuh) based on the Translation Diffusion
|
|
120
|
+
Equation and another one based on the Linear Storage Cascade:
|
|
121
|
+
|
|
122
|
+
>>> from hydpy.auxs.iuhtools import TranslationDiffusionEquation
|
|
123
|
+
>>> tde = TranslationDiffusionEquation(d=5.0, u=2.0, x=4.0)
|
|
124
|
+
>>> from hydpy.auxs.iuhtools import LinearStorageCascade
|
|
125
|
+
>>> lsc = LinearStorageCascade(n=2.5, k=1.0)
|
|
126
|
+
|
|
127
|
+
The following line deletes the coefficients defined above and assigns the ARMA
|
|
128
|
+
approximations of both iuh models:
|
|
129
|
+
|
|
130
|
+
>>> responses(lsc, _2=tde)
|
|
131
|
+
|
|
132
|
+
One can change the parameter values of the translation diffusion iuh and assign it
|
|
133
|
+
to the `responses` parameter, without affecting the ARMA coefficients of the first
|
|
134
|
+
tde parametrization:
|
|
135
|
+
|
|
136
|
+
>>> tde.u = 1.0
|
|
137
|
+
>>> responses._5 = tde
|
|
138
|
+
>>> responses
|
|
139
|
+
responses(th_0_0=((1.001744, -0.32693, 0.034286),
|
|
140
|
+
(0.050456, 0.199156, 0.04631, -0.004812, -0.00021)),
|
|
141
|
+
th_2_0=((2.028483, -1.447371, 0.420257, -0.039595, -0.000275),
|
|
142
|
+
(0.165732, 0.061819, -0.377523, 0.215754, -0.024597,
|
|
143
|
+
-0.002684)),
|
|
144
|
+
th_5_0=((3.032315, -3.506645, 1.908546, -0.479333, 0.042839,
|
|
145
|
+
0.00009),
|
|
146
|
+
(0.119252, -0.054959, -0.342744, 0.433585, -0.169102,
|
|
147
|
+
0.014189, 0.001967)))
|
|
148
|
+
|
|
149
|
+
One may have noted the Linear Storage Cascade model was passed as a positional
|
|
150
|
+
argument and was assigned to a treshold value of 0.0 m³/s automatically, which is
|
|
151
|
+
the default value. As each treshold value has to be unique, one can pass only one
|
|
152
|
+
positional argument:
|
|
153
|
+
|
|
154
|
+
>>> responses(tde, lsc)
|
|
155
|
+
Traceback (most recent call last):
|
|
156
|
+
...
|
|
157
|
+
ValueError: For parameter `responses` of element `?` at most one positional \
|
|
158
|
+
argument is allowed, but `2` are given.
|
|
159
|
+
|
|
160
|
+
Checks for the repeated definition of the same threshold values are also performed:
|
|
161
|
+
|
|
162
|
+
>>> responses(tde, _0=lsc, _1=tde, _1_0=lsc)
|
|
163
|
+
Traceback (most recent call last):
|
|
164
|
+
...
|
|
165
|
+
ValueError: For parameter `responses` of element `?` `4` arguments have been \
|
|
166
|
+
given but only `2` response functions could be prepared. Most probably, you defined \
|
|
167
|
+
the same threshold value(s) twice.
|
|
168
|
+
|
|
169
|
+
The number of response functions and the number of the respective AR and MA
|
|
170
|
+
coefficients of a given `responses` parameter can be easily queried:
|
|
171
|
+
|
|
172
|
+
>>> responses(_0=((1.0, 2.0),
|
|
173
|
+
... (3.0, 4.0, 6.0)),
|
|
174
|
+
... _1=((),
|
|
175
|
+
... (7.0,)))
|
|
176
|
+
>>> len(responses)
|
|
177
|
+
2
|
|
178
|
+
>>> responses.ar_orders
|
|
179
|
+
(2, 0)
|
|
180
|
+
>>> responses.ma_orders
|
|
181
|
+
(3, 1)
|
|
182
|
+
|
|
183
|
+
The threshold values and AR coefficients and the MA coefficients can all be queried
|
|
184
|
+
as numpy arrays:
|
|
185
|
+
|
|
186
|
+
>>> from hydpy import print_matrix, print_vector
|
|
187
|
+
>>> print_vector(responses.thresholds)
|
|
188
|
+
0.0, 1.0
|
|
189
|
+
>>> print_matrix(responses.ar_coefs)
|
|
190
|
+
| 1.0, 2.0 |
|
|
191
|
+
| nan, nan |
|
|
192
|
+
>>> print_matrix(responses.ma_coefs)
|
|
193
|
+
| 3.0, 4.0, 6.0 |
|
|
194
|
+
| 7.0, nan, nan |
|
|
195
|
+
|
|
196
|
+
Technical notes:
|
|
197
|
+
|
|
198
|
+
The implementation of this class is much to tricky for subpackage `models`. It
|
|
199
|
+
should be generalized and moved to the framework core later.
|
|
200
|
+
|
|
201
|
+
Furthermore, it would be nice to avoid the `nan` values in the coefficent
|
|
202
|
+
representations. But this would possibly require to define a specialized
|
|
203
|
+
`arrays in list` type in Cython.
|
|
204
|
+
"""
|
|
205
|
+
|
|
206
|
+
_coefs: dict[str, tuple[tuple[float, ...], tuple[float, ...]]]
|
|
207
|
+
|
|
208
|
+
NDIM, TYPE, TIME, SPAN = 0, float, None, (None, None)
|
|
209
|
+
|
|
210
|
+
def __init__(self, subvars: parametertools.SubParameters) -> None:
|
|
211
|
+
with objecttools.ResetAttrFuncs(self):
|
|
212
|
+
super().__init__(subvars)
|
|
213
|
+
self._coefs = {}
|
|
214
|
+
|
|
215
|
+
def __hydpy__connect_variable2subgroup__(self) -> None:
|
|
216
|
+
"""Do nothing due to the reasons explained in the main documentation on class
|
|
217
|
+
|Responses|."""
|
|
218
|
+
|
|
219
|
+
def __call__(self, *args, **kwargs) -> None:
|
|
220
|
+
self._coefs.clear()
|
|
221
|
+
if len(args) > 1:
|
|
222
|
+
raise ValueError(
|
|
223
|
+
f"For parameter {objecttools.elementphrase(self)} at most one "
|
|
224
|
+
f"positional argument is allowed, but `{len(args)}` are given."
|
|
225
|
+
)
|
|
226
|
+
for key, value in kwargs.items():
|
|
227
|
+
setattr(self, key, value)
|
|
228
|
+
if len(args) == 1:
|
|
229
|
+
setattr(self, "th_0_0", args[0])
|
|
230
|
+
if len(args) + len(kwargs) != len(self):
|
|
231
|
+
raise ValueError(
|
|
232
|
+
f"For parameter `{self.name}` of element "
|
|
233
|
+
f"`{objecttools.devicename(self.subpars)}` `{len(args)+len(kwargs)}` "
|
|
234
|
+
f"arguments have been given but only `{len(self)}` response functions "
|
|
235
|
+
f"could be prepared. Most probably, you defined the same threshold "
|
|
236
|
+
f"value(s) twice."
|
|
237
|
+
)
|
|
238
|
+
|
|
239
|
+
def __getattr__(self, key: str) -> tuple[tuple[float, ...], tuple[float, ...]]:
|
|
240
|
+
try:
|
|
241
|
+
std_key = self._standardize_key(key)
|
|
242
|
+
except AttributeError as exc:
|
|
243
|
+
raise AttributeError(
|
|
244
|
+
f"Parameter {objecttools.elementphrase(self)} does not have an "
|
|
245
|
+
f"attribute named `{key}` and the name `{key}` is also not a valid "
|
|
246
|
+
f"threshold value identifier."
|
|
247
|
+
) from exc
|
|
248
|
+
if std_key in self._coefs:
|
|
249
|
+
return self._coefs[std_key]
|
|
250
|
+
raise AttributeError(
|
|
251
|
+
f"Parameter {objecttools.elementphrase(self)} does not have an attribute "
|
|
252
|
+
f"named `{key}` nor an arma model corresponding to a threshold value "
|
|
253
|
+
f"named `{std_key}`."
|
|
254
|
+
)
|
|
255
|
+
|
|
256
|
+
def __setattr__(self, key: str, value: object) -> None:
|
|
257
|
+
if hasattr(self, key) and not key.startswith("th_"):
|
|
258
|
+
object.__setattr__(self, key, value)
|
|
259
|
+
else:
|
|
260
|
+
std_key = self._standardize_key(key)
|
|
261
|
+
try:
|
|
262
|
+
if isinstance(value, iuhtools.IUH):
|
|
263
|
+
self._coefs[std_key] = (
|
|
264
|
+
tuple(value.arma.ar_coefs),
|
|
265
|
+
tuple(value.arma.ma_coefs),
|
|
266
|
+
)
|
|
267
|
+
else:
|
|
268
|
+
value = cast(tuple[Sequence[float], Sequence[float]], value)
|
|
269
|
+
self._coefs[std_key] = (
|
|
270
|
+
tuple(float(v) for v in value[0]),
|
|
271
|
+
tuple(float(v) for v in value[1]),
|
|
272
|
+
)
|
|
273
|
+
except BaseException:
|
|
274
|
+
objecttools.augment_excmessage(
|
|
275
|
+
f"While trying to set a new threshold ({key}) coefficient pair "
|
|
276
|
+
f"for parameter {objecttools.elementphrase(self)}"
|
|
277
|
+
)
|
|
278
|
+
|
|
279
|
+
def __delattr__(self, key: str) -> None:
|
|
280
|
+
std_key = self._standardize_key(key)
|
|
281
|
+
if std_key in self._coefs:
|
|
282
|
+
del self._coefs[std_key]
|
|
283
|
+
|
|
284
|
+
def _standardize_key(self, key: str) -> str:
|
|
285
|
+
try:
|
|
286
|
+
tuple_ = str(key).split("_")
|
|
287
|
+
if (len(tuple_) > 1) and tuple_[-2].isdigit():
|
|
288
|
+
integer = int(tuple_[-2])
|
|
289
|
+
decimal = int(tuple_[-1])
|
|
290
|
+
else:
|
|
291
|
+
integer = int(tuple_[-1])
|
|
292
|
+
decimal = 0
|
|
293
|
+
return "_".join(("th", str(integer), str(decimal)))
|
|
294
|
+
except BaseException as exc:
|
|
295
|
+
raise AttributeError(
|
|
296
|
+
f"To define different response functions for parameter "
|
|
297
|
+
f"{objecttools.elementphrase(self)}, one has to pass them as keyword "
|
|
298
|
+
f"arguments or set them as additional attributes. The used name must "
|
|
299
|
+
f"meet a specific format (see the documentation for further "
|
|
300
|
+
f"information). The given name `{key}` does not meet this format."
|
|
301
|
+
) from exc
|
|
302
|
+
|
|
303
|
+
@property
|
|
304
|
+
def thresholds(self) -> VectorFloat:
|
|
305
|
+
"""Threshold values of the response functions."""
|
|
306
|
+
return numpy.array(
|
|
307
|
+
sorted(self._key2float(key) for key in self._coefs), dtype=config.NP_FLOAT
|
|
308
|
+
)
|
|
309
|
+
|
|
310
|
+
@staticmethod
|
|
311
|
+
def _key2float(key: str) -> float:
|
|
312
|
+
return float(key[3:].replace("_", "."))
|
|
313
|
+
|
|
314
|
+
def _get_orders(self, index: int) -> tuple[int, ...]:
|
|
315
|
+
orders = []
|
|
316
|
+
for _, coefs in self:
|
|
317
|
+
orders.append(len(coefs[index]))
|
|
318
|
+
return tuple(orders)
|
|
319
|
+
|
|
320
|
+
@property
|
|
321
|
+
def ar_orders(self) -> tuple[int, ...]:
|
|
322
|
+
"""Number of AR coefficients of the different response functions."""
|
|
323
|
+
return self._get_orders(0)
|
|
324
|
+
|
|
325
|
+
@property
|
|
326
|
+
def ma_orders(self) -> tuple[int, ...]:
|
|
327
|
+
"""Number of MA coefficients of the different response functions."""
|
|
328
|
+
return self._get_orders(1)
|
|
329
|
+
|
|
330
|
+
def _get_coefs(self, index: int) -> MatrixFloat:
|
|
331
|
+
orders = self._get_orders(index)
|
|
332
|
+
max_orders = max(orders) if orders else 0
|
|
333
|
+
coefs = numpy.full((len(self), max_orders), numpy.nan)
|
|
334
|
+
for idx, (order, (_, coef)) in enumerate(zip(orders, self)):
|
|
335
|
+
coefs[idx, :order] = coef[index]
|
|
336
|
+
return coefs
|
|
337
|
+
|
|
338
|
+
@property
|
|
339
|
+
def ar_coefs(self) -> MatrixFloat:
|
|
340
|
+
"""AR coefficients of the different response functions.
|
|
341
|
+
|
|
342
|
+
The first row contains the AR coefficients related to the the smallest
|
|
343
|
+
threshold value, the last row contains the AR coefficients related to
|
|
344
|
+
the highest threshold value. The number of columns depend on the
|
|
345
|
+
highest number of AR coefficients among all response functions."""
|
|
346
|
+
return self._get_coefs(0)
|
|
347
|
+
|
|
348
|
+
@property
|
|
349
|
+
def ma_coefs(self) -> MatrixFloat:
|
|
350
|
+
"""AR coefficients of the different response functions.
|
|
351
|
+
|
|
352
|
+
The first row contains the MA coefficients related to the the smallest
|
|
353
|
+
threshold value, the last row contains the AR coefficients related to
|
|
354
|
+
the highest threshold value. The number of columns depend on the
|
|
355
|
+
highest number of MA coefficients among all response functions."""
|
|
356
|
+
return self._get_coefs(1)
|
|
357
|
+
|
|
358
|
+
def __len__(self) -> int:
|
|
359
|
+
return len(self._coefs)
|
|
360
|
+
|
|
361
|
+
def __bool__(self) -> bool:
|
|
362
|
+
return len(self._coefs) > 0
|
|
363
|
+
|
|
364
|
+
def __iter__(
|
|
365
|
+
self,
|
|
366
|
+
) -> Iterator[tuple[str, tuple[tuple[float, ...], tuple[float, ...]]]]:
|
|
367
|
+
for key in sorted(self._coefs.keys(), key=self._key2float):
|
|
368
|
+
yield key, self._coefs[key]
|
|
369
|
+
|
|
370
|
+
def __repr__(self) -> str:
|
|
371
|
+
prefix = f"{self.name}("
|
|
372
|
+
blanks = " " * len(prefix)
|
|
373
|
+
if self:
|
|
374
|
+
lines = []
|
|
375
|
+
for idx, (th, coefs) in enumerate(self):
|
|
376
|
+
subprefix = f"{prefix}{th}=" if idx == 0 else f"{blanks}{th}="
|
|
377
|
+
lines.append(objecttools.assignrepr_tuple2(coefs, subprefix, 75) + ",")
|
|
378
|
+
lines[-1] = lines[-1][:-1] + ")"
|
|
379
|
+
return "\n".join(lines)
|
|
380
|
+
return f"{prefix})"
|
|
381
|
+
|
|
382
|
+
def __dir__(self) -> list[str]:
|
|
383
|
+
return cast(list[str], super().__dir__()) + list(self._coefs.keys())
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# pylint: disable=missing-module-docstring
|
|
2
|
+
|
|
3
|
+
# import...
|
|
4
|
+
# ...from site-packages
|
|
5
|
+
import numpy
|
|
6
|
+
|
|
7
|
+
# ...from HydPy
|
|
8
|
+
from hydpy.core import parametertools
|
|
9
|
+
from hydpy.models.arma import arma_control
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Nmb(parametertools.Parameter):
|
|
13
|
+
"""Number of response functions [-]."""
|
|
14
|
+
|
|
15
|
+
NDIM, TYPE, TIME, SPAN = 0, int, None, (0, None)
|
|
16
|
+
|
|
17
|
+
CONTROLPARAMETERS = (arma_control.Responses,)
|
|
18
|
+
|
|
19
|
+
def update(self):
|
|
20
|
+
"""Determine the number of response functions.
|
|
21
|
+
|
|
22
|
+
>>> from hydpy.models.arma import *
|
|
23
|
+
>>> parameterstep("1d")
|
|
24
|
+
>>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.)))
|
|
25
|
+
>>> derived.nmb.update()
|
|
26
|
+
>>> derived.nmb
|
|
27
|
+
nmb(2)
|
|
28
|
+
|
|
29
|
+
Note that updating parameter `nmb` sets the shape of the flux
|
|
30
|
+
sequences |QPIn|, |QPOut|, |QMA|, and |QAR| automatically.
|
|
31
|
+
|
|
32
|
+
>>> fluxes.qpin
|
|
33
|
+
qpin(nan, nan)
|
|
34
|
+
>>> fluxes.qpout
|
|
35
|
+
qpout(nan, nan)
|
|
36
|
+
>>> fluxes.qma
|
|
37
|
+
qma(nan, nan)
|
|
38
|
+
>>> fluxes.qar
|
|
39
|
+
qar(nan, nan)
|
|
40
|
+
"""
|
|
41
|
+
pars = self.subpars.pars
|
|
42
|
+
responses = pars.control.responses
|
|
43
|
+
fluxes = pars.model.sequences.fluxes
|
|
44
|
+
self.value = len(responses)
|
|
45
|
+
fluxes.qpin.shape = self.value
|
|
46
|
+
fluxes.qpout.shape = self.value
|
|
47
|
+
fluxes.qma.shape = self.value
|
|
48
|
+
fluxes.qar.shape = self.value
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class MaxQ(parametertools.Parameter):
|
|
52
|
+
"""Maximum discharge values of the respective ARMA models [m³/s]."""
|
|
53
|
+
|
|
54
|
+
NDIM, TYPE, TIME, SPAN = 1, float, None, (0, None)
|
|
55
|
+
|
|
56
|
+
CONTROLPARAMETERS = (arma_control.Responses,)
|
|
57
|
+
|
|
58
|
+
def update(self):
|
|
59
|
+
"""Determine the maximum discharge values.
|
|
60
|
+
|
|
61
|
+
>>> from hydpy.models.arma import *
|
|
62
|
+
>>> parameterstep("1d")
|
|
63
|
+
>>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.)))
|
|
64
|
+
>>> derived.maxq.update()
|
|
65
|
+
>>> derived.maxq
|
|
66
|
+
maxq(0.0, 3.0)
|
|
67
|
+
"""
|
|
68
|
+
responses = self.subpars.pars.control.responses
|
|
69
|
+
self.shape = len(responses)
|
|
70
|
+
self.value = responses.thresholds
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
class DiffQ(parametertools.Parameter):
|
|
74
|
+
"""Differences between the values of |MaxQ| [m³/s]."""
|
|
75
|
+
|
|
76
|
+
NDIM, TYPE, TIME, SPAN = 1, float, None, (0, None)
|
|
77
|
+
|
|
78
|
+
CONTROLPARAMETERS = (arma_control.Responses,)
|
|
79
|
+
|
|
80
|
+
def update(self):
|
|
81
|
+
"""Determine the "max Q deltas".
|
|
82
|
+
|
|
83
|
+
>>> from hydpy.models.arma import *
|
|
84
|
+
>>> parameterstep("1d")
|
|
85
|
+
>>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.)))
|
|
86
|
+
>>> derived.diffq.update()
|
|
87
|
+
>>> derived.diffq
|
|
88
|
+
diffq(3.0)
|
|
89
|
+
>>> responses(((1., 2.), (1.,)))
|
|
90
|
+
>>> derived.diffq.update()
|
|
91
|
+
>>> derived.diffq
|
|
92
|
+
diffq([])
|
|
93
|
+
"""
|
|
94
|
+
responses = self.subpars.pars.control.responses
|
|
95
|
+
self.shape = len(responses) - 1
|
|
96
|
+
self.value = numpy.diff(responses.thresholds)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
class AR_Order(parametertools.Parameter):
|
|
100
|
+
"""Number of AR coefficients of the different responses [-]."""
|
|
101
|
+
|
|
102
|
+
NDIM, TYPE, TIME, SPAN = 1, int, None, (0, None)
|
|
103
|
+
|
|
104
|
+
CONTROLPARAMETERS = (arma_control.Responses,)
|
|
105
|
+
|
|
106
|
+
def update(self):
|
|
107
|
+
"""Determine the total number of AR coefficients.
|
|
108
|
+
|
|
109
|
+
>>> from hydpy.models.arma import *
|
|
110
|
+
>>> parameterstep("1d")
|
|
111
|
+
>>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.)))
|
|
112
|
+
>>> derived.ar_order.update()
|
|
113
|
+
>>> derived.ar_order
|
|
114
|
+
ar_order(2, 1)
|
|
115
|
+
"""
|
|
116
|
+
responses = self.subpars.pars.control.responses
|
|
117
|
+
self.shape = len(responses)
|
|
118
|
+
self.value = responses.ar_orders
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class MA_Order(parametertools.Parameter):
|
|
122
|
+
"""Number of MA coefficients of the different responses [-]."""
|
|
123
|
+
|
|
124
|
+
NDIM, TYPE, TIME, SPAN = 1, int, None, (0, None)
|
|
125
|
+
|
|
126
|
+
CONTROLPARAMETERS = (arma_control.Responses,)
|
|
127
|
+
|
|
128
|
+
def update(self):
|
|
129
|
+
"""Determine the total number of MA coefficients.
|
|
130
|
+
|
|
131
|
+
>>> from hydpy.models.arma import *
|
|
132
|
+
>>> parameterstep("1d")
|
|
133
|
+
>>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.)))
|
|
134
|
+
>>> derived.ma_order.update()
|
|
135
|
+
>>> derived.ma_order
|
|
136
|
+
ma_order(1, 3)
|
|
137
|
+
"""
|
|
138
|
+
responses = self.subpars.pars.control.responses
|
|
139
|
+
self.shape = len(responses)
|
|
140
|
+
self.value = responses.ma_orders
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
class AR_Coefs(parametertools.Parameter):
|
|
144
|
+
"""AR coefficients of the different responses [-]."""
|
|
145
|
+
|
|
146
|
+
NDIM, TYPE, TIME, SPAN = 2, float, None, (None, None)
|
|
147
|
+
|
|
148
|
+
CONTROLPARAMETERS = (arma_control.Responses,)
|
|
149
|
+
|
|
150
|
+
def update(self):
|
|
151
|
+
"""Determine all AR coefficients.
|
|
152
|
+
|
|
153
|
+
>>> from hydpy.models.arma import *
|
|
154
|
+
>>> parameterstep("1d")
|
|
155
|
+
>>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.)))
|
|
156
|
+
>>> derived.ar_coefs.update()
|
|
157
|
+
>>> derived.ar_coefs
|
|
158
|
+
ar_coefs([[1.0, 2.0],
|
|
159
|
+
[1.0, nan]])
|
|
160
|
+
|
|
161
|
+
Note that updating parameter `ar_coefs` sets the shape of the log
|
|
162
|
+
sequence |LogOut| automatically.
|
|
163
|
+
|
|
164
|
+
>>> logs.logout
|
|
165
|
+
logout([[nan, nan],
|
|
166
|
+
[nan, nan]])
|
|
167
|
+
"""
|
|
168
|
+
pars = self.subpars.pars
|
|
169
|
+
coefs = pars.control.responses.ar_coefs
|
|
170
|
+
self.shape = coefs.shape
|
|
171
|
+
self.value = coefs
|
|
172
|
+
pars.model.sequences.logs.logout.shape = self.shape
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
class MA_Coefs(parametertools.Parameter):
|
|
176
|
+
"""MA coefficients of the different responses [-]."""
|
|
177
|
+
|
|
178
|
+
NDIM, TYPE, TIME, SPAN = 2, float, None, (None, None)
|
|
179
|
+
|
|
180
|
+
CONTROLPARAMETERS = (arma_control.Responses,)
|
|
181
|
+
|
|
182
|
+
def update(self):
|
|
183
|
+
"""Determine all MA coefficients.
|
|
184
|
+
|
|
185
|
+
>>> from hydpy.models.arma import *
|
|
186
|
+
>>> parameterstep("1d")
|
|
187
|
+
>>> responses(((1., 2.), (1.,)), th_3=((1.,), (1., 2., 3.)))
|
|
188
|
+
>>> derived.ma_coefs.update()
|
|
189
|
+
>>> derived.ma_coefs
|
|
190
|
+
ma_coefs([[1.0, nan, nan],
|
|
191
|
+
[1.0, 2.0, 3.0]])
|
|
192
|
+
|
|
193
|
+
Note that updating parameter `ar_coefs` sets the shape of the log
|
|
194
|
+
sequence |LogIn| automatically.
|
|
195
|
+
|
|
196
|
+
>>> logs.login
|
|
197
|
+
login([[nan, nan, nan],
|
|
198
|
+
[nan, nan, nan]])
|
|
199
|
+
"""
|
|
200
|
+
pars = self.subpars.pars
|
|
201
|
+
coefs = pars.control.responses.ma_coefs
|
|
202
|
+
self.shape = coefs.shape
|
|
203
|
+
self.value = coefs
|
|
204
|
+
pars.model.sequences.logs.login.shape = self.shape
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# pylint: disable=missing-module-docstring
|
|
2
|
+
|
|
3
|
+
# import...
|
|
4
|
+
# ...from HydPy
|
|
5
|
+
from hydpy.core import sequencetools
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class QIn(sequencetools.FluxSequence):
|
|
9
|
+
"""Total inflow [m³/s]."""
|
|
10
|
+
|
|
11
|
+
NDIM, NUMERIC, SPAN = 0, False, (0.0, None)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class QPIn(sequencetools.FluxSequence):
|
|
15
|
+
"""Inflow portions corresponding to the different thresholds [m³/s]."""
|
|
16
|
+
|
|
17
|
+
NDIM, NUMERIC, SPAN = 1, False, (0.0, None)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class QMA(sequencetools.FluxSequence):
|
|
21
|
+
"""MA result for the different thresholds [m³/s]."""
|
|
22
|
+
|
|
23
|
+
NDIM, NUMERIC, SPAN = 1, False, (0.0, None)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class QAR(sequencetools.FluxSequence):
|
|
27
|
+
"""AR result for the different thresholds [m³/s]."""
|
|
28
|
+
|
|
29
|
+
NDIM, NUMERIC, SPAN = 1, False, (0.0, None)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class QPOut(sequencetools.FluxSequence):
|
|
33
|
+
"""Outflow portions corresponding to the different thresholds [m³/s]."""
|
|
34
|
+
|
|
35
|
+
NDIM, NUMERIC, SPAN = 1, False, (0.0, None)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class QOut(sequencetools.FluxSequence):
|
|
39
|
+
"""Total outflow [m³/s]."""
|
|
40
|
+
|
|
41
|
+
NDIM, NUMERIC, SPAN = 0, False, (0.0, None)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# pylint: disable=missing-module-docstring
|
|
2
|
+
|
|
3
|
+
# import...
|
|
4
|
+
# ...from HydPy
|
|
5
|
+
from hydpy.core import sequencetools
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class LogIn(sequencetools.LogSequence):
|
|
9
|
+
"""The recent and the past inflow portions for the application of the
|
|
10
|
+
different MA processes [m³/s]."""
|
|
11
|
+
|
|
12
|
+
NDIM, NUMERIC, SPAN = 2, False, (None, None)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class LogOut(sequencetools.LogSequence):
|
|
16
|
+
"""The past outflow portions for the application of the
|
|
17
|
+
different AR processes [m³/s]."""
|
|
18
|
+
|
|
19
|
+
NDIM, NUMERIC, SPAN = 2, False, (None, None)
|