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
hydpy/models/ga_garto.py
ADDED
|
@@ -0,0 +1,1001 @@
|
|
|
1
|
+
# pylint: disable=line-too-long, unused-wildcard-import
|
|
2
|
+
"""
|
|
3
|
+
.. _`issue 89`: https://github.com/hydpy-dev/hydpy/issues/89
|
|
4
|
+
|
|
5
|
+
|ga_garto| implements GARTO, a "Green-Ampt infiltration with Redistribution" model that
|
|
6
|
+
"incorporates features from the Talbot-Ogden infiltration and redistribution method",
|
|
7
|
+
developed by :cite:t:`ref-Lai2015`. Thankfully, two of its authors, Fred L. Ogden and
|
|
8
|
+
Cary A. Talbot, provided their source code (written in C), which we used to ensure
|
|
9
|
+
|ga_garto| mostly works like this original implementation. However, there are also
|
|
10
|
+
some differences, which interested users find discussed in `issue 89`_. The most
|
|
11
|
+
notable difference is that |ga_garto| generally assumes a hydrostatic groundwater
|
|
12
|
+
table, while the complete GARTO method also simulates groundwater dynamics (in terms of
|
|
13
|
+
vertically moving groundwater fronts).
|
|
14
|
+
|
|
15
|
+
GARTO combines the oriinal Green-Ampt infiltration model with redistribution
|
|
16
|
+
equations. In the Green-Ampt model, a saturated wetting front moves downwards in a
|
|
17
|
+
piston-like form through a homogeneous soil with constant initial moisture and assumes
|
|
18
|
+
rainfall intensity always exceeds infiltration intensity. The redistribution equations
|
|
19
|
+
apply for periods with little or no rainfall. When redistribution begins, a previously
|
|
20
|
+
saturated wetting front still grows in length but reduces its relative water content.
|
|
21
|
+
With the next heavy rainfall event, a new saturated front develops, and both the old
|
|
22
|
+
and the new front advance downwards.
|
|
23
|
+
|
|
24
|
+
One improvement of GARTO over simpler GAR approaches is that the number of active
|
|
25
|
+
wetting fronts is (principally) not restricted. Wetting fronts only disappear when
|
|
26
|
+
being merged with other fronts, which happens when a newer (wetter) front overshoots an
|
|
27
|
+
older (dryer) one or when a wetting front reaches the soil's depth (the groundwater
|
|
28
|
+
table). Due to approximating natural soil moisture distributions with multiple wetting
|
|
29
|
+
fronts, GARTO can cope with complex rainfall patterns with (long) hiatus periods,
|
|
30
|
+
making it a suitable tool for long-term simulations.
|
|
31
|
+
|
|
32
|
+
Another functionality required for long-term simulations is evapotranspiration, which
|
|
33
|
+
is not discussed by :cite:t:`ref-Lai2015` but implemented in the mentioned C code.
|
|
34
|
+
|ga_garto| requires the complete withdrawal to be calculated externally and takes it
|
|
35
|
+
from the surface water and the wettest wetting fronts like one can do with the author's
|
|
36
|
+
GARTO code for evaporation. The additional transpiration features of the C code (e.g.
|
|
37
|
+
taking rooted depth into account) are neglected since we expect |ga_garto| to be
|
|
38
|
+
applied for modelling the rooted soil zone.
|
|
39
|
+
|
|
40
|
+
ToDo: Taking the rooted depth as the depth of the considered soil domain and assuming a
|
|
41
|
+
hydrostatic groundwater table at the soil's bottom do not go hand in hand for
|
|
42
|
+
many catchments. Do we need alternative lower boundary conditions?
|
|
43
|
+
|
|
44
|
+
.. _ga_garto_integration_tests:
|
|
45
|
+
|
|
46
|
+
Integration tests
|
|
47
|
+
=================
|
|
48
|
+
|
|
49
|
+
.. how_to_understand_integration_tests::
|
|
50
|
+
|
|
51
|
+
We prepare an initialisation period of 24 hours but restrict the actual simulation and
|
|
52
|
+
evaluation period to 5 hours for the first examples:
|
|
53
|
+
|
|
54
|
+
>>> from hydpy import pub
|
|
55
|
+
>>> pub.timegrids = "2000-01-01 00:00", "2000-01-02 00:00", "1h"
|
|
56
|
+
>>> pub.timegrids.sim.lastdate = pub.timegrids.eval_.lastdate = "2000-01-01 05:00"
|
|
57
|
+
|
|
58
|
+
We prepare a |ga_garto| model, set the base time for defining (most) time-dependent
|
|
59
|
+
parameter values to one hour, connect the model to an |Element| instance, and hand this
|
|
60
|
+
element to an |IntegrationTest| instance that will execute and evaluate the following
|
|
61
|
+
example simulations:
|
|
62
|
+
|
|
63
|
+
>>> from hydpy.models.ga_garto import *
|
|
64
|
+
>>> parameterstep("1h")
|
|
65
|
+
>>> from hydpy import Element, IntegrationTest
|
|
66
|
+
>>> soil = Element("soil")
|
|
67
|
+
>>> soil.model = model
|
|
68
|
+
>>> test = IntegrationTest(soil)
|
|
69
|
+
>>> test.dateformat = "%H:%M"
|
|
70
|
+
>>> test.plotting_options.axis1 = (inputs.rainfall, fluxes.infiltration,
|
|
71
|
+
... fluxes.surfacerunoff, fluxes.percolation,
|
|
72
|
+
... fluxes.withdrawal)
|
|
73
|
+
>>> test.plotting_options.axis2 = states.frontdepth
|
|
74
|
+
|
|
75
|
+
For the first set of examples, we initialise a single soil compartment (via parameter
|
|
76
|
+
|NmbSoils|) consisting of three "bins" (via parameter |NmbBins|). So, besides the
|
|
77
|
+
first "filled" bin, there can be at most two active wetting fronts at the same time:
|
|
78
|
+
|
|
79
|
+
>>> nmbsoils(1)
|
|
80
|
+
>>> nmbbins(3)
|
|
81
|
+
|
|
82
|
+
We set the length of the numerical substeps to one second:
|
|
83
|
+
|
|
84
|
+
>>> with pub.options.parameterstep("1s"):
|
|
85
|
+
... dt(1.0)
|
|
86
|
+
|
|
87
|
+
The single soil compartment is not sealed, meaning infiltration is possible:
|
|
88
|
+
|
|
89
|
+
>>> sealed(False)
|
|
90
|
+
|
|
91
|
+
The defined subarea is irrelevant as long as we deal with a single compartment:
|
|
92
|
+
|
|
93
|
+
>>> soilarea(2.0)
|
|
94
|
+
|
|
95
|
+
We perform all tests for an "average" soil (loam) and take its parameters from
|
|
96
|
+
:cite:t:`ref-Lai2015`, table 1:
|
|
97
|
+
|
|
98
|
+
>>> residualmoisture(0.027)
|
|
99
|
+
>>> saturationmoisture(0.434)
|
|
100
|
+
>>> saturatedconductivity(13.2)
|
|
101
|
+
>>> poresizedistribution(0.252)
|
|
102
|
+
>>> airentrypotential(111.5)
|
|
103
|
+
|
|
104
|
+
In agreement with the evaluations performed by :cite:t:`ref-Lai2015`, all our test runs
|
|
105
|
+
start with a relative moisture content of 10 %:
|
|
106
|
+
|
|
107
|
+
>>> test.inits = ((states.moisture, 0.1),
|
|
108
|
+
... (states.frontdepth, 0.0),
|
|
109
|
+
... (logs.moisturechange, 0.0))
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
5 hours, no evaporation, no capillary rise
|
|
113
|
+
__________________________________________
|
|
114
|
+
|
|
115
|
+
In this subsection, we focus on a short simulation period of five hours without any
|
|
116
|
+
evaporation losses or capillary rise gains. The chosen rainfall pattern stems from
|
|
117
|
+
:cite:t:`ref-Lai2015`, table 2 (soil number 4, loam):
|
|
118
|
+
|
|
119
|
+
>>> inputs.rainfall.series[:5] = [40.0, 0.0, 0.0, 40.0, 0.0]
|
|
120
|
+
>>> inputs.evaporation.series = 0.0
|
|
121
|
+
>>> inputs.capillaryrise.series = 0.0
|
|
122
|
+
|
|
123
|
+
The next commands store the current initial conditions, so we can use them later to
|
|
124
|
+
check that |ga_garto| is not violating the water balance:
|
|
125
|
+
|
|
126
|
+
>>> test.reset_inits()
|
|
127
|
+
>>> conditions = model.conditions
|
|
128
|
+
|
|
129
|
+
.. _ga_garto_5h_1000mm:
|
|
130
|
+
|
|
131
|
+
deep soil
|
|
132
|
+
---------
|
|
133
|
+
|
|
134
|
+
In this example, we set the soil compartment's depth to one meter so that it does not
|
|
135
|
+
restrict the movement of any front:
|
|
136
|
+
|
|
137
|
+
>>> soildepth(1000.0)
|
|
138
|
+
|
|
139
|
+
The infiltration sums for the first and the second event agree well but not perfectly
|
|
140
|
+
with the results reported by :cite:t:`ref-Lai2015`, table 3 (soil number 4, loam),
|
|
141
|
+
which are 38.62 mm (instead of 38.90 mm) and 29.67 mm (instead of 30.01 mm). We
|
|
142
|
+
checked if the different lengths of the numerical substeps (10 s vs 1 s) cause this
|
|
143
|
+
error, but they do not. The authors' GARTO code, which we adapted to the same example,
|
|
144
|
+
also using a numerical substep length of 1 s, calculates the same infiltration sums as
|
|
145
|
+
|ga_garto| (38.90 mm and 30.01 mm).
|
|
146
|
+
|
|
147
|
+
The water content equals the saturation water content at the end of both rainfall
|
|
148
|
+
impulses and decreases afterwards. Inspecting the front depths', it looks like
|
|
149
|
+
everything takes place in the second bin. However, |ga_garto| actually creates a
|
|
150
|
+
second wetting front in the third bin during the second impulse, but this front reaches
|
|
151
|
+
the first one during the same simulation step, so they both get merged in the second
|
|
152
|
+
bin:
|
|
153
|
+
|
|
154
|
+
.. integration-test::
|
|
155
|
+
|
|
156
|
+
>>> test("ga_garto_5h_1000mm")
|
|
157
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
158
|
+
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
159
|
+
| 00:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 38.896943 | 0.0 | 0.0 | 0.0 | 1.103057 | 38.896943 | 0.0 | 0.0 | 0.0 | 1.103057 | 0.1 0.434 0.1 | 1000.0 116.457913 0.0 |
|
|
160
|
+
| 01:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.364279 0.1 | 1000.0 147.18132 0.0 |
|
|
161
|
+
| 02:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.343632 0.1 | 1000.0 159.654404 0.0 |
|
|
162
|
+
| 03:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 30.008647 | 0.0 | 0.0 | 0.0 | 9.991353 | 30.008647 | 0.0 | 0.0 | 0.0 | 9.991353 | 0.1 0.434 0.1 | 1000.0 206.304161 0.0 |
|
|
163
|
+
| 04:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.387446 0.1 | 1000.0 239.716877 0.0 |
|
|
164
|
+
|
|
165
|
+
There is no indication of an error in the water balance:
|
|
166
|
+
|
|
167
|
+
>>> from hydpy import round_
|
|
168
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
169
|
+
0.0
|
|
170
|
+
|
|
171
|
+
.. _ga_garto_5h_200mm:
|
|
172
|
+
|
|
173
|
+
200 mm depth
|
|
174
|
+
------------
|
|
175
|
+
|
|
176
|
+
Next, we repeat the above example with a reduced soil depth of 200 mm:
|
|
177
|
+
|
|
178
|
+
>>> soildepth(200.0)
|
|
179
|
+
|
|
180
|
+
All results for the first three hours are identical to those of the
|
|
181
|
+
:ref:`ga_garto_5h_1000mm` example. But during the second rainfall event, the saturated
|
|
182
|
+
wetting front reaches the soil's bottom so that the first "filled" bin becomes
|
|
183
|
+
saturated and is the only active bin from then on. Complete saturation comes with a
|
|
184
|
+
dramatic increase in actual conductivity through the whole soil column and thus in
|
|
185
|
+
percolation (groundwater recharge). On the other hand, the overall downward water
|
|
186
|
+
movement and thus infiltration slows due to losing capillary drive after building
|
|
187
|
+
complete contact with groundwater:
|
|
188
|
+
|
|
189
|
+
.. integration-test::
|
|
190
|
+
|
|
191
|
+
>>> test("ga_garto_5h_200mm")
|
|
192
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
193
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
194
|
+
| 00:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 38.896943 | 0.0 | 0.0 | 0.0 | 1.103057 | 38.896943 | 0.0 | 0.0 | 0.0 | 1.103057 | 0.1 0.434 0.1 | 200.0 116.457913 0.0 |
|
|
195
|
+
| 01:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.364279 0.1 | 200.0 147.18132 0.0 |
|
|
196
|
+
| 02:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.343632 0.1 | 200.0 159.654404 0.0 |
|
|
197
|
+
| 03:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 29.03239 | 1.129333 | 0.0 | 0.0 | 10.96761 | 29.03239 | 1.129333 | 0.0 | 0.0 | 10.96761 | 0.434 0.434 0.434 | 200.0 0.0 0.0 |
|
|
198
|
+
| 04:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.434 0.434 0.434 | 200.0 0.0 0.0 |
|
|
199
|
+
|
|
200
|
+
There is no indication of an error in the water balance:
|
|
201
|
+
|
|
202
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
203
|
+
0.0
|
|
204
|
+
|
|
205
|
+
.. _ga_garto_5h_150mm:
|
|
206
|
+
|
|
207
|
+
150 mm depth
|
|
208
|
+
------------
|
|
209
|
+
|
|
210
|
+
When reducing the soil depth further to 150 mm, the first (and, so far, only) wetting
|
|
211
|
+
front reaches the soil's bottom yet in the first redistribution phase within the third
|
|
212
|
+
hour. The soil water deficit at the start of the second rainfall event is smaller due
|
|
213
|
+
to increased relative moisture and the reduced soil depth, so infiltration declines
|
|
214
|
+
even more than in the :ref:`ga_garto_5h_200mm` example:
|
|
215
|
+
|
|
216
|
+
.. integration-test::
|
|
217
|
+
|
|
218
|
+
>>> soildepth(150.0)
|
|
219
|
+
>>> test("ga_garto_5h_150mm")
|
|
220
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
221
|
+
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
222
|
+
| 00:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 38.896943 | 0.0 | 0.0 | 0.0 | 1.103057 | 38.896943 | 0.0 | 0.0 | 0.0 | 1.103057 | 0.1 0.434 0.1 | 150.0 116.457913 0.0 |
|
|
223
|
+
| 01:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.364279 0.1 | 150.0 147.18132 0.0 |
|
|
224
|
+
| 02:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.000403 | 0.0 | 0.0 | 0.0 | 0.0 | 0.000403 | 0.0 | 0.0 | 0.0 | 0.35931 0.35931 0.35931 | 150.0 0.0 0.0 |
|
|
225
|
+
| 03:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 20.394407 | 9.190947 | 0.0 | 0.0 | 19.605593 | 20.394407 | 9.190947 | 0.0 | 0.0 | 19.605593 | 0.434 0.434 0.434 | 150.0 0.0 0.0 |
|
|
226
|
+
| 04:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.434 0.434 0.434 | 150.0 0.0 0.0 |
|
|
227
|
+
|
|
228
|
+
There is no indication of an error in the water balance:
|
|
229
|
+
|
|
230
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
231
|
+
0.0
|
|
232
|
+
|
|
233
|
+
.. _ga_garto_5h_100mm:
|
|
234
|
+
|
|
235
|
+
100 mm depth
|
|
236
|
+
------------
|
|
237
|
+
|
|
238
|
+
When reducing the soil depth even to 100 mm, the soil already saturates in the first
|
|
239
|
+
hour. Then, the (potential) infiltration sum of the second event gets its smallest
|
|
240
|
+
possible value defined by saturated conductivity:
|
|
241
|
+
|
|
242
|
+
.. integration-test::
|
|
243
|
+
|
|
244
|
+
>>> soildepth(100.0)
|
|
245
|
+
>>> test("ga_garto_5h_100mm")
|
|
246
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
247
|
+
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
248
|
+
| 00:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 35.497333 | 2.097333 | 0.0 | 0.0 | 4.502667 | 35.497333 | 2.097333 | 0.0 | 0.0 | 4.502667 | 0.434 0.434 0.434 | 100.0 0.0 0.0 |
|
|
249
|
+
| 01:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.434 0.434 0.434 | 100.0 0.0 0.0 |
|
|
250
|
+
| 02:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.434 0.434 0.434 | 100.0 0.0 0.0 |
|
|
251
|
+
| 03:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 13.2 | 13.2 | 0.0 | 0.0 | 26.8 | 13.2 | 13.2 | 0.0 | 0.0 | 26.8 | 0.434 0.434 0.434 | 100.0 0.0 0.0 |
|
|
252
|
+
| 04:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.434 0.434 0.434 | 100.0 0.0 0.0 |
|
|
253
|
+
|
|
254
|
+
There is no indication of an error in the water balance:
|
|
255
|
+
|
|
256
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
257
|
+
0.0
|
|
258
|
+
|
|
259
|
+
5 hours, evaporation
|
|
260
|
+
____________________
|
|
261
|
+
|
|
262
|
+
In this subsection, we repeat some of the above examples with an evaporation rate of
|
|
263
|
+
1 mm/h:
|
|
264
|
+
|
|
265
|
+
>>> inputs.evaporation.series = 1.0
|
|
266
|
+
|
|
267
|
+
.. _ga_garto_5h_1000mm_evap:
|
|
268
|
+
|
|
269
|
+
deep soil
|
|
270
|
+
---------
|
|
271
|
+
|
|
272
|
+
Repeating the :ref:`ga_garto_5h_1000mm` example but including evaporation reduces
|
|
273
|
+
surface runoff generation. This effect emerges especially for the second event, where
|
|
274
|
+
evaporation has a cumulative impact due to also withdrawing water during the previous
|
|
275
|
+
redistribution phase:
|
|
276
|
+
|
|
277
|
+
.. integration-test::
|
|
278
|
+
|
|
279
|
+
>>> soildepth(1000.0)
|
|
280
|
+
>>> test("ga_garto_5h_1000mm_evap")
|
|
281
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
282
|
+
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
283
|
+
| 00:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 39.024721 | 0.0 | 0.0 | 1.0 | 0.727698 | 39.024721 | 0.0 | 0.0 | 1.0 | 0.727698 | 0.1 0.434 0.1 | 1000.0 114.58773 0.0 |
|
|
284
|
+
| 01:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.358798 0.1 | 1000.0 144.020647 0.0 |
|
|
285
|
+
| 02:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.334277 0.1 | 1000.0 154.826468 0.0 |
|
|
286
|
+
| 03:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 30.689523 | 0.0 | 0.0 | 1.0 | 8.547812 | 30.689523 | 0.0 | 0.0 | 1.0 | 8.547812 | 0.1 0.434 0.1 | 1000.0 199.773922 0.0 |
|
|
287
|
+
| 04:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.383222 0.1 | 1000.0 232.060146 0.0 |
|
|
288
|
+
|
|
289
|
+
There is no indication of an error in the water balance:
|
|
290
|
+
|
|
291
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
292
|
+
0.0
|
|
293
|
+
|
|
294
|
+
.. _ga_garto_5h_100mm_evap:
|
|
295
|
+
|
|
296
|
+
100 mm depth
|
|
297
|
+
------------
|
|
298
|
+
|
|
299
|
+
When repeating the :ref:`ga_garto_5h_100mm` example with evaporation, |ga_garto| does
|
|
300
|
+
not always withdraw water from the surface or the currently wettest wetting front (as
|
|
301
|
+
in the :ref:`ga_garto_5h_1000mm_evap` example) but (during rain-free periods) also from
|
|
302
|
+
the filled bin:
|
|
303
|
+
|
|
304
|
+
.. integration-test::
|
|
305
|
+
|
|
306
|
+
>>> soildepth(100.0)
|
|
307
|
+
>>> test("ga_garto_5h_100mm_evap")
|
|
308
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
309
|
+
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
310
|
+
| 00:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 36.00042 | 1.848 | 0.0 | 1.0 | 3.752 | 36.00042 | 1.848 | 0.0 | 1.0 | 3.752 | 0.434 0.434 0.434 | 100.0 0.0 0.0 |
|
|
311
|
+
| 01:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.424 0.424003 0.424003 | 100.0 0.0 0.0 |
|
|
312
|
+
| 02:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.414 0.414003 0.414003 | 100.0 0.0 0.0 |
|
|
313
|
+
| 03:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 14.9125 | 12.848611 | 0.0 | 1.0 | 24.151389 | 14.9125 | 12.848611 | 0.0 | 1.0 | 24.151389 | 0.434 0.434 0.434 | 100.0 0.0 0.0 |
|
|
314
|
+
| 04:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.424 0.424003 0.424003 | 100.0 0.0 0.0 |
|
|
315
|
+
|
|
316
|
+
There is no indication of an error in the water balance:
|
|
317
|
+
|
|
318
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
319
|
+
0.0
|
|
320
|
+
|
|
321
|
+
4 mm depth
|
|
322
|
+
----------
|
|
323
|
+
|
|
324
|
+
Reducing the soil depth to 4 mm is surely no realistic configuration, but we use it to
|
|
325
|
+
show |ga_garto| works stably in case the soil runs completely dry during the third
|
|
326
|
+
hour:
|
|
327
|
+
|
|
328
|
+
.. integration-test::
|
|
329
|
+
|
|
330
|
+
>>> soildepth(4.0)
|
|
331
|
+
>>> test("ga_garto_5h_4mm_evap")
|
|
332
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
333
|
+
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
334
|
+
| 00:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 14.450938 | 13.068271 | 0.0 | 1.0 | 24.595729 | 14.450938 | 13.068271 | 0.0 | 1.0 | 24.595729 | 0.434 0.434 0.434 | 4.0 0.0 0.0 |
|
|
335
|
+
| 01:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.184 0.184069 0.184069 | 4.0 0.0 0.0 |
|
|
336
|
+
| 02:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.628 | 0.0 | 0.0 | 0.0 | 0.0 | 0.628 | 0.0 | 0.027 0.027 0.027 | 4.0 0.0 0.0 |
|
|
337
|
+
| 03:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 14.651938 | 12.969771 | 0.0 | 1.0 | 24.402229 | 14.651938 | 12.969771 | 0.0 | 1.0 | 24.402229 | 0.434 0.434 0.434 | 4.0 0.0 0.0 |
|
|
338
|
+
| 04:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.184 0.184069 0.184069 | 4.0 0.0 0.0 |
|
|
339
|
+
|
|
340
|
+
There is no indication of an error in the water balance:
|
|
341
|
+
|
|
342
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
343
|
+
0.0
|
|
344
|
+
|
|
345
|
+
.. _ga_garto_5h_1000mm_evap_10s:
|
|
346
|
+
|
|
347
|
+
deep soil, 10 sec
|
|
348
|
+
-----------------
|
|
349
|
+
|
|
350
|
+
In the following, we reuse the :ref:`ga_garto_5h_1000mm_evap` example to give an
|
|
351
|
+
impression of the relation between computational effort and numerical accuracy. Please
|
|
352
|
+
consider this the first impression because such relationships can be distinctly
|
|
353
|
+
different for other conditions. For example, setting the numerical substep length to
|
|
354
|
+
10 s (as done by :cite:t:`ref-Lai2015`) instead of 1 s (as in all our previous
|
|
355
|
+
examples) increases the total infiltration sum from 69.71 mm to 69.75 mm, which is an
|
|
356
|
+
irrelevant deviation for practical applications:
|
|
357
|
+
|
|
358
|
+
.. integration-test::
|
|
359
|
+
|
|
360
|
+
>>> soildepth(1000.0)
|
|
361
|
+
>>> with pub.options.parameterstep("1s"):
|
|
362
|
+
... dt(10)
|
|
363
|
+
>>> derived.nmbsubsteps.update()
|
|
364
|
+
>>> test("ga_garto_5h_1000mm_evap_10sec")
|
|
365
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
366
|
+
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
367
|
+
| 00:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 39.035173 | 0.0 | 0.0 | 1.0 | 0.718436 | 39.035173 | 0.0 | 0.0 | 1.0 | 0.718436 | 0.1 0.434 0.1 | 1000.0 114.615461 0.0 |
|
|
368
|
+
| 01:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.358667 0.1 | 1000.0 144.12976 0.0 |
|
|
369
|
+
| 02:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.3342 0.1 | 1000.0 154.916779 0.0 |
|
|
370
|
+
| 03:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 30.713686 | 0.0 | 0.0 | 1.0 | 8.524923 | 30.713686 | 0.0 | 0.0 | 1.0 | 8.524923 | 0.1 0.434 0.1 | 1000.0 199.870182 0.0 |
|
|
371
|
+
| 04:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.383154 0.1 | 1000.0 232.229057 0.0 |
|
|
372
|
+
|
|
373
|
+
There is no indication of an error in the water balance:
|
|
374
|
+
|
|
375
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
376
|
+
0.0
|
|
377
|
+
|
|
378
|
+
.. _ga_garto_5h_1000mm_evap_1min:
|
|
379
|
+
|
|
380
|
+
deep soil, 1 min
|
|
381
|
+
----------------
|
|
382
|
+
|
|
383
|
+
:cite:t:`ref-Lai2015` recommend using a numerical substep length of less than 1 min.
|
|
384
|
+
If we set it to 1 min exactly, the total infiltration sum increases from 69.7 mm to
|
|
385
|
+
69.9 mm. Hence, at least for deep loam soils, calculating in 1 min intervals seems
|
|
386
|
+
acceptable for practical applications:
|
|
387
|
+
|
|
388
|
+
.. integration-test::
|
|
389
|
+
|
|
390
|
+
>>> with pub.options.parameterstep("1m"):
|
|
391
|
+
... dt(1)
|
|
392
|
+
>>> derived.nmbsubsteps.update()
|
|
393
|
+
>>> test("ga_garto_5h_1000mm_evap_1min")
|
|
394
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
395
|
+
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
396
|
+
| 00:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 39.09203 | 0.0 | 0.0 | 1.0 | 0.667335 | 39.09203 | 0.0 | 0.0 | 1.0 | 0.667335 | 0.1 0.434 0.1 | 1000.0 114.768457 0.0 |
|
|
397
|
+
| 01:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.357898 0.1 | 1000.0 144.757288 0.0 |
|
|
398
|
+
| 02:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.333753 0.1 | 1000.0 155.43215 0.0 |
|
|
399
|
+
| 03:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 30.843714 | 0.0 | 0.0 | 1.0 | 8.405415 | 30.843714 | 0.0 | 0.0 | 1.0 | 8.405415 | 0.1 0.434 0.1 | 1000.0 200.380986 0.0 |
|
|
400
|
+
| 04:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.382766 0.1 | 1000.0 233.151397 0.0 |
|
|
401
|
+
|
|
402
|
+
There is no indication of an error in the water balance:
|
|
403
|
+
|
|
404
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
405
|
+
0.0
|
|
406
|
+
|
|
407
|
+
.. _ga_garto_5h_1000mm_evap_1hour:
|
|
408
|
+
|
|
409
|
+
deep soil, 1 hour
|
|
410
|
+
-----------------
|
|
411
|
+
|
|
412
|
+
This example shows that even when selecting way too long substeps (in this case, equal
|
|
413
|
+
to the simulation step size), |ga_garto| works stably and holds the water balance
|
|
414
|
+
(still, its results might be more or less random):
|
|
415
|
+
|
|
416
|
+
.. integration-test::
|
|
417
|
+
|
|
418
|
+
>>> with pub.options.parameterstep("1h"):
|
|
419
|
+
... dt(1.0)
|
|
420
|
+
>>> derived.nmbsubsteps.update()
|
|
421
|
+
>>> test("ga_garto_5h_1000mm_evap_1h")
|
|
422
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
423
|
+
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
424
|
+
| 00:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 35.149692 | 0.0 | 0.0 | 1.0 | 3.850308 | 35.149692 | 0.0 | 0.0 | 1.0 | 3.850308 | 0.1 0.434 0.1 | 1000.0 105.2386 0.0 |
|
|
425
|
+
| 01:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.13415 0.13515 0.13515 | 1000.0 0.0 0.0 |
|
|
426
|
+
| 02:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.13315 0.13415 0.13415 | 1000.0 0.0 0.0 |
|
|
427
|
+
| 03:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 33.775558 | 0.000005 | 0.0 | 1.0 | 5.224442 | 33.775558 | 0.000005 | 0.0 | 1.0 | 5.224442 | 0.13315 0.434 0.13415 | 1000.0 112.266969 0.0 |
|
|
428
|
+
| 04:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.165925 0.166925 0.166925 | 1000.0 0.0 0.0 |
|
|
429
|
+
|
|
430
|
+
There is no indication of an error in the water balance:
|
|
431
|
+
|
|
432
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
433
|
+
0.0
|
|
434
|
+
|
|
435
|
+
5 hours, capillary rise
|
|
436
|
+
_______________________
|
|
437
|
+
|
|
438
|
+
In this subsection, we repeat some of the above examples with a capillary rise rate of
|
|
439
|
+
1 mm/h:
|
|
440
|
+
|
|
441
|
+
>>> inputs.evaporation.series = 0.0
|
|
442
|
+
>>> inputs.capillaryrise.series = 1.0
|
|
443
|
+
|
|
444
|
+
We set the numerical substep length to 1 s, as in most examples above:
|
|
445
|
+
|
|
446
|
+
>>> with pub.options.parameterstep("1s"):
|
|
447
|
+
... dt(1)
|
|
448
|
+
>>> derived.nmbsubsteps.update()
|
|
449
|
+
|
|
450
|
+
.. _ga_garto_5h_1000mm_caprise:
|
|
451
|
+
|
|
452
|
+
deep soil
|
|
453
|
+
---------
|
|
454
|
+
|
|
455
|
+
Repeating the :ref:`ga_garto_5h_1000mm` example but including capillary rise reduces
|
|
456
|
+
surface runoff generation. This effect emerges especially for the second event, where
|
|
457
|
+
capillary rise has a cumulative impact due to also adding water during the previous
|
|
458
|
+
redistribution phase:
|
|
459
|
+
|
|
460
|
+
.. integration-test::
|
|
461
|
+
|
|
462
|
+
>>> soildepth(1000.0)
|
|
463
|
+
>>> test("ga_garto_5h_1000mm_caprise")
|
|
464
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
465
|
+
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
466
|
+
| 00:00 | 40.0 | 1.0 | 0.0 | 40.0 | 1.0 | 0.0 | 38.88927 | 0.0 | 1.0 | 0.0 | 1.11073 | 38.88927 | 0.0 | 1.0 | 0.0 | 1.11073 | 0.101065 0.434 0.101065 | 1000.0 116.611777 0.0 |
|
|
467
|
+
| 01:00 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.102222 0.36437 0.102222 | 1000.0 147.500306 0.0 |
|
|
468
|
+
| 02:00 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.103405 0.343752 0.103405 | 1000.0 160.120235 0.0 |
|
|
469
|
+
| 03:00 | 40.0 | 1.0 | 0.0 | 40.0 | 1.0 | 0.0 | 29.978803 | 0.0 | 1.0 | 0.0 | 10.021197 | 29.978803 | 0.0 | 1.0 | 0.0 | 10.021197 | 0.104618 0.434 0.104618 | 1000.0 207.207357 0.0 |
|
|
470
|
+
| 04:00 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.105912 0.387649 0.105912 | 1000.0 241.204907 0.0 |
|
|
471
|
+
|
|
472
|
+
There is no indication of an error in the water balance:
|
|
473
|
+
|
|
474
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
475
|
+
0.0
|
|
476
|
+
|
|
477
|
+
.. _ga_garto_5h_100mm_caprise:
|
|
478
|
+
|
|
479
|
+
100 mm depth
|
|
480
|
+
------------
|
|
481
|
+
|
|
482
|
+
After decreasing the soil's depth to 100 mm, the soil can absorb the available
|
|
483
|
+
capillary rise only at the start of the simulation. The actual soil water addition is
|
|
484
|
+
0.82 mm for the first hour instead of the potential 1.0 mm. Afterwards, the soil is
|
|
485
|
+
full and cannot absorb any capillary rise:
|
|
486
|
+
|
|
487
|
+
.. integration-test::
|
|
488
|
+
|
|
489
|
+
>>> soildepth(100.0)
|
|
490
|
+
>>> test("ga_garto_5h_100mm_caprise")
|
|
491
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
492
|
+
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
493
|
+
| 00:00 | 40.0 | 1.0 | 0.0 | 40.0 | 1.0 | 0.0 | 34.956278 | 2.376001 | 0.819722 | 0.0 | 5.043722 | 34.956278 | 2.376001 | 0.819722 | 0.0 | 5.043722 | 0.434 0.434 0.434 | 100.0 0.0 0.0 |
|
|
494
|
+
| 01:00 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.434 0.434 0.434 | 100.0 0.0 0.0 |
|
|
495
|
+
| 02:00 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.434 0.434 0.434 | 100.0 0.0 0.0 |
|
|
496
|
+
| 03:00 | 40.0 | 1.0 | 0.0 | 40.0 | 1.0 | 0.0 | 13.2 | 13.2 | 0.0 | 0.0 | 26.8 | 13.2 | 13.2 | 0.0 | 0.0 | 26.8 | 0.434 0.434 0.434 | 100.0 0.0 0.0 |
|
|
497
|
+
| 04:00 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.434 0.434 0.434 | 100.0 0.0 0.0 |
|
|
498
|
+
|
|
499
|
+
There is no indication of an error in the water balance:
|
|
500
|
+
|
|
501
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
502
|
+
0.0
|
|
503
|
+
|
|
504
|
+
.. _ga_garto_5h_1000mm_evap_caprise:
|
|
505
|
+
|
|
506
|
+
capillary rise and evaporation
|
|
507
|
+
------------------------------
|
|
508
|
+
|
|
509
|
+
In this example, we show what happens when simultaneously considering both capillary
|
|
510
|
+
rise and evaporation by assuming the same intensity of 1 mm/h:
|
|
511
|
+
|
|
512
|
+
>>> inputs.evaporation.series = 1.0
|
|
513
|
+
|
|
514
|
+
At first, one might assume |ga_garto| calculates the same infiltration rates as in the
|
|
515
|
+
:ref:`ga_garto_5h_1000mm` example because the capillary rise and evaporation cancel
|
|
516
|
+
each other out. However, we see slightly higher infiltration rates as in the
|
|
517
|
+
:ref:`ga_garto_5h_1000mm` results due to the different "priorities" of both processes.
|
|
518
|
+
For evaporation, method |Withdraw_AllBins_V1| prefers to take water from the wettest
|
|
519
|
+
bin (proceeds from right to left). For capillary rise, method |Withdraw_AllBins_V1|
|
|
520
|
+
prefers adding water to the dryest bin (proceeds from left to right):
|
|
521
|
+
|
|
522
|
+
.. integration-test::
|
|
523
|
+
|
|
524
|
+
>>> soildepth(1000.0)
|
|
525
|
+
>>> test("ga_garto_5h_1000mm_evap_caprise")
|
|
526
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
527
|
+
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
528
|
+
| 00:00 | 40.0 | 1.0 | 1.0 | 40.0 | 1.0 | 1.0 | 39.017221 | 0.0 | 1.0 | 1.0 | 0.734334 | 39.017221 | 0.0 | 1.0 | 1.0 | 0.734334 | 0.101064 0.434 0.101064 | 1000.0 114.742841 0.0 |
|
|
529
|
+
| 01:00 | 0.0 | 1.0 | 1.0 | 0.0 | 1.0 | 1.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | 0.102218 0.358898 0.102218 | 1000.0 144.335188 0.0 |
|
|
530
|
+
| 02:00 | 0.0 | 1.0 | 1.0 | 0.0 | 1.0 | 1.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | 0.103395 0.334413 0.103395 | 1000.0 155.273537 0.0 |
|
|
531
|
+
| 03:00 | 40.0 | 1.0 | 1.0 | 40.0 | 1.0 | 1.0 | 30.66013 | 0.0 | 1.0 | 1.0 | 8.576934 | 30.66013 | 0.0 | 1.0 | 1.0 | 8.576934 | 0.104598 0.434 0.104598 | 1000.0 200.638186 0.0 |
|
|
532
|
+
| 04:00 | 0.0 | 1.0 | 1.0 | 0.0 | 1.0 | 1.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 1.0 | 0.0 | 0.105881 0.383441 0.105881 | 1000.0 233.492414 0.0 |
|
|
533
|
+
|
|
534
|
+
There is no indication of an error in the water balance:
|
|
535
|
+
|
|
536
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
537
|
+
0.0
|
|
538
|
+
|
|
539
|
+
|
|
540
|
+
24 hours, no evaporation
|
|
541
|
+
________________________
|
|
542
|
+
|
|
543
|
+
In this and the following subsection, we deal with more complex series of rainfall
|
|
544
|
+
events spanning 24 hours:
|
|
545
|
+
|
|
546
|
+
>>> pub.timegrids = pub.timegrids.init
|
|
547
|
+
|
|
548
|
+
The examples demonstrate how |ga_garto| works when pronounced hiatus periods occur,
|
|
549
|
+
where the accuracy of the redistribution process becomes highly important.
|
|
550
|
+
Additionally, we perform some "stress tests" to check the robustness of the interaction
|
|
551
|
+
of the different underlying methods. We begin with a repeating pattern of hourly
|
|
552
|
+
rainfall sums of 0 mm and 40 mm and zero evaporation:
|
|
553
|
+
|
|
554
|
+
>>> inputs.rainfall.series = 12 * [0.0, 40.0]
|
|
555
|
+
>>> inputs.evaporation.series = 0.0
|
|
556
|
+
>>> inputs.capillaryrise.series = 0.0
|
|
557
|
+
|
|
558
|
+
The following "no evaporation" examples focus on a sufficiently deep soil column of 1 m
|
|
559
|
+
depth:
|
|
560
|
+
|
|
561
|
+
>>> soildepth(1000.0)
|
|
562
|
+
|
|
563
|
+
.. _ga_garto_24h_1000mm_3bins:
|
|
564
|
+
|
|
565
|
+
three bins
|
|
566
|
+
----------
|
|
567
|
+
|
|
568
|
+
For a series of 40 mm rainfall impulses, separated by hiatus periods of only one hour,
|
|
569
|
+
one should expect infiltration rates to decrease from event to event. However, the
|
|
570
|
+
eleventh event (21:00 - 22:00) deviates from this expectation. Inspecting the
|
|
571
|
+
evolution of the wetting fronts' relative moisture and depth reveals the cause. For
|
|
572
|
+
the first event (01:00 - 02:00), a single saturated wetting front (handled by the
|
|
573
|
+
second bin) is sufficient. For the next few subevents, an additional bin is required
|
|
574
|
+
for modelling new wetting fronts until they reach the old redistributing wetting front
|
|
575
|
+
of the second bin. From the seventh event (13:00 - 14:00), the new wetting front
|
|
576
|
+
cannot reach the depth of the old wetting front during the event anymore, but still in
|
|
577
|
+
the subsequent hiatus period. After the tenth event (19:00 - 20:00), the old front has
|
|
578
|
+
sufficiently grown to be out of reach for the new front, even during the hiatus period.
|
|
579
|
+
Then, |ga_garto| would need to activate a new bin to model the eleventh event with two
|
|
580
|
+
old and one new wetting front, which is impossible due to the limited number of
|
|
581
|
+
available bins:
|
|
582
|
+
|
|
583
|
+
ToDo: Should we think about increasing the number of bins automatically?
|
|
584
|
+
|
|
585
|
+
.. integration-test::
|
|
586
|
+
|
|
587
|
+
>>> test("ga_garto_24h_1000mm_3bins")
|
|
588
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
589
|
+
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
590
|
+
| 00:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 | 1000.0 0.0 0.0 |
|
|
591
|
+
| 01:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 38.896943 | 0.0 | 0.0 | 0.0 | 1.103057 | 38.896943 | 0.0 | 0.0 | 0.0 | 1.103057 | 0.1 0.434 0.1 | 1000.0 116.457913 0.0 |
|
|
592
|
+
| 02:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.364279 0.1 | 1000.0 147.18132 0.0 |
|
|
593
|
+
| 03:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 29.427627 | 0.0 | 0.0 | 0.0 | 10.572373 | 29.427627 | 0.0 | 0.0 | 0.0 | 10.572373 | 0.1 0.434 0.1 | 1000.0 204.564581 0.0 |
|
|
594
|
+
| 04:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.387148 0.1 | 1000.0 237.941999 0.0 |
|
|
595
|
+
| 05:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 25.626714 | 0.0 | 0.0 | 0.0 | 14.373286 | 25.626714 | 0.0 | 0.0 | 0.0 | 14.373286 | 0.1 0.434 0.1 | 1000.0 281.291271 0.0 |
|
|
596
|
+
| 06:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.397405 0.1 | 1000.0 315.903728 0.0 |
|
|
597
|
+
| 07:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 23.681158 | 0.0 | 0.0 | 0.0 | 16.318842 | 23.681158 | 0.0 | 0.0 | 0.0 | 16.318842 | 0.1 0.434 0.1 | 1000.0 352.192943 0.0 |
|
|
598
|
+
| 08:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.403518 0.1 | 1000.0 387.563853 0.0 |
|
|
599
|
+
| 09:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 22.433986 | 0.0 | 0.0 | 0.0 | 17.566014 | 22.433986 | 0.0 | 0.0 | 0.0 | 17.566014 | 0.1 0.434 0.1 | 1000.0 419.360565 0.0 |
|
|
600
|
+
| 10:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.407664 0.1 | 1000.0 455.257579 0.0 |
|
|
601
|
+
| 11:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 21.542888 | 0.0 | 0.0 | 0.0 | 18.457112 | 21.542888 | 0.0 | 0.0 | 0.0 | 18.457112 | 0.1 0.434 0.1 | 1000.0 483.86023 0.0 |
|
|
602
|
+
| 12:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.410698 0.1 | 1000.0 520.148824 0.0 |
|
|
603
|
+
| 13:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 20.851521 | 0.0 | 0.0 | 0.0 | 19.148479 | 20.851521 | 0.0 | 0.0 | 0.0 | 19.148479 | 0.1 0.410698 0.434 | 1000.0 549.592648 502.252611 |
|
|
604
|
+
| 14:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.413271 0.1 | 1000.0 582.437628 0.0 |
|
|
605
|
+
| 15:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 20.248024 | 0.0 | 0.0 | 0.0 | 19.751976 | 20.248024 | 0.0 | 0.0 | 0.0 | 19.751976 | 0.1 0.413271 0.434 | 1000.0 613.068675 513.880136 |
|
|
606
|
+
| 16:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.415161 0.1 | 1000.0 643.192319 0.0 |
|
|
607
|
+
| 17:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 19.76204 | 0.0 | 0.0 | 0.0 | 20.23796 | 19.76204 | 0.0 | 0.0 | 0.0 | 20.23796 | 0.1 0.415161 0.434 | 1000.0 674.655072 522.639168 |
|
|
608
|
+
| 18:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.416592 0.1 | 1000.0 702.704838 0.0 |
|
|
609
|
+
| 19:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 19.363437 | 0.0 | 0.0 | 0.0 | 20.636563 | 19.363437 | 0.0 | 0.0 | 0.0 | 20.636563 | 0.1 0.416592 0.434 | 1000.0 734.757786 529.403244 |
|
|
610
|
+
| 20:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.416592 0.41723 | 1000.0 762.475214 690.509816 |
|
|
611
|
+
| 21:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 20.503402 | 0.0 | 0.0 | 0.0 | 19.496598 | 20.503402 | 0.0 | 0.0 | 0.0 | 19.496598 | 0.1 0.416592 0.434 | 1000.0 792.704507 653.366365 |
|
|
612
|
+
| 22:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.418979 0.1 | 1000.0 822.429032 0.0 |
|
|
613
|
+
| 23:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 18.677018 | 0.0 | 0.0 | 0.0 | 21.322982 | 18.677018 | 0.0 | 0.0 | 0.0 | 21.322982 | 0.1 0.418979 0.434 | 1000.0 855.509696 540.914341 |
|
|
614
|
+
|
|
615
|
+
There is no indication of an error in the water balance:
|
|
616
|
+
|
|
617
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
618
|
+
0.0
|
|
619
|
+
|
|
620
|
+
.. _ga_garto_24h_1000mm_4bins:
|
|
621
|
+
|
|
622
|
+
four bins
|
|
623
|
+
---------
|
|
624
|
+
|
|
625
|
+
After setting the number of available bins to four, |ga_garto| can create all wetting
|
|
626
|
+
fronts required during the simulation period and predicts the infiltration rate
|
|
627
|
+
decrease expected for all events:
|
|
628
|
+
|
|
629
|
+
.. integration-test::
|
|
630
|
+
|
|
631
|
+
>>> nmbbins(4)
|
|
632
|
+
>>> test("ga_garto_24h_1000mm_4bins")
|
|
633
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
634
|
+
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
635
|
+
| 00:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 1000.0 0.0 0.0 0.0 |
|
|
636
|
+
| 01:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 38.896943 | 0.0 | 0.0 | 0.0 | 1.103057 | 38.896943 | 0.0 | 0.0 | 0.0 | 1.103057 | 0.1 0.434 0.1 0.1 | 1000.0 116.457913 0.0 0.0 |
|
|
637
|
+
| 02:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.364279 0.1 0.1 | 1000.0 147.18132 0.0 0.0 |
|
|
638
|
+
| 03:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 29.427627 | 0.0 | 0.0 | 0.0 | 10.572373 | 29.427627 | 0.0 | 0.0 | 0.0 | 10.572373 | 0.1 0.434 0.1 0.1 | 1000.0 204.564581 0.0 0.0 |
|
|
639
|
+
| 04:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.387148 0.1 0.1 | 1000.0 237.941999 0.0 0.0 |
|
|
640
|
+
| 05:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 25.626714 | 0.0 | 0.0 | 0.0 | 14.373286 | 25.626714 | 0.0 | 0.0 | 0.0 | 14.373286 | 0.1 0.434 0.1 0.1 | 1000.0 281.291271 0.0 0.0 |
|
|
641
|
+
| 06:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.397405 0.1 0.1 | 1000.0 315.903728 0.0 0.0 |
|
|
642
|
+
| 07:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 23.681158 | 0.0 | 0.0 | 0.0 | 16.318842 | 23.681158 | 0.0 | 0.0 | 0.0 | 16.318842 | 0.1 0.434 0.1 0.1 | 1000.0 352.192943 0.0 0.0 |
|
|
643
|
+
| 08:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.403518 0.1 0.1 | 1000.0 387.563853 0.0 0.0 |
|
|
644
|
+
| 09:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 22.434993 | 0.0 | 0.0 | 0.0 | 17.565007 | 22.434993 | 0.0 | 0.0 | 0.0 | 17.565007 | 0.1 0.434 0.1 0.1 | 1000.0 419.36358 0.0 0.0 |
|
|
645
|
+
| 10:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.407664 0.1 0.1 | 1000.0 455.260614 0.0 0.0 |
|
|
646
|
+
| 11:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 21.543879 | 0.0 | 0.0 | 0.0 | 18.456121 | 21.543879 | 0.0 | 0.0 | 0.0 | 18.456121 | 0.1 0.434 0.1 0.1 | 1000.0 483.866211 0.0 0.0 |
|
|
647
|
+
| 12:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.410698 0.1 0.1 | 1000.0 520.154838 0.0 0.0 |
|
|
648
|
+
| 13:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 20.852762 | 0.0 | 0.0 | 0.0 | 19.147238 | 20.852762 | 0.0 | 0.0 | 0.0 | 19.147238 | 0.1 0.410698 0.434 0.1 | 1000.0 549.604576 502.232076 0.0 |
|
|
649
|
+
| 14:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.413271 0.1 0.1 | 1000.0 582.447698 0.0 0.0 |
|
|
650
|
+
| 15:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 20.249245 | 0.0 | 0.0 | 0.0 | 19.750755 | 20.249245 | 0.0 | 0.0 | 0.0 | 19.750755 | 0.1 0.413271 0.434 0.1 | 1000.0 613.084239 513.859417 0.0 |
|
|
651
|
+
| 16:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.415161 0.1 0.1 | 1000.0 643.205436 0.0 0.0 |
|
|
652
|
+
| 17:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 19.763163 | 0.0 | 0.0 | 0.0 | 20.236837 | 19.763163 | 0.0 | 0.0 | 0.0 | 20.236837 | 0.1 0.415161 0.434 0.1 | 1000.0 674.67364 522.620811 0.0 |
|
|
653
|
+
| 18:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.416593 0.1 0.1 | 1000.0 702.72179 0.0 0.0 |
|
|
654
|
+
| 19:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 19.364813 | 0.0 | 0.0 | 0.0 | 20.635187 | 19.364813 | 0.0 | 0.0 | 0.0 | 20.635187 | 0.1 0.416593 0.434 0.1 | 1000.0 734.780849 529.379914 0.0 |
|
|
655
|
+
| 20:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.416593 0.41723 0.1 | 1000.0 762.498422 690.44692 0.0 |
|
|
656
|
+
| 21:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 19.10987 | 0.0 | 0.0 | 0.0 | 20.89013 | 19.10987 | 0.0 | 0.0 | 0.0 | 20.89013 | 0.1 0.41723 0.434 0.1 | 1000.0 794.446748 532.431799 0.0 |
|
|
657
|
+
| 22:00 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.41723 0.41729 0.1 | 1000.0 822.468829 652.505949 0.0 |
|
|
658
|
+
| 23:00 | 40.0 | 0.0 | 0.0 | 40.0 | 0.0 | 0.0 | 18.967684 | 0.0 | 0.0 | 0.0 | 21.032316 | 18.967684 | 0.0 | 0.0 | 0.0 | 21.032316 | 0.1 0.41729 0.434 0.1 | 1000.0 854.161255 532.72863 0.0 |
|
|
659
|
+
|
|
660
|
+
There is no indication of an error in the water balance:
|
|
661
|
+
|
|
662
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
663
|
+
0.0
|
|
664
|
+
|
|
665
|
+
24 hours, evaporation
|
|
666
|
+
_____________________
|
|
667
|
+
|
|
668
|
+
This subsection combines complex precipitation events with an evaporation rate of
|
|
669
|
+
1 mm/h:
|
|
670
|
+
|
|
671
|
+
>>> inputs.evaporation.series = 1.0
|
|
672
|
+
|
|
673
|
+
.. _ga_garto_24h_1000mm_evap:
|
|
674
|
+
|
|
675
|
+
multiple events
|
|
676
|
+
---------------
|
|
677
|
+
|
|
678
|
+
In contrast to the :ref:`ga_garto_5h_1000mm_evap` example, rainfall starts in the
|
|
679
|
+
second simulation step. Hence, the initial moisture (handled by the first bin)
|
|
680
|
+
decreases during the first simulation step:
|
|
681
|
+
|
|
682
|
+
.. integration-test::
|
|
683
|
+
|
|
684
|
+
>>> test("ga_garto_24h_1000mm_evap")
|
|
685
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
686
|
+
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
687
|
+
| 00:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.099 0.099 0.099 | 1000.0 0.0 0.0 0.0 |
|
|
688
|
+
| 01:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 39.041594 | 0.0 | 0.0 | 1.0 | 0.713078 | 39.041594 | 0.0 | 0.0 | 1.0 | 0.713078 | 0.099 0.434 0.099 0.099 | 1000.0 114.289319 0.0 0.0 |
|
|
689
|
+
| 02:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.358644 0.099 0.099 | 1000.0 143.607705 0.0 0.0 |
|
|
690
|
+
| 03:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 29.920271 | 0.0 | 0.0 | 1.0 | 9.273387 | 29.920271 | 0.0 | 0.0 | 1.0 | 9.273387 | 0.099 0.434 0.099 0.099 | 1000.0 200.040404 0.0 0.0 |
|
|
691
|
+
| 04:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.383262 0.099 0.099 | 1000.0 232.228153 0.0 0.0 |
|
|
692
|
+
| 05:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 26.151093 | 0.0 | 0.0 | 1.0 | 12.997939 | 26.151093 | 0.0 | 0.0 | 1.0 | 12.997939 | 0.099 0.434 0.099 0.099 | 1000.0 274.673421 0.0 0.0 |
|
|
693
|
+
| 06:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.394281 0.099 0.099 | 1000.0 308.23364 0.0 0.0 |
|
|
694
|
+
| 07:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 24.246288 | 0.0 | 0.0 | 1.0 | 14.881992 | 24.246288 | 0.0 | 0.0 | 1.0 | 14.881992 | 0.099 0.434 0.099 0.099 | 1000.0 343.682399 0.0 0.0 |
|
|
695
|
+
| 08:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.40086 0.099 0.099 | 1000.0 378.101578 0.0 0.0 |
|
|
696
|
+
| 09:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 23.029243 | 0.0 | 0.0 | 1.0 | 16.085756 | 23.029243 | 0.0 | 0.0 | 1.0 | 16.085756 | 0.099 0.434 0.099 0.099 | 1000.0 409.098052 0.0 0.0 |
|
|
697
|
+
| 10:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.40533 0.099 0.099 | 1000.0 444.121263 0.0 0.0 |
|
|
698
|
+
| 11:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 22.159184 | 0.0 | 0.0 | 1.0 | 16.946127 | 22.159184 | 0.0 | 0.0 | 1.0 | 16.946127 | 0.099 0.434 0.099 0.099 | 1000.0 471.945433 0.0 0.0 |
|
|
699
|
+
| 12:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.408607 0.099 0.099 | 1000.0 507.422909 0.0 0.0 |
|
|
700
|
+
| 13:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 21.486061 | 0.0 | 0.0 | 1.0 | 17.61165 | 21.486061 | 0.0 | 0.0 | 1.0 | 17.61165 | 0.099 0.408607 0.434 0.099 | 1000.0 535.098528 504.856362 0.0 |
|
|
701
|
+
| 14:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.4113 0.099 0.099 | 1000.0 568.331329 0.0 0.0 |
|
|
702
|
+
| 15:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 20.90663 | 0.0 | 0.0 | 1.0 | 18.184482 | 20.90663 | 0.0 | 0.0 | 1.0 | 18.184482 | 0.099 0.4113 0.434 0.099 | 1000.0 597.246501 519.184071 0.0 |
|
|
703
|
+
| 16:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.413387 0.099 0.099 | 1000.0 627.587693 0.0 0.0 |
|
|
704
|
+
| 17:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 20.421532 | 0.0 | 0.0 | 1.0 | 18.66414 | 20.421532 | 0.0 | 0.0 | 1.0 | 18.66414 | 0.099 0.413387 0.434 0.099 | 1000.0 657.465384 530.870913 0.0 |
|
|
705
|
+
| 18:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.414936 0.099 0.099 | 1000.0 685.713192 0.0 0.0 |
|
|
706
|
+
| 19:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 20.025604 | 0.0 | 0.0 | 1.0 | 19.055781 | 20.025604 | 0.0 | 0.0 | 1.0 | 19.055781 | 0.099 0.414936 0.434 0.099 | 1000.0 716.263636 539.87659 0.0 |
|
|
707
|
+
| 20:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.414936 0.416189 0.099 | 1000.0 742.803107 724.318214 0.0 |
|
|
708
|
+
| 21:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 19.689022 | 0.0 | 0.0 | 1.0 | 19.388809 | 19.689022 | 0.0 | 0.0 | 1.0 | 19.388809 | 0.099 0.416189 0.434 0.099 | 1000.0 773.818616 547.4229 0.0 |
|
|
709
|
+
| 22:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.416189 0.416346 0.099 | 1000.0 801.068162 680.245328 0.0 |
|
|
710
|
+
| 23:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 19.538331 | 0.0 | 0.0 | 1.0 | 19.538741 | 19.538331 | 0.0 | 0.0 | 1.0 | 19.538741 | 0.099 0.416346 0.434 0.099 | 1000.0 831.823337 548.446593 0.0 |
|
|
711
|
+
|
|
712
|
+
There is no indication of an error in the water balance:
|
|
713
|
+
|
|
714
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
715
|
+
0.0
|
|
716
|
+
|
|
717
|
+
.. _ga_garto_24h_1000mm_evap_continuous:
|
|
718
|
+
|
|
719
|
+
continuous event
|
|
720
|
+
----------------
|
|
721
|
+
|
|
722
|
+
Now, we define an extreme rainfall event with multiple increases and decreases in
|
|
723
|
+
intensity:
|
|
724
|
+
|
|
725
|
+
>>> inputs.rainfall.series = [
|
|
726
|
+
... 0.0, 10.0, 20.0, 10.0, 20.0, 30.0, 20.0, 30.0, 40.0, 30.0, 40.0, 50.0,
|
|
727
|
+
... 50.0, 40.0, 30.0, 40.0, 30.0, 20.0, 30.0, 20.0, 10.0, 20.0, 10.0, 0.0]
|
|
728
|
+
|
|
729
|
+
Because of the vast rainfall, the soil saturates entirely in the 20th hour, and
|
|
730
|
+
percolation becomes significant afterwards. In the 21st hour, it is restricted by
|
|
731
|
+
saturated conductivity and in the 22nd hour, by the current rainfall rate. Note there
|
|
732
|
+
is a difference in the behaviour especially relevant during the 21st hour, which we
|
|
733
|
+
discuss in the documentation on method |Redistribute_Front_V1|:
|
|
734
|
+
|
|
735
|
+
.. integration-test::
|
|
736
|
+
|
|
737
|
+
>>> test("ga_garto_24h_1000mm_evap_continuous")
|
|
738
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
739
|
+
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
740
|
+
| 00:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.099 0.099 0.099 | 1000.0 0.0 0.0 0.0 |
|
|
741
|
+
| 01:00 | 10.0 | 0.0 | 1.0 | 10.0 | 0.0 | 1.0 | 10.0 | 0.0 | 0.0 | 1.0 | 0.0 | 10.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.362114 0.099 0.099 | 1000.0 34.205692 0.0 0.0 |
|
|
742
|
+
| 02:00 | 20.0 | 0.0 | 1.0 | 20.0 | 0.0 | 1.0 | 20.0 | 0.0 | 0.0 | 1.0 | 0.0 | 20.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.423016 0.099 0.099 | 1000.0 86.415369 0.0 0.0 |
|
|
743
|
+
| 03:00 | 10.0 | 0.0 | 1.0 | 10.0 | 0.0 | 1.0 | 10.0 | 0.0 | 0.0 | 1.0 | 0.0 | 10.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.401285 0.099 0.099 | 1000.0 122.401136 0.0 0.0 |
|
|
744
|
+
| 04:00 | 20.0 | 0.0 | 1.0 | 20.0 | 0.0 | 1.0 | 20.0 | 0.0 | 0.0 | 1.0 | 0.0 | 20.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.432646 0.099 0.099 | 1000.0 167.842713 0.0 0.0 |
|
|
745
|
+
| 05:00 | 30.0 | 0.0 | 1.0 | 30.0 | 0.0 | 1.0 | 24.597228 | 0.0 | 0.0 | 1.0 | 4.402772 | 24.597228 | 0.0 | 0.0 | 1.0 | 4.402772 | 0.099 0.434 0.099 0.099 | 1000.0 240.588739 0.0 0.0 |
|
|
746
|
+
| 06:00 | 20.0 | 0.0 | 1.0 | 20.0 | 0.0 | 1.0 | 20.0 | 0.0 | 0.0 | 1.0 | 0.0 | 20.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.099 0.433999 0.099 0.099 | 1000.0 297.305986 0.0 0.0 |
|
|
747
|
+
| 07:00 | 30.0 | 0.0 | 1.0 | 30.0 | 0.0 | 1.0 | 20.265771 | 0.0 | 0.0 | 1.0 | 8.734229 | 20.265771 | 0.0 | 0.0 | 1.0 | 8.734229 | 0.099 0.434 0.099 0.099 | 1000.0 357.799995 0.0 0.0 |
|
|
748
|
+
| 08:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 19.185635 | 0.0 | 0.0 | 1.0 | 19.814365 | 19.185635 | 0.0 | 0.0 | 1.0 | 19.814365 | 0.099 0.434 0.099 0.099 | 1000.0 415.070547 0.0 0.0 |
|
|
749
|
+
| 09:00 | 30.0 | 0.0 | 1.0 | 30.0 | 0.0 | 1.0 | 18.424562 | 0.0 | 0.0 | 1.0 | 10.575438 | 18.424562 | 0.0 | 0.0 | 1.0 | 10.575438 | 0.099 0.434 0.099 0.099 | 1000.0 470.069238 0.0 0.0 |
|
|
750
|
+
| 10:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 17.854101 | 0.0 | 0.0 | 1.0 | 21.145899 | 17.854101 | 0.0 | 0.0 | 1.0 | 21.145899 | 0.099 0.434 0.099 0.099 | 1000.0 523.365062 0.0 0.0 |
|
|
751
|
+
| 11:00 | 50.0 | 0.0 | 1.0 | 50.0 | 0.0 | 1.0 | 17.407673 | 0.0 | 0.0 | 1.0 | 31.592327 | 17.407673 | 0.0 | 0.0 | 1.0 | 31.592327 | 0.099 0.434 0.099 0.099 | 1000.0 575.328266 0.0 0.0 |
|
|
752
|
+
| 12:00 | 50.0 | 0.0 | 1.0 | 50.0 | 0.0 | 1.0 | 17.047104 | 0.0 | 0.0 | 1.0 | 31.952896 | 17.047104 | 0.0 | 0.0 | 1.0 | 31.952896 | 0.099 0.434 0.099 0.099 | 1000.0 626.215142 0.0 0.0 |
|
|
753
|
+
| 13:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 16.748785 | 0.0 | 0.0 | 1.0 | 22.251215 | 16.748785 | 0.0 | 0.0 | 1.0 | 22.251215 | 0.099 0.434 0.099 0.099 | 1000.0 676.211516 0.0 0.0 |
|
|
754
|
+
| 14:00 | 30.0 | 0.0 | 1.0 | 30.0 | 0.0 | 1.0 | 16.497275 | 0.0 | 0.0 | 1.0 | 12.502725 | 16.497275 | 0.0 | 0.0 | 1.0 | 12.502725 | 0.099 0.434 0.099 0.099 | 1000.0 725.457114 0.0 0.0 |
|
|
755
|
+
| 15:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 16.282023 | 0.0 | 0.0 | 1.0 | 22.717977 | 16.282023 | 0.0 | 0.0 | 1.0 | 22.717977 | 0.099 0.434 0.099 0.099 | 1000.0 774.060169 0.0 0.0 |
|
|
756
|
+
| 16:00 | 30.0 | 0.0 | 1.0 | 30.0 | 0.0 | 1.0 | 16.095253 | 0.0 | 0.0 | 1.0 | 12.904747 | 16.095253 | 0.0 | 0.0 | 1.0 | 12.904747 | 0.099 0.434 0.099 0.099 | 1000.0 822.105699 0.0 0.0 |
|
|
757
|
+
| 17:00 | 20.0 | 0.0 | 1.0 | 20.0 | 0.0 | 1.0 | 15.931516 | 0.0 | 0.0 | 1.0 | 3.068484 | 15.931516 | 0.0 | 0.0 | 1.0 | 3.068484 | 0.099 0.434 0.099 0.099 | 1000.0 869.662463 0.0 0.0 |
|
|
758
|
+
| 18:00 | 30.0 | 0.0 | 1.0 | 30.0 | 0.0 | 1.0 | 15.786723 | 0.0 | 0.0 | 1.0 | 13.213277 | 15.786723 | 0.0 | 0.0 | 1.0 | 13.213277 | 0.099 0.434 0.099 0.099 | 1000.0 916.78701 0.0 0.0 |
|
|
759
|
+
| 19:00 | 20.0 | 0.0 | 1.0 | 20.0 | 0.0 | 1.0 | 15.657507 | 0.0 | 0.0 | 1.0 | 3.342493 | 15.657507 | 0.0 | 0.0 | 1.0 | 3.342493 | 0.099 0.434 0.099 0.099 | 1000.0 963.525835 0.0 0.0 |
|
|
760
|
+
| 20:00 | 10.0 | 0.0 | 1.0 | 10.0 | 0.0 | 1.0 | 10.0 | 0.867385 | 0.0 | 1.0 | 0.0 | 10.0 | 0.867385 | 0.0 | 1.0 | 0.0 | 0.429914 0.429914 0.429914 0.429914 | 1000.0 0.0 0.0 0.0 |
|
|
761
|
+
| 21:00 | 20.0 | 0.0 | 1.0 | 20.0 | 0.0 | 1.0 | 17.495333 | 12.776553 | 0.0 | 1.0 | 2.136333 | 17.495333 | 12.776553 | 0.0 | 1.0 | 2.136333 | 0.434001 0.434001 0.434001 0.434001 | 1000.0 0.0 0.0 0.0 |
|
|
762
|
+
| 22:00 | 10.0 | 0.0 | 1.0 | 10.0 | 0.0 | 1.0 | 10.0 | 10.0 | 0.0 | 1.0 | 0.0 | 10.0 | 10.0 | 0.0 | 1.0 | 0.0 | 0.433001 0.433001 0.433001 0.433001 | 1000.0 0.0 0.0 0.0 |
|
|
763
|
+
| 23:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.432001 0.432001 0.432001 0.432001 | 1000.0 0.0 0.0 0.0 |
|
|
764
|
+
|
|
765
|
+
There is no indication of an error in the water balance:
|
|
766
|
+
|
|
767
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
768
|
+
0.0
|
|
769
|
+
|
|
770
|
+
.. _ga_garto_24h_1000mm_evap_interruptions:
|
|
771
|
+
|
|
772
|
+
long interruption
|
|
773
|
+
-----------------
|
|
774
|
+
|
|
775
|
+
We define three strong rainfall impulses with hiatus periods of ten and eleven hours to
|
|
776
|
+
give better insight into the longer-term behaviour of wetting front redistribution:
|
|
777
|
+
|
|
778
|
+
>>> inputs.rainfall.series = 0.0
|
|
779
|
+
>>> inputs.rainfall.series[[0, 11, 23]] = 40.0, 15.0, 15.0
|
|
780
|
+
|
|
781
|
+
The second, smaller rainfall impulse cause the creation of a second wetting front.
|
|
782
|
+
This front does not become fully saturated and requires about three hours for to reach
|
|
783
|
+
the first front's depth:
|
|
784
|
+
|
|
785
|
+
.. integration-test::
|
|
786
|
+
|
|
787
|
+
>>> test("ga_garto_24h_1000mm_evap_interruptions")
|
|
788
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
789
|
+
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
790
|
+
| 00:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 39.024721 | 0.0 | 0.0 | 1.0 | 0.727698 | 39.024721 | 0.0 | 0.0 | 1.0 | 0.727698 | 0.1 0.434 0.1 0.1 | 1000.0 114.58773 0.0 0.0 |
|
|
791
|
+
| 01:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.358798 0.1 0.1 | 1000.0 144.020647 0.0 0.0 |
|
|
792
|
+
| 02:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.334277 0.1 0.1 | 1000.0 154.826468 0.0 0.0 |
|
|
793
|
+
| 03:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.318405 0.1 0.1 | 1000.0 161.499839 0.0 0.0 |
|
|
794
|
+
| 04:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.306195 0.1 0.1 | 1000.0 166.212888 0.0 0.0 |
|
|
795
|
+
| 05:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.295993 0.1 0.1 | 1000.0 169.763106 0.0 0.0 |
|
|
796
|
+
| 06:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.287043 0.1 0.1 | 1000.0 172.539757 0.0 0.0 |
|
|
797
|
+
| 07:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.27894 0.1 0.1 | 1000.0 174.764504 0.0 0.0 |
|
|
798
|
+
| 08:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.27144 0.1 0.1 | 1000.0 176.576626 0.0 0.0 |
|
|
799
|
+
| 09:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.264387 0.1 0.1 | 1000.0 178.069861 0.0 0.0 |
|
|
800
|
+
| 10:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.257672 0.1 0.1 | 1000.0 179.310578 0.0 0.0 |
|
|
801
|
+
| 11:00 | 15.0 | 0.0 | 1.0 | 15.0 | 0.0 | 1.0 | 15.0 | 0.0 | 0.0 | 1.0 | 0.0 | 15.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.257672 0.408371 0.1 | 1000.0 179.504341 92.697947 0.0 |
|
|
802
|
+
| 12:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.257672 0.348534 0.1 | 1000.0 179.691196 142.414 0.0 |
|
|
803
|
+
| 13:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.257672 0.329314 0.1 | 1000.0 179.868591 166.271421 0.0 |
|
|
804
|
+
| 14:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.316885 0.1 0.1 | 1000.0 181.074289 0.0 0.0 |
|
|
805
|
+
| 15:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.306472 0.1 0.1 | 1000.0 185.3631 0.0 0.0 |
|
|
806
|
+
| 16:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.297508 0.1 0.1 | 1000.0 188.713192 0.0 0.0 |
|
|
807
|
+
| 17:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.289506 0.1 0.1 | 1000.0 191.404458 0.0 0.0 |
|
|
808
|
+
| 18:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.282184 0.1 0.1 | 1000.0 193.608049 0.0 0.0 |
|
|
809
|
+
| 19:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.275362 0.1 0.1 | 1000.0 195.436907 0.0 0.0 |
|
|
810
|
+
| 20:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.268921 0.1 0.1 | 1000.0 196.969814 0.0 0.0 |
|
|
811
|
+
| 21:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.262774 0.1 0.1 | 1000.0 198.264096 0.0 0.0 |
|
|
812
|
+
| 22:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.256861 0.1 0.1 | 1000.0 199.362866 0.0 0.0 |
|
|
813
|
+
| 23:00 | 15.0 | 0.0 | 1.0 | 15.0 | 0.0 | 1.0 | 15.0 | 0.0 | 0.0 | 1.0 | 0.0 | 15.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.1 0.256861 0.408284 0.1 | 1000.0 199.547726 92.265084 0.0 |
|
|
814
|
+
|
|
815
|
+
There is no indication of an error in the water balance:
|
|
816
|
+
|
|
817
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
818
|
+
0.0
|
|
819
|
+
|
|
820
|
+
.. _ga_garto_24h_sealed:
|
|
821
|
+
|
|
822
|
+
sealed surface
|
|
823
|
+
--------------
|
|
824
|
+
|
|
825
|
+
One can mark individual soil compartments as "sealed":
|
|
826
|
+
|
|
827
|
+
>>> sealed(True)
|
|
828
|
+
|
|
829
|
+
Then, the soil's surface prevents infiltration and all rainfall evaporates, or becomes
|
|
830
|
+
surface runoff:
|
|
831
|
+
|
|
832
|
+
.. integration-test::
|
|
833
|
+
|
|
834
|
+
>>> test("ga_garto_24h_sealed")
|
|
835
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
836
|
+
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
837
|
+
| 00:00 | 40.0 | 0.0 | 1.0 | 40.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 39.0 | 0.0 | 0.0 | 0.0 | 1.0 | 39.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
838
|
+
| 01:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
839
|
+
| 02:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
840
|
+
| 03:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
841
|
+
| 04:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
842
|
+
| 05:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
843
|
+
| 06:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
844
|
+
| 07:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
845
|
+
| 08:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
846
|
+
| 09:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
847
|
+
| 10:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
848
|
+
| 11:00 | 15.0 | 0.0 | 1.0 | 15.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 14.0 | 0.0 | 0.0 | 0.0 | 1.0 | 14.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
849
|
+
| 12:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
850
|
+
| 13:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
851
|
+
| 14:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
852
|
+
| 15:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
853
|
+
| 16:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
854
|
+
| 17:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
855
|
+
| 18:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
856
|
+
| 19:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
857
|
+
| 20:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
858
|
+
| 21:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
859
|
+
| 22:00 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
860
|
+
| 23:00 | 15.0 | 0.0 | 1.0 | 15.0 | 0.0 | 1.0 | 0.0 | 0.0 | 0.0 | 1.0 | 14.0 | 0.0 | 0.0 | 0.0 | 1.0 | 14.0 | 0.1 0.1 0.1 0.1 | 0.0 0.0 0.0 0.0 |
|
|
861
|
+
|
|
862
|
+
There is no indication of an error in the water balance:
|
|
863
|
+
|
|
864
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
865
|
+
0.0
|
|
866
|
+
|
|
867
|
+
|
|
868
|
+
.. _ga_garto_5h_3soils:
|
|
869
|
+
|
|
870
|
+
three compartments
|
|
871
|
+
------------------
|
|
872
|
+
|
|
873
|
+
We prepare three soil compartments within the same model instance, of which the last
|
|
874
|
+
one is sealed:
|
|
875
|
+
|
|
876
|
+
>>> nmbsoils(3)
|
|
877
|
+
>>> sealed(False, False, True)
|
|
878
|
+
|
|
879
|
+
|
|
880
|
+
We must define each compartment's area but only the depth of unsealed ones:
|
|
881
|
+
|
|
882
|
+
>>> soilarea(1.0, 2.0, 3.0)
|
|
883
|
+
>>> soildepth(400.0, 100.0, nan)
|
|
884
|
+
|
|
885
|
+
We take the soil properties for sand (first compartment) and clay (second compartment)
|
|
886
|
+
from table 1 of :cite:t:`ref-Lai2015`:
|
|
887
|
+
|
|
888
|
+
>>> residualmoisture(0.02, 0.09, nan)
|
|
889
|
+
>>> saturationmoisture(0.417, 0.385, nan)
|
|
890
|
+
>>> saturatedconductivity(235.6, 0.6, nan)
|
|
891
|
+
>>> poresizedistribution(0.694, 0.165, nan)
|
|
892
|
+
>>> airentrypotential(72.6, 373.0, nan)
|
|
893
|
+
|
|
894
|
+
Due to changing the arrays' shapes, we need to update the memorised initial conditions
|
|
895
|
+
required for checking the water balance:
|
|
896
|
+
|
|
897
|
+
>>> test.reset_inits()
|
|
898
|
+
>>> conditions = model.conditions
|
|
899
|
+
|
|
900
|
+
Sand allows for much more infiltration than clay, of course. So, the wetting front
|
|
901
|
+
created during the first rainfall impulse reaches the sand soil's bottom (at a depth of
|
|
902
|
+
400 mm) during the 6th hour. The tiny amount of percolation (0.0002 mm) at this time
|
|
903
|
+
is due to numerical inaccuracy (or the fact that |Merge_SoilDepthOvershootings_V1|
|
|
904
|
+
considers water overshooting the soil's depth as groundwater recharge). In contrast,
|
|
905
|
+
in the clay soil, the deepest wetting front propagates to a depth of less than 70 mm
|
|
906
|
+
during the entire 24 h period only:
|
|
907
|
+
|
|
908
|
+
.. integration-test::
|
|
909
|
+
|
|
910
|
+
>>> test("ga_garto_5h_3soils")
|
|
911
|
+
| date | rainfall | capillaryrise | evaporation | surfacewatersupply | soilwatersupply | demand | infiltration | percolation | soilwateraddition | withdrawal | surfacerunoff | totalinfiltration | totalpercolation | totalsoilwateraddition | totalwithdrawal | totalsurfacerunoff | moisture | frontdepth |
|
|
912
|
+
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|
913
|
+
| 00:00 | 40.0 | 0.0 | 1.0 | 40.0 40.0 40.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 40.0 14.791244 0.0 | 0.019062 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 24.279057 39.0 | 11.597081 | 0.003177 | 0.0 | 1.0 | 27.593019 | 0.1 0.1 0.1 0.301056 0.385 0.1 0.1 0.1 0.1 0.1 0.1 0.1 | 400.0 100.0 0.0 193.881434 51.652432 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
914
|
+
| 01:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.1 0.1 0.1 0.230493 0.332214 0.1 0.1 0.1 0.1 0.1 0.1 0.1 | 400.0 100.0 0.0 291.056551 59.087523 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
915
|
+
| 02:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.1 0.1 0.1 0.209759 0.307931 0.1 0.1 0.1 0.1 0.1 0.1 0.1 | 400.0 100.0 0.0 336.929013 61.17858 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
916
|
+
| 03:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.1 0.1 0.1 0.197433 0.288756 0.1 0.1 0.1 0.1 0.1 0.1 0.1 | 400.0 100.0 0.0 369.288731 62.095805 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
917
|
+
| 04:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.1 0.1 0.1 0.188608 0.271453 0.1 0.1 0.1 0.1 0.1 0.1 0.1 | 400.0 100.0 0.0 394.781137 62.530085 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
918
|
+
| 05:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.000201 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.000033 | 0.0 | 0.5 | 0.0 | 0.184952 0.1 0.1 0.184953 0.254952 0.1 0.184953 0.1 0.1 0.184953 0.1 0.1 | 400.0 100.0 0.0 0.0 62.735058 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
919
|
+
| 06:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.182452 0.1 0.1 0.182453 0.238807 0.1 0.182453 0.1 0.1 0.182453 0.1 0.1 | 400.0 100.0 0.0 0.0 62.82789 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
920
|
+
| 07:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.179952 0.1 0.1 0.179953 0.222814 0.1 0.179953 0.1 0.1 0.179953 0.1 0.1 | 400.0 100.0 0.0 0.0 62.867167 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
921
|
+
| 08:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.177452 0.1 0.1 0.177453 0.206881 0.1 0.177453 0.1 0.1 0.177453 0.1 0.1 | 400.0 100.0 0.0 0.0 62.882303 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
922
|
+
| 09:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.174952 0.1 0.1 0.174953 0.190971 0.1 0.174953 0.1 0.1 0.174953 0.1 0.1 | 400.0 100.0 0.0 0.0 62.887463 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
923
|
+
| 10:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.172452 0.1 0.1 0.172453 0.175068 0.1 0.172453 0.1 0.1 0.172453 0.1 0.1 | 400.0 100.0 0.0 0.0 62.88896 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
924
|
+
| 11:00 | 15.0 | 0.0 | 1.0 | 15.0 15.0 15.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 15.0 11.882861 0.0 | 0.845942 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 2.520368 14.0 | 6.460954 | 0.14099 | 0.0 | 1.0 | 7.840123 | 0.172452 0.1 0.1 0.247859 0.175068 0.1 0.172452 0.385 0.1 0.172452 0.1 0.1 | 400.0 100.0 0.0 174.440504 62.88896 0.0 0.0 54.682601 0.0 0.0 0.0 0.0 |
|
|
925
|
+
| 12:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.172452 0.1 0.1 0.213064 0.336058 0.1 0.172452 0.1 0.1 0.172452 0.1 0.1 | 400.0 100.0 0.0 299.268379 64.393528 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
926
|
+
| 13:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.172452 0.1 0.1 0.200519 0.313074 0.1 0.172452 0.1 0.1 0.172452 0.1 0.1 | 400.0 100.0 0.0 397.400794 66.646073 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
927
|
+
| 14:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.00029 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.000048 | 0.0 | 0.5 | 0.0 | 0.197836 0.1 0.1 0.197837 0.295007 0.1 0.197837 0.1 0.1 0.197837 0.1 0.1 | 400.0 100.0 0.0 0.0 67.692993 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
928
|
+
| 15:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.195336 0.1 0.1 0.195337 0.278839 0.1 0.195337 0.1 0.1 0.195337 0.1 0.1 | 400.0 100.0 0.0 0.0 68.220977 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
929
|
+
| 16:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.192836 0.1 0.1 0.192837 0.263536 0.1 0.192837 0.1 0.1 0.192837 0.1 0.1 | 400.0 100.0 0.0 0.0 68.489783 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
930
|
+
| 17:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.190336 0.1 0.1 0.190337 0.248646 0.1 0.190337 0.1 0.1 0.190337 0.1 0.1 | 400.0 100.0 0.0 0.0 68.623364 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
931
|
+
| 18:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.187836 0.1 0.1 0.187837 0.23395 0.1 0.187837 0.1 0.1 0.187837 0.1 0.1 | 400.0 100.0 0.0 0.0 68.686744 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
932
|
+
| 19:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.185336 0.1 0.1 0.185337 0.219342 0.1 0.185337 0.1 0.1 0.185337 0.1 0.1 | 400.0 100.0 0.0 0.0 68.714921 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
933
|
+
| 20:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.182836 0.1 0.1 0.182837 0.204772 0.1 0.182837 0.1 0.1 0.182837 0.1 0.1 | 400.0 100.0 0.0 0.0 68.726433 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
934
|
+
| 21:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.180336 0.1 0.1 0.180337 0.190216 0.1 0.180337 0.1 0.1 0.180337 0.1 0.1 | 400.0 100.0 0.0 0.0 68.730654 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
935
|
+
| 22:00 | 0.0 | 0.0 | 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 0.0 | 0.0 0.0 0.0 | 0.0 | 0.0 | 0.0 | 0.5 | 0.0 | 0.177836 0.1 0.1 0.177837 0.175665 0.1 0.177837 0.1 0.1 0.177837 0.1 0.1 | 400.0 100.0 0.0 0.0 68.731999 0.0 0.0 0.0 0.0 0.0 0.0 0.0 |
|
|
936
|
+
| 23:00 | 15.0 | 0.0 | 1.0 | 15.0 15.0 15.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 15.0 11.870193 0.0 | 1.037538 0.0 0.0 | 0.0 0.0 0.0 | 1.0 1.0 1.0 | 0.0 2.53189 14.0 | 6.456731 | 0.172923 | 0.0 | 1.0 | 7.843963 | 0.177836 0.1 0.1 0.247817 0.175665 0.1 0.177836 0.385 0.1 0.177836 0.1 0.1 | 400.0 100.0 0.0 185.229656 68.732 0.0 0.0 54.78341 0.0 0.0 0.0 0.0 |
|
|
937
|
+
|
|
938
|
+
There is no indication of an error in the water balance:
|
|
939
|
+
|
|
940
|
+
>>> round_(model.check_waterbalance(conditions))
|
|
941
|
+
0.0
|
|
942
|
+
"""
|
|
943
|
+
# import...
|
|
944
|
+
# ...from HydPy
|
|
945
|
+
from hydpy.core import modeltools
|
|
946
|
+
from hydpy.exe.modelimports import *
|
|
947
|
+
from hydpy.core.typingtools import *
|
|
948
|
+
|
|
949
|
+
# ...from ga
|
|
950
|
+
from hydpy.models.ga import ga_model
|
|
951
|
+
|
|
952
|
+
|
|
953
|
+
class Model(ga_model.BaseModel):
|
|
954
|
+
"""|ga_garto.DOCNAME.complete|."""
|
|
955
|
+
|
|
956
|
+
DOCNAME = modeltools.DocName(
|
|
957
|
+
short="GA-GARTO",
|
|
958
|
+
description=(
|
|
959
|
+
"main model for calculating the Green-Ampt / Talbot-Ogden infiltration "
|
|
960
|
+
"with redistribution"
|
|
961
|
+
),
|
|
962
|
+
)
|
|
963
|
+
__HYDPY_ROOTMODEL__ = False # ToDo: merge `ga_garto` and `ga_garto_submodel1`
|
|
964
|
+
|
|
965
|
+
INLET_METHODS = ()
|
|
966
|
+
RECEIVER_METHODS = ()
|
|
967
|
+
RUN_METHODS = (
|
|
968
|
+
ga_model.Calc_SurfaceWaterSupply_V1,
|
|
969
|
+
ga_model.Calc_SoilWaterSupply_V1,
|
|
970
|
+
ga_model.Calc_Demand_V1,
|
|
971
|
+
ga_model.Perform_GARTO_V1,
|
|
972
|
+
ga_model.Calc_TotalInfiltration_V1,
|
|
973
|
+
ga_model.Calc_TotalPercolation_V1,
|
|
974
|
+
ga_model.Calc_TotalSoilWaterAddition_V1,
|
|
975
|
+
ga_model.Calc_TotalWithdrawal_V1,
|
|
976
|
+
ga_model.Calc_TotalSurfaceRunoff_V1,
|
|
977
|
+
)
|
|
978
|
+
ADD_METHODS = (
|
|
979
|
+
ga_model.Return_RelativeMoisture_V1,
|
|
980
|
+
ga_model.Return_Conductivity_V1,
|
|
981
|
+
ga_model.Return_CapillaryDrive_V1,
|
|
982
|
+
ga_model.Return_DryDepth_V1,
|
|
983
|
+
ga_model.Return_LastActiveBin_V1,
|
|
984
|
+
ga_model.Active_Bin_V1,
|
|
985
|
+
ga_model.Percolate_FilledBin_V1,
|
|
986
|
+
ga_model.Shift_Front_V1,
|
|
987
|
+
ga_model.Redistribute_Front_V1,
|
|
988
|
+
ga_model.Infiltrate_WettingFrontBins_V1,
|
|
989
|
+
ga_model.Merge_FrontDepthOvershootings_V1,
|
|
990
|
+
ga_model.Merge_SoilDepthOvershootings_V1,
|
|
991
|
+
ga_model.Water_AllBins_V1,
|
|
992
|
+
ga_model.Withdraw_AllBins_V1,
|
|
993
|
+
)
|
|
994
|
+
OUTLET_METHODS = ()
|
|
995
|
+
SENDER_METHODS = ()
|
|
996
|
+
SUBMODELINTERFACES = ()
|
|
997
|
+
SUBMODELS = ()
|
|
998
|
+
|
|
999
|
+
|
|
1000
|
+
tester = Tester()
|
|
1001
|
+
cythonizer = Cythonizer()
|