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,7 @@
|
|
|
1
|
+
"""Better remove the "USEAUTODOC" option soon..."""
|
|
2
|
+
|
|
3
|
+
with open("hydpy/config.py", encoding="utf-8") as configfile:
|
|
4
|
+
text = configfile.read()
|
|
5
|
+
text = text.replace("USEAUTODOC = False", "USEAUTODOC = True")
|
|
6
|
+
with open("hydpy/config.py", "w", encoding="utf-8") as configfile:
|
|
7
|
+
configfile.write(text)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"""Improve the headers and the in-text tables of content for all base and application
|
|
2
|
+
models."""
|
|
3
|
+
|
|
4
|
+
import importlib
|
|
5
|
+
import os
|
|
6
|
+
|
|
7
|
+
import click
|
|
8
|
+
|
|
9
|
+
from hydpy.core import modeltools
|
|
10
|
+
from hydpy.exe import xmltools
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def _replace_toc(dirpath: str, name: str, docname: modeltools.DocName) -> None:
|
|
14
|
+
html = os.path.join(dirpath, f"{docname.family}.html")
|
|
15
|
+
with open(html, encoding="utf-8") as file_:
|
|
16
|
+
text = file_.read()
|
|
17
|
+
template = '"toctree-l1"><a class="reference internal" href="%s.html">%s</a><'
|
|
18
|
+
old = template % (name, name)
|
|
19
|
+
new = template % (name, f"{name} » {docname.complete}")
|
|
20
|
+
text = text.replace(old, new)
|
|
21
|
+
with open(html, "w", encoding="utf-8") as file_:
|
|
22
|
+
file_.write(text)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def _replace_header(dirpath: str, name: str, docname: modeltools.DocName) -> None:
|
|
26
|
+
html = os.path.join(dirpath, f"{name}.html")
|
|
27
|
+
with open(html, encoding="utf-8") as file_:
|
|
28
|
+
text = file_.read()
|
|
29
|
+
template = '<h1>%s<a class="headerlink"'
|
|
30
|
+
text = text.replace(template % name, template % docname.complete)
|
|
31
|
+
with open(html, "w", encoding="utf-8") as file_:
|
|
32
|
+
file_.write(text)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
@click.command()
|
|
36
|
+
@click.option(
|
|
37
|
+
"-d",
|
|
38
|
+
"--dirpath",
|
|
39
|
+
type=str,
|
|
40
|
+
required=False,
|
|
41
|
+
default="auto/build",
|
|
42
|
+
help="Path of the directory containing the HTML files.",
|
|
43
|
+
)
|
|
44
|
+
def _polish_html(dirpath: str) -> None:
|
|
45
|
+
for name in xmltools.XSDWriter.get_basemodelnames():
|
|
46
|
+
module = importlib.import_module(f"hydpy.models.{name}.{name}_model")
|
|
47
|
+
_replace_header(dirpath=dirpath, name=name, docname=module.Model.DOCNAME)
|
|
48
|
+
_replace_toc(dirpath=dirpath, name=name, docname=module.Model.DOCNAME)
|
|
49
|
+
|
|
50
|
+
for name in xmltools.XSDWriter.get_applicationmodelnames():
|
|
51
|
+
module = importlib.import_module(f"hydpy.models.{name}")
|
|
52
|
+
_replace_header(dirpath=dirpath, name=name, docname=module.Model.DOCNAME)
|
|
53
|
+
_replace_toc(dirpath=dirpath, name=name, docname=module.Model.DOCNAME)
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
if __name__ == "__main__":
|
|
57
|
+
_polish_html() # pylint: disable=no-value-for-parameter
|
hydpy/docs/prepare.py
ADDED
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"""Move, create and modify documentation files before applying `Sphinx`.
|
|
2
|
+
|
|
3
|
+
Sphinx is to be executed in a freshly created folder named `auto`. If this folder
|
|
4
|
+
exists already, `prepare` removes it first and builds it from scratch afterwards, in
|
|
5
|
+
order to assure that no old documentation files find their way into the html
|
|
6
|
+
documentation.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
# import...
|
|
10
|
+
# ...from standard library
|
|
11
|
+
import datetime
|
|
12
|
+
import importlib
|
|
13
|
+
import inspect
|
|
14
|
+
import os
|
|
15
|
+
import shutil
|
|
16
|
+
import sys
|
|
17
|
+
import textwrap
|
|
18
|
+
import zipfile
|
|
19
|
+
|
|
20
|
+
os.chdir(os.path.dirname(os.path.abspath(__file__)))
|
|
21
|
+
sys.path.insert(0, os.path.abspath(os.path.join("..", "..")))
|
|
22
|
+
# pylint: disable=wrong-import-position
|
|
23
|
+
# (changing the path is necessary when calling `prepare.py` from the command line)
|
|
24
|
+
# ...from HydPy
|
|
25
|
+
import hydpy
|
|
26
|
+
from hydpy import auxs
|
|
27
|
+
from hydpy import core
|
|
28
|
+
from hydpy import cythons
|
|
29
|
+
from hydpy import data
|
|
30
|
+
from hydpy import docs
|
|
31
|
+
from hydpy import exe
|
|
32
|
+
from hydpy import interfaces
|
|
33
|
+
from hydpy import models
|
|
34
|
+
from hydpy.core import autodoctools
|
|
35
|
+
from hydpy.core import masktools
|
|
36
|
+
from hydpy.core import modeltools
|
|
37
|
+
from hydpy.core import parametertools
|
|
38
|
+
from hydpy.core import sequencetools
|
|
39
|
+
from hydpy.core import variabletools
|
|
40
|
+
from hydpy.docs import autofigs
|
|
41
|
+
from hydpy.docs import bib
|
|
42
|
+
from hydpy.docs import figs
|
|
43
|
+
from hydpy.docs import sphinx
|
|
44
|
+
from hydpy.docs import rst
|
|
45
|
+
from hydpy.core.typingtools import *
|
|
46
|
+
|
|
47
|
+
# Prepare folder `auto`.
|
|
48
|
+
docspath: str = docs.__path__[0]
|
|
49
|
+
AUTOPATH = os.path.join(docspath, "auto")
|
|
50
|
+
if os.path.exists(AUTOPATH):
|
|
51
|
+
shutil.rmtree(AUTOPATH)
|
|
52
|
+
os.makedirs(AUTOPATH)
|
|
53
|
+
shutil.copytree(os.path.join(docspath, "html_"), os.path.join(AUTOPATH, "html_"))
|
|
54
|
+
|
|
55
|
+
# Import all base and application models, to make sure all substituters are up-to-date.
|
|
56
|
+
# (I am not sure if this is really necessary but it does not hurt.)
|
|
57
|
+
modelspath: str = models.__path__[0]
|
|
58
|
+
for filename in sorted(os.listdir(modelspath)):
|
|
59
|
+
if not filename.startswith("_"):
|
|
60
|
+
filename = filename.split(".")[0]
|
|
61
|
+
importlib.import_module(f"{models.__name__}.{filename}")
|
|
62
|
+
hydpy.substituter.update_slaves()
|
|
63
|
+
|
|
64
|
+
# Write one rst file for each module (including the ones defining application models)
|
|
65
|
+
# and each base model defining a base model. Each rst file should contain commands to
|
|
66
|
+
# trigger the autodoc mechanism of Sphinx as well as the substitution replacement
|
|
67
|
+
# commands relevant for the respective module or package.
|
|
68
|
+
path2source = {}
|
|
69
|
+
for subpackage in (auxs, core, cythons, exe, interfaces, models):
|
|
70
|
+
subpackagepath: str = subpackage.__path__[0]
|
|
71
|
+
filenames = sorted(os.listdir(subpackagepath))
|
|
72
|
+
substituter = hydpy.substituter
|
|
73
|
+
for filename in filenames:
|
|
74
|
+
is_module = (filename.endswith("py") or filename.endswith("pyx")) and (
|
|
75
|
+
filename != "__init__.py"
|
|
76
|
+
)
|
|
77
|
+
is_package = (
|
|
78
|
+
(subpackage is models)
|
|
79
|
+
and ("." not in filename)
|
|
80
|
+
and (filename not in ("build", "__pycache__"))
|
|
81
|
+
)
|
|
82
|
+
assert not (is_module and is_package)
|
|
83
|
+
source: str | None = None
|
|
84
|
+
if is_module:
|
|
85
|
+
path = os.path.join(subpackagepath, filename)
|
|
86
|
+
with open(path, encoding="utf-8") as file_:
|
|
87
|
+
sources = [file_.read()]
|
|
88
|
+
module = importlib.import_module(
|
|
89
|
+
f'{subpackage.__name__}.{filename.partition(".")[0]}'
|
|
90
|
+
)
|
|
91
|
+
for member in getattr(module, "__dict__", {}).values():
|
|
92
|
+
if inspect.isclass(member) and issubclass(
|
|
93
|
+
member,
|
|
94
|
+
(
|
|
95
|
+
modeltools.Model,
|
|
96
|
+
modeltools.Method,
|
|
97
|
+
parametertools.SubParameters,
|
|
98
|
+
sequencetools.SubSequences,
|
|
99
|
+
masktools.Masks,
|
|
100
|
+
),
|
|
101
|
+
):
|
|
102
|
+
sources.append(member.__doc__ if member.__doc__ else "")
|
|
103
|
+
source = "\n".join(sources)
|
|
104
|
+
elif is_package:
|
|
105
|
+
sources = []
|
|
106
|
+
path = os.path.join(subpackagepath, filename)
|
|
107
|
+
for subfilename in sorted(os.listdir(path)):
|
|
108
|
+
if subfilename.endswith(".py"):
|
|
109
|
+
subpath = os.path.join(path, subfilename)
|
|
110
|
+
with open(subpath, encoding="utf-8") as file_:
|
|
111
|
+
sources.append(file_.read())
|
|
112
|
+
source = "\n".join(sources)
|
|
113
|
+
modulename = f'{subpackage.__name__}.{filename.partition(".")[0]}'
|
|
114
|
+
module = importlib.import_module(modulename)
|
|
115
|
+
filename = filename.partition(".")[0]
|
|
116
|
+
if (is_module and (subpackage is models)) or is_package:
|
|
117
|
+
module = importlib.import_module(f"{models.__name__}.{filename}")
|
|
118
|
+
substituter = module.substituter
|
|
119
|
+
if is_module or is_package:
|
|
120
|
+
_exc_mem = autodoctools.excluded_members.copy()
|
|
121
|
+
if subpackage is models:
|
|
122
|
+
for member in vars(module).values():
|
|
123
|
+
if (
|
|
124
|
+
inspect.isclass(member)
|
|
125
|
+
and issubclass(member, variabletools.SubVariables)
|
|
126
|
+
and not member.CLASSES
|
|
127
|
+
):
|
|
128
|
+
_exc_mem.add(member.__name__)
|
|
129
|
+
excludemembers = ", ".join(_exc_mem)
|
|
130
|
+
lines = [
|
|
131
|
+
"",
|
|
132
|
+
f".. _{filename}:",
|
|
133
|
+
"",
|
|
134
|
+
filename,
|
|
135
|
+
"=" * len(filename),
|
|
136
|
+
"",
|
|
137
|
+
f'.. automodule:: {".".join((subpackage.__name__, filename))}',
|
|
138
|
+
" :members:",
|
|
139
|
+
" :show-inheritance:",
|
|
140
|
+
f" :exclude-members: {excludemembers}",
|
|
141
|
+
"",
|
|
142
|
+
]
|
|
143
|
+
path = os.path.join(AUTOPATH, filename + ".rst")
|
|
144
|
+
with open(path, "w", encoding="utf-8") as file_:
|
|
145
|
+
assert source is not None
|
|
146
|
+
path2source[path] = source
|
|
147
|
+
file_.write(substituter.get_commands(source))
|
|
148
|
+
file_.write("\n")
|
|
149
|
+
file_.write("\n".join(lines))
|
|
150
|
+
|
|
151
|
+
# Copy additional files into folder `auto` and, for the rst files, add the
|
|
152
|
+
# required substitution replacement commands.
|
|
153
|
+
for subpackage in (autofigs, bib, figs, sphinx, rst):
|
|
154
|
+
subpackagepath = subpackage.__path__[0]
|
|
155
|
+
for filename in sorted(os.listdir(subpackagepath)):
|
|
156
|
+
path_in = os.path.join(subpackagepath, filename)
|
|
157
|
+
path_out = os.path.join(AUTOPATH, filename)
|
|
158
|
+
if os.path.isfile(path_in) and (filename != "__init__.py"):
|
|
159
|
+
if subpackage is rst:
|
|
160
|
+
with open(path_in, encoding="utf-8") as file_:
|
|
161
|
+
orig = file_.read()
|
|
162
|
+
with open(path_out, "w", encoding="utf-8") as file_:
|
|
163
|
+
source = path2source.get(path_out, "")
|
|
164
|
+
source = "\n".join([source, orig])
|
|
165
|
+
file_.write(hydpy.substituter.get_commands(source))
|
|
166
|
+
file_.write("\n")
|
|
167
|
+
file_.write(orig)
|
|
168
|
+
elif filename != "build":
|
|
169
|
+
shutil.copy(path_in, path_out)
|
|
170
|
+
|
|
171
|
+
# copy _themes path from sphinx subpackage into folder `auto`
|
|
172
|
+
# _themes folder contains the modified sphinx html themes
|
|
173
|
+
themespath = os.path.join(sphinx.__path__[0], "_themes")
|
|
174
|
+
themespathdest = os.path.join(AUTOPATH, "_themes")
|
|
175
|
+
if not os.path.isdir(themespath):
|
|
176
|
+
raise RuntimeError("Cannot find path `_themes` in sphinx subpackage")
|
|
177
|
+
shutil.copytree(themespath, themespathdest)
|
|
178
|
+
|
|
179
|
+
# Collect all example projects in individual zip archives
|
|
180
|
+
|
|
181
|
+
header = (
|
|
182
|
+
f"This README describes a Hydpy {hydpy.__version__} example project.\n"
|
|
183
|
+
f"© 2013-{datetime.datetime.now().year} HydPy Developers\n"
|
|
184
|
+
f"https://github.com/hydpy-dev/hydpy/\n"
|
|
185
|
+
)
|
|
186
|
+
|
|
187
|
+
filepath = os.path.join(rst.__path__[0], "example_projects.rst")
|
|
188
|
+
with open(filepath, encoding="utf-8") as rstfile:
|
|
189
|
+
descriptions = rstfile.read()
|
|
190
|
+
|
|
191
|
+
for line in descriptions.splitlines():
|
|
192
|
+
if line.startswith(".. _example_projects:"):
|
|
193
|
+
break
|
|
194
|
+
if line.startswith(".. _`"):
|
|
195
|
+
assert line.count("`: ") == 1
|
|
196
|
+
link, url = line[5:].split("`: ")
|
|
197
|
+
descriptions = descriptions.replace(f"`{link}`_", f"{link} [{url}]")
|
|
198
|
+
|
|
199
|
+
mark2 = "Click :download:"
|
|
200
|
+
datadirpath = data.__path__[0]
|
|
201
|
+
for projectname in os.listdir(datadirpath):
|
|
202
|
+
projectpath = os.path.join(datadirpath, projectname)
|
|
203
|
+
if os.path.isdir(projectpath) and not projectname.startswith("_"):
|
|
204
|
+
zipfilename = os.path.join(AUTOPATH, f"{projectname}.zip")
|
|
205
|
+
with zipfile.ZipFile(zipfilename, "w") as zipfile_:
|
|
206
|
+
for subdirpath, _, filenames in os.walk(projectpath):
|
|
207
|
+
zipdirpath = os.path.relpath(subdirpath, datadirpath)
|
|
208
|
+
for filename in filenames:
|
|
209
|
+
zipfile_.write(
|
|
210
|
+
filename=os.path.join(subdirpath, filename),
|
|
211
|
+
arcname=os.path.join(zipdirpath, filename),
|
|
212
|
+
)
|
|
213
|
+
mark1 = f".. _{projectname}:\n"
|
|
214
|
+
assert mark1 in descriptions, f"{mark1} not in project description"
|
|
215
|
+
description = descriptions.split(mark1)[1]
|
|
216
|
+
assert mark2 in descriptions, f"{mark2} not in project description"
|
|
217
|
+
description = description.split(mark2)[0]
|
|
218
|
+
paragraphs = (
|
|
219
|
+
"\n".join(textwrap.wrap(text=p, width=90, break_long_words=False))
|
|
220
|
+
for p in description.split("\n\n")[1:]
|
|
221
|
+
)
|
|
222
|
+
description = "\n\n".join(paragraphs)
|
|
223
|
+
description = "\n".join([header, description])
|
|
224
|
+
zipfile_.writestr(zinfo_or_arcname="README.txt", data=description)
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"""Push the `result` folder prepared by the `combine_docversions.py` script to
|
|
2
|
+
Github-Pages.
|
|
3
|
+
|
|
4
|
+
Only pushes when the current branch is among the relevant branches listed in
|
|
5
|
+
`relevant_branches.txt`.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import os
|
|
9
|
+
import sys
|
|
10
|
+
|
|
11
|
+
import ghp_import
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def print_(*message: str) -> None:
|
|
15
|
+
"""Print immediately."""
|
|
16
|
+
print(*message)
|
|
17
|
+
sys.stdout.flush()
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def main() -> None:
|
|
21
|
+
"""Push when appropriate."""
|
|
22
|
+
|
|
23
|
+
if (token := os.environ.get("GH_TOKEN")) is not None:
|
|
24
|
+
repo = os.environ["TRAVIS_REPO_SLUG"]
|
|
25
|
+
remote = f"https://{token}@github.com/{repo}.git"
|
|
26
|
+
actual_branch = os.environ["TRAVIS_BRANCH"]
|
|
27
|
+
|
|
28
|
+
with open("relevant_branches.txt", encoding="utf-8") as file_:
|
|
29
|
+
lines = file_.readlines()[1:]
|
|
30
|
+
|
|
31
|
+
for line in lines:
|
|
32
|
+
try:
|
|
33
|
+
branch = line.split()[0]
|
|
34
|
+
except IndexError:
|
|
35
|
+
continue
|
|
36
|
+
if branch == actual_branch:
|
|
37
|
+
print_("Push to GitHub-Pages:")
|
|
38
|
+
ghp_import.ghp_import(
|
|
39
|
+
srcdir="result",
|
|
40
|
+
remote=remote,
|
|
41
|
+
branch="gh-pages",
|
|
42
|
+
mesg="update documentation",
|
|
43
|
+
push=True,
|
|
44
|
+
prefix=None,
|
|
45
|
+
force=True,
|
|
46
|
+
nojekyll=True,
|
|
47
|
+
)
|
|
48
|
+
break
|
|
49
|
+
|
|
50
|
+
print_("No push to GitHub-Pages.")
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
main()
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
|
|
2
|
+
.. _HydPy-ARMA:
|
|
3
|
+
|
|
4
|
+
HydPy-ARMA
|
|
5
|
+
==========
|
|
6
|
+
|
|
7
|
+
Many hydrologists use linear system approaches to solve flood routing problems
|
|
8
|
+
approximately. Famous examples are the Unit Hydrograph approach and the Muskingum
|
|
9
|
+
flood routing method. One can understand the Unit Hydrograph approach as a moving
|
|
10
|
+
average process (MA), and the Muskingum method as a mixed autoregressive and moving
|
|
11
|
+
average process (ARMA). Unit Hydrographs consist of an arbitrary number of MA
|
|
12
|
+
coefficients. The Muskingum method defines three parameters, exactly two MA
|
|
13
|
+
coefficients associated with the "new" and the "old" flow into the channel, and one AR
|
|
14
|
+
coefficient associated with the "old" flow out of the channel.
|
|
15
|
+
|
|
16
|
+
The HydPy-ARMA base model supports implementing such methods in a generalised manner.
|
|
17
|
+
Consider using one of its application models when you require a robust, computationally
|
|
18
|
+
efficient, easily calibratable approach. However, taking nonlinear rating curves or
|
|
19
|
+
backwater effects into account can be cumbersome or even impossible.
|
|
20
|
+
|
|
21
|
+
Available models:
|
|
22
|
+
|
|
23
|
+
.. toctree::
|
|
24
|
+
:maxdepth: 1
|
|
25
|
+
|
|
26
|
+
arma
|
|
27
|
+
arma_rimorido
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
.. _HydPy-Conv:
|
|
2
|
+
|
|
3
|
+
HydPy-Conv
|
|
4
|
+
==========
|
|
5
|
+
|
|
6
|
+
HydPy-Conv models are no real hydrological models. Instead, they serve as converters
|
|
7
|
+
that allow connecting different kinds of models providing output and requiring input
|
|
8
|
+
that does not fit immediately. The most typical use case is interpolating data, which
|
|
9
|
+
is implemented by the application model |conv_nn| using the nearest-neighbour, by
|
|
10
|
+
application model |conv_idw| using the inverse distance weighted approach, and by
|
|
11
|
+
application model |conv_idw_ed| combining inverse distance weighting with linear
|
|
12
|
+
regression.
|
|
13
|
+
|
|
14
|
+
Available models:
|
|
15
|
+
|
|
16
|
+
.. toctree::
|
|
17
|
+
:maxdepth: 1
|
|
18
|
+
|
|
19
|
+
conv
|
|
20
|
+
conv_nn
|
|
21
|
+
conv_idw
|
|
22
|
+
conv_idw_ed
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
|
|
2
|
+
.. _Landeshochwasserzentrum (LHWZ): https://www.umwelt.sachsen.de/umwelt/wasser/72.htm
|
|
3
|
+
.. _LARSIM: http://www.larsim.de/das-modell/
|
|
4
|
+
.. _`German Federal Institute of Hydrology (BfG)`: https://www.bafg.de/EN
|
|
5
|
+
|
|
6
|
+
.. _HydPy-Dam:
|
|
7
|
+
|
|
8
|
+
HydPy-Dam
|
|
9
|
+
=========
|
|
10
|
+
|
|
11
|
+
The HydPy-Dam model family implements dams and similar natural and anthropogenic flow
|
|
12
|
+
barriers.
|
|
13
|
+
|
|
14
|
+
At the current state of development, all its application models rely on an adaptive
|
|
15
|
+
explicit Runge-Kutta method. This integration method allows for performing simulations
|
|
16
|
+
with adjustable numerical precision. However, it works best for continuous differential
|
|
17
|
+
equations. Hence, most process equations of base model |dam| are either continuous by
|
|
18
|
+
nature or "regularisable", meaning one can smooth their discontinuities by a degree one
|
|
19
|
+
considers useful.
|
|
20
|
+
|
|
21
|
+
Each application model provides a different combination of control capabilities. Many
|
|
22
|
+
take "remote locations" into account, for example, to release additional water to the
|
|
23
|
+
downstream river channel to increase water stages at remote gauges.
|
|
24
|
+
|
|
25
|
+
All application models are tested and ready for use. However, please note that some
|
|
26
|
+
improvements in style and structure (e.g. changes in some variable names) might be
|
|
27
|
+
necessary in the future. At the moment, it is a little hard to pick the correct
|
|
28
|
+
application model. We will have to find a way to prevent selecting a suitable model
|
|
29
|
+
from becoming too hard when the collection of application models grows. For the
|
|
30
|
+
moment, the following overview of the first five application models might be helpful:
|
|
31
|
+
|
|
32
|
+
================================================================= ==== ==== ==== ==== ====
|
|
33
|
+
Does the dam model… v001 v002 v003 v004 v005
|
|
34
|
+
================================================================= ==== ==== ==== ==== ====
|
|
35
|
+
…calculate the demand at a remote location itself? yes no no no yes
|
|
36
|
+
|
|
37
|
+
…lie in a river upstream of the remote location? yes yes no no yes
|
|
38
|
+
|
|
39
|
+
…tell another model if it cannot supply the remote demand? no no no no yes
|
|
40
|
+
|
|
41
|
+
…discharge to another remote location for flood protection? no no no yes no
|
|
42
|
+
|
|
43
|
+
…ask for additional water supply from a remote location? no no no no yes
|
|
44
|
+
|
|
45
|
+
…allow for discharge from a remote location for flood protection? no no no no yes
|
|
46
|
+
================================================================= ==== ==== ==== ==== ====
|
|
47
|
+
|
|
48
|
+
These five application models are independent implementations, developed for the
|
|
49
|
+
forecasting system of the German federal state of Saxony and run by the
|
|
50
|
+
`Landeshochwasserzentrum (LHWZ)`_. Later, we added the application models |dam_llake|,
|
|
51
|
+
|dam_lretention|, and |dam_lreservoir| on behalf of the `German Federal Institute of
|
|
52
|
+
Hydrology (BfG)`_. Conceptionally, these *HydPy* models correspond to the `LARSIM`_
|
|
53
|
+
models "SEEG" (controlled lake), "RUEC" (retention basin) and "TALS" (reservoir). Most
|
|
54
|
+
recently, we developed |dam_pump|, |dam_sluice|, and |dam_pump_sluice| for improving
|
|
55
|
+
simulations in low-land areas, where the draining of land areas via pumps and sluices
|
|
56
|
+
often plays a more relevant role than gravity-driven runoff.
|
|
57
|
+
|
|
58
|
+
|dam_v001| has been the starting point for the development of the other application
|
|
59
|
+
models. Hence its documentation is very comprehensive, and it seems to be a good
|
|
60
|
+
starting point for becomimg acquainted with any of the application models prepared so
|
|
61
|
+
far.
|
|
62
|
+
|
|
63
|
+
Available models:
|
|
64
|
+
|
|
65
|
+
.. toctree::
|
|
66
|
+
:maxdepth: 1
|
|
67
|
+
|
|
68
|
+
dam
|
|
69
|
+
dam_v001
|
|
70
|
+
dam_v002
|
|
71
|
+
dam_v003
|
|
72
|
+
dam_v004
|
|
73
|
+
dam_v005
|
|
74
|
+
dam_llake
|
|
75
|
+
dam_lretention
|
|
76
|
+
dam_lreservoir
|
|
77
|
+
dam_pump
|
|
78
|
+
dam_sluice
|
|
79
|
+
dam_pump_sluice
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
|
|
2
|
+
.. _HydPy-Dummy:
|
|
3
|
+
|
|
4
|
+
HydPy-Dummy
|
|
5
|
+
===========
|
|
6
|
+
|
|
7
|
+
HydPy-Dummy models do not apply any process equations. Instead, they serve as simple
|
|
8
|
+
placeholders which forward their input without modifications.
|
|
9
|
+
|
|
10
|
+
Available models:
|
|
11
|
+
|
|
12
|
+
.. toctree::
|
|
13
|
+
:maxdepth: 1
|
|
14
|
+
|
|
15
|
+
dummy
|
|
16
|
+
dummy_node2node
|
|
17
|
+
dummy_interceptedwater
|
|
18
|
+
dummy_soilwater
|
|
19
|
+
dummy_snowcover
|
|
20
|
+
dummy_snowycanopy
|
|
21
|
+
dummy_snowalbedo
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.. _HydPy-Evap:
|
|
2
|
+
|
|
3
|
+
HydPy-Evap
|
|
4
|
+
==========
|
|
5
|
+
|
|
6
|
+
The HydPy-Evap model family aims to calculate different kinds of reference, potential,
|
|
7
|
+
or actual evapo(transpi)ration. The implemented application models work as stand-alone
|
|
8
|
+
models but are primarily thought to be used as submodels by main models like
|
|
9
|
+
|lland_dd|.
|
|
10
|
+
|
|
11
|
+
Available models:
|
|
12
|
+
|
|
13
|
+
.. toctree::
|
|
14
|
+
:maxdepth: 1
|
|
15
|
+
|
|
16
|
+
evap
|
|
17
|
+
evap_ret_io
|
|
18
|
+
evap_ret_fao56
|
|
19
|
+
evap_ret_tw2002
|
|
20
|
+
evap_pet_m
|
|
21
|
+
evap_pet_mlc
|
|
22
|
+
evap_pet_ambav1
|
|
23
|
+
evap_pet_hbv96
|
|
24
|
+
evap_aet_hbv96
|
|
25
|
+
evap_aet_minhas
|
|
26
|
+
evap_aet_morsim
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
.. _HydPy-Exch:
|
|
2
|
+
|
|
3
|
+
HydPy-Exch
|
|
4
|
+
==========
|
|
5
|
+
|
|
6
|
+
The HydPy-Exch model family enables instances of other model types to exchange data
|
|
7
|
+
more flexibly.
|
|
8
|
+
|
|
9
|
+
Usually, model instances eventually receive inflow and pass outflow to other models
|
|
10
|
+
without knowing anything about them. One exception is the highly specialised
|
|
11
|
+
application model |dam_v004|, which calculates its discharge to a |dam_v005| instance
|
|
12
|
+
based on some knowledge of the other model's internal state. One purpose of HydPy-Exch
|
|
13
|
+
is to facilitate similar exchanges between different model instances more modularly.
|
|
14
|
+
Application model |exch_weir_hbv96|, for example, simulates a weir. Conceptionally, it
|
|
15
|
+
enables a bidirectional water exchange between two lakes, where the flow direction
|
|
16
|
+
depends on the difference of the lakes' water levels. Technically, we can combine
|
|
17
|
+
|exch_weir_hbv96| with all model types, calculating (something like) water level
|
|
18
|
+
information and accepting an additional inlet that can supply positive and negative
|
|
19
|
+
values. Due to this flexible approach, we do not need to implement the weir formula to
|
|
20
|
+
different |dam| models. On the downside, this looser coupling often comes with some
|
|
21
|
+
limitations. One example is numerical accuracy, which might be suboptimal due to
|
|
22
|
+
solving the interconnected differential equations of different model instances
|
|
23
|
+
sequentially (we might improve this later).
|
|
24
|
+
|
|
25
|
+
Besides such explanation requiring models, HydPy-Exch also provides straightforward
|
|
26
|
+
models like |exch_branch_hbv96|, which distributes its inflow to multiple locations.
|
|
27
|
+
|
|
28
|
+
Available models:
|
|
29
|
+
|
|
30
|
+
.. toctree::
|
|
31
|
+
:maxdepth: 1
|
|
32
|
+
|
|
33
|
+
exch
|
|
34
|
+
exch_branch_hbv96
|
|
35
|
+
exch_weir_hbv96
|
|
36
|
+
exch_waterlevel
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
.. _HydPy-G:
|
|
2
|
+
|
|
3
|
+
HydPy-G (GR)
|
|
4
|
+
============
|
|
5
|
+
|
|
6
|
+
The HydPy-G model family (modèle due Génie Rural) comprises daily lumped hydrological
|
|
7
|
+
models that differ in their amount of parameters, in their calculation of groundwater
|
|
8
|
+
exchange, and partly in their calculation of runoff concentration. Compared to the
|
|
9
|
+
other main models provided by HydPy, they are limited to the bare essentials. For
|
|
10
|
+
example, you can apply them only "lumped", meaning there is no way to distinguish
|
|
11
|
+
between different types of land covers within one subcatchment.
|
|
12
|
+
|
|
13
|
+
Generally, all models follow the implementations of the R package airGR
|
|
14
|
+
:cite:p:`ref-airGR2017`. However, while airGR provides models for specific simulation
|
|
15
|
+
time steps (e.g. GR4J for daily and GR4H for hourly steps), all members of HydPy-G are
|
|
16
|
+
(in principle) applicable to arbitrary simulation time steps. Additionally, in air GR,
|
|
17
|
+
only some, but in HydPy-G, all models allow for configuring the interception capacity.
|
|
18
|
+
|
|
19
|
+
None of the available application models contains a snow module. Still, you can use
|
|
20
|
+
the models of the members of the HydPy-Snow model family to modify precipitation
|
|
21
|
+
accordingly before giving it to a HydPy-G model. (Admittedly, this is a little
|
|
22
|
+
cumbersome. For more comfort, we will turn all snow models into "real" submodels in a
|
|
23
|
+
later HydPy version.)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
Base model:
|
|
27
|
+
|
|
28
|
+
.. toctree::
|
|
29
|
+
:maxdepth: 1
|
|
30
|
+
|
|
31
|
+
gland
|
|
32
|
+
|
|
33
|
+
Application models:
|
|
34
|
+
|
|
35
|
+
.. toctree::
|
|
36
|
+
:maxdepth: 1
|
|
37
|
+
|
|
38
|
+
gland_gr4
|
|
39
|
+
gland_gr5
|
|
40
|
+
gland_gr6
|