wland¶
Base model wland is the core of the HydPy implementation of all WALRUS type
models [3], focussing on the interaction between surface water
and near-surface groundwater.
Method Features¶
-
class
hydpy.models.wland.wland_model.Model[source]¶ Bases:
hydpy.core.modeltools.ELSModelThe HydPy-W-Land model.
- The following “inlet update methods” are called in the given sequence at the beginning of each simulation step:
Calc_FR_V1Determine the fraction between rainfall and total precipitation.Calc_PM_V1Calculate the potential snowmelt.
- The following methods define the relevant components of a system of ODE equations (e.g. direct runoff):
Calc_FXS_V1Query the current surface water supply/extraction.Calc_FXG_V1Query the current seepage/extraction.Calc_PC_V1Calculate the corrected precipitation.Calc_PETL_V1Adjust the potential evapotranspiration of the land areas.Calc_PES_V1Adapt the potential evaporation for the surface water area.Calc_TF_V1Calculate the total amount of throughfall.Calc_EI_V1Calculate the interception evaporation.Calc_SF_V1Calculate the frozen amount of throughfall (snowfall).Calc_RF_V1Calculate the liquid amount of throughfall (rainfall).Calc_AM_V1Calculate the actual snowmelt.Calc_PS_V1Calculate the precipitation entering the surface water reservoir.Calc_W_V1Calculate the wetness index.Calc_PV_V1Calculate the rainfall (and snowmelt) entering the vadose zone.Calc_PQ_V1Calculate the rainfall (and snowmelt) entering the quickflow reservoir.Calc_Beta_V1Calculate the evapotranspiration reduction factor.Calc_ETV_V1Calculate the actual evapotranspiration from the vadose zone.Calc_ES_V1Calculate the actual evaporation from the surface water reservoir.Calc_FQS_V1Calculate the quickflow.Calc_FGS_V1Calculate the groundwater drainage or surface water infiltration.Calc_RH_V1Calculate the runoff height.Calc_DVEq_V1Calculate the equilibrium storage deficit of the vadose zone.Calc_DVEq_V2Calculate the equilibrium storage deficit of the vadose zone.Calc_DVEq_V3Calculate the equilibrium storage deficit of the vadose zone.Calc_DVEq_V4Calculate the equilibrium storage deficit of the vadose zone.Calc_DGEq_V1Calculate the equilibrium groundwater depth.Calc_GF_V1Calculate the gain factor for changes in groundwater depth.Calc_CDG_V1Calculate the change in the groundwater depth due to percolation and capillary rise.Calc_CDG_V2Calculate the change in the vadose zone’s storage deficit due to percolation, capillary rise, macropore-infiltration, seepage, groundwater drainage, and channel water infiltration.
- The following methods define the complete equations of an ODE system (e.g. change in storage of fast water due to effective precipitation and direct runoff):
Update_IC_V1Update the interception storage.Update_SP_V1Update the storage deficit.Update_DV_V1Update the storage deficit of the vadose zone.Update_DG_V1Update the groundwater depth.Update_HQ_V1Update the level of the quickflow reservoir.Update_HS_V1Update the surface water level.
- The following “outlet update methods” are called in the given sequence at the end of each simulation step:
Calc_ET_V1Calculate the total actual evapotranspiration.Calc_R_V1Calculate the runoff in m³/s.Pass_R_V1Update the outlet link sequence.
- The following “additional methods” might be called by one or more of the other methods or are meant to be directly called by the user:
Return_ErrorDV_V1Calculate the difference between the equilibrium and the actual storage deficit of the vadose zone.Return_DVH_V1Return the storage deficit of the vadose zone at a specific height above the groundwater table.Return_DVH_V2Return the storage deficit of the vadose zone at a specific height above the groundwater table.
- The following “submodels” might be called by one or more of the implemented methods or are meant to be directly called by the user:
PegasusDGEqPegasus iterator for finding the equilibrium groundwater depth.QuadDVEq_V1Adaptive quadrature method for integrating the equilibrium storage deficit of the vadose zone.QuadDVEq_V2Adaptive quadrature method for integrating the equilibrium storage deficit of the vadose zone.
-
numconsts: hydpy.core.modeltools.NumConstsELS¶
-
numvars: hydpy.core.modeltools.NumVarsELS¶
-
element: Optional[‘devicetools.Element’]¶
-
cymodel: Optional[typingtools.CyModelProtocol]¶
-
parameters: parametertools.Parameters¶
-
sequences: sequencetools.Sequences¶
-
masks: masktools.Masks¶
-
class
hydpy.models.wland.wland_model.Calc_FXS_V1[source]¶ Bases:
hydpy.core.modeltools.MethodQuery the current surface water supply/extraction.
- Requires the derived parameter:
- Requires the input sequence:
- Calculates the flux sequence:
- Basic equation:
- \[\begin{split}FXS_{fluxes} = \begin{cases} 0 &|\ FXS_{inputs} = 0 \\ \frac{FXS_{inputs}}{ASR} &|\ FXS_{inputs} \neq 0 \land ASR > 0 \\ inf &|\ FXS_{inputs} \neq 0 \land ASR = 0 \end{cases}\end{split}\]
Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> derived.asr(0.5) >>> inputs.fxs = 2.0 >>> model.calc_fxs_v1() >>> fluxes.fxs fxs(4.0) >>> derived.asr(0.0) >>> model.calc_fxs_v1() >>> fluxes.fxs fxs(inf) >>> inputs.fxs = 0.0 >>> model.calc_fxs_v1() >>> fluxes.fxs fxs(0.0)
-
class
hydpy.models.wland.wland_model.Calc_FXG_V1[source]¶ Bases:
hydpy.core.modeltools.MethodQuery the current seepage/extraction.
- Requires the derived parameters:
- Requires the input sequence:
- Calculates the flux sequence:
- Basic equation:
- \[\begin{split}FXG_{fluxes} = \begin{cases} 0 &|\ FXG_{inputs} = 0 \\ \frac{FXG_{inputs}}{AGR} &|\ FXG_{inputs} \neq 0 \land AGR > 0 \\ inf &|\ FXG_{inputs} \neq 0 \land AGR = 0 \end{cases}\end{split}\]
Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> derived.alr(0.5) >>> derived.agr(0.8) >>> inputs.fxg = 2.0 >>> model.calc_fxg_v1() >>> fluxes.fxg fxg(5.0) >>> derived.agr(0.0) >>> model.calc_fxg_v1() >>> fluxes.fxg fxg(inf) >>> inputs.fxg = 0.0 >>> model.calc_fxg_v1() >>> fluxes.fxg fxg(0.0)
-
class
hydpy.models.wland.wland_model.Calc_PC_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the corrected precipitation.
- Requires the control parameter:
- Requires the input sequence:
- Calculates the flux sequence:
- Basic equation:
\(PC = CP \cdot P\)
Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> cp(1.2) >>> inputs.p = 2.0 >>> model.calc_pc_v1() >>> fluxes.pc pc(2.4)
-
class
hydpy.models.wland.wland_model.Calc_PETL_V1[source]¶ Bases:
hydpy.core.modeltools.MethodAdjust the potential evapotranspiration of the land areas.
- Requires the control parameters:
- Requires the derived parameter:
- Requires the input sequence:
- Calculates the flux sequence:
- Basic equation:
\(PETL = CETP \cdot CPETL \cdot PET\)
Examples:
>>> from hydpy import pub, UnitTest >>> pub.timegrids = '2000-03-30', '2000-04-03', '1d' >>> from hydpy.models.wland import * >>> parameterstep() >>> nu(2) >>> lt(FIELD, DECIDIOUS) >>> cpet(0.8) >>> cpetl.field_mar = 1.25 >>> cpetl.field_apr = 1.5 >>> cpetl.decidious_mar = 1.75 >>> cpetl.decidious_apr = 2.0 >>> derived.moy.update() >>> inputs.pet = 2.0 >>> model.idx_sim = pub.timegrids.init['2000-03-31'] >>> model.calc_petl_v1() >>> fluxes.petl petl(2.0, 2.8) >>> model.idx_sim = pub.timegrids.init['2000-04-01'] >>> model.calc_petl_v1() >>> fluxes.petl petl(2.4, 3.2)
-
class
hydpy.models.wland.wland_model.Calc_PES_V1[source]¶ Bases:
hydpy.core.modeltools.MethodAdapt the potential evaporation for the surface water area.
- Requires the control parameters:
- Requires the derived parameter:
- Requires the input sequence:
- Calculates the flux sequence:
- Basic equation:
\(PES = CETP \cdot CPES \cdot PET\)
Examples:
>>> from hydpy import pub, UnitTest >>> pub.timegrids = '2000-03-30', '2000-04-03', '1d' >>> from hydpy.models.wland import * >>> parameterstep() >>> cpet(0.8) >>> cpes.mar = 1.25 >>> cpes.apr = 1.5 >>> derived.moy.update() >>> inputs.pet = 2.0 >>> model.idx_sim = pub.timegrids.init['2000-03-31'] >>> model.calc_pes_v1() >>> fluxes.pes pes(2.0) >>> model.idx_sim = pub.timegrids.init['2000-04-01'] >>> model.calc_pes_v1() >>> fluxes.pes pes(2.4)
-
class
hydpy.models.wland.wland_model.Calc_TF_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the total amount of throughfall.
- Requires the control parameters:
- Requires the derived parameters:
- Requires the flux sequence:
- Requires the state sequence:
- Calculates the flux sequence:
- Basic equation (discontinuous):
- \[\begin{split}TF = \begin{cases} P &|\ IC > IT \\ 0 &|\ IC < IT \end{cases}\end{split}\]
Examples:
>>> from hydpy import pub, UnitTest >>> pub.timegrids = '2000-03-30', '2000-04-03', '1d' >>> from hydpy.models.wland import * >>> parameterstep() >>> nu(1) >>> lt(FIELD) >>> ih(0.2) >>> lai.field_mar = 5.0 >>> lai.field_apr = 10.0 >>> derived.moy.update() >>> fluxes.pc = 5.0 >>> test = UnitTest( ... model=model, ... method=model.calc_tf_v1, ... last_example=6, ... parseqs=(states.ic, fluxes.tf), ... ) >>> test.nexts.ic = -4.0, 0.0, 1.0, 2.0, 3.0, 7.0
Without smoothing:
>>> sh(0.0) >>> derived.rh1.update() >>> model.idx_sim = pub.timegrids.init['2000-03-31'] >>> test() | ex. | ic | tf | -------------------- | 1 | -4.0 | 0.0 | | 2 | 0.0 | 0.0 | | 3 | 1.0 | 2.5 | | 4 | 2.0 | 5.0 | | 5 | 3.0 | 5.0 | | 6 | 7.0 | 5.0 |
With smoothing:
>>> sh(1.0) >>> derived.rh1.update() >>> model.idx_sim = pub.timegrids.init['2000-04-01'] >>> test() | ex. | ic | tf | ------------------------ | 1 | -4.0 | 0.0 | | 2 | 0.0 | 0.00051 | | 3 | 1.0 | 0.05 | | 4 | 2.0 | 2.5 | | 5 | 3.0 | 4.95 | | 6 | 7.0 | 5.0 |
-
class
hydpy.models.wland.wland_model.Calc_EI_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the interception evaporation.
- Requires the control parameter:
- Requires the flux sequence:
- Requires the state sequence:
- Calculates the flux sequence:
- Basic equation (discontinuous):
- \[\begin{split}EI = \begin{cases} PETL &|\ IC > 0 \\ 0 &|\ IC < 0 \end{cases}\end{split}\]
Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(1) >>> fluxes.petl = 5.0 >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_ei_v1, ... last_example=9, ... parseqs=(states.ic, fluxes.ei) ... ) >>> test.nexts.ic= -4.0, -3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0
Without smoothing:
>>> sh(0.0) >>> derived.rh1.update() >>> test() | ex. | ic | ei | -------------------- | 1 | -4.0 | 0.0 | | 2 | -3.0 | 0.0 | | 3 | -2.0 | 0.0 | | 4 | -1.0 | 0.0 | | 5 | 0.0 | 2.5 | | 6 | 1.0 | 5.0 | | 7 | 2.0 | 5.0 | | 8 | 3.0 | 5.0 | | 9 | 4.0 | 5.0 |
With smoothing:
>>> sh(1.0) >>> derived.rh1.update() >>> test() | ex. | ic | ei | ------------------------- | 1 | -4.0 | 0.0 | | 2 | -3.0 | 0.000005 | | 3 | -2.0 | 0.00051 | | 4 | -1.0 | 0.05 | | 5 | 0.0 | 2.5 | | 6 | 1.0 | 4.95 | | 7 | 2.0 | 4.99949 | | 8 | 3.0 | 4.999995 | | 9 | 4.0 | 5.0 |
-
class
hydpy.models.wland.wland_model.Calc_FR_V1[source]¶ Bases:
hydpy.core.modeltools.MethodDetermine the fraction between rainfall and total precipitation.
- Requires the control parameters:
- Requires the input sequence:
- Calculates the aide sequence:
- Basic equation:
\(FR = \frac{T- \left( TT - TI / 2 \right)}{TI}\)
- Restriction:
\(0 \leq FR \leq 1\)
Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> tt(1.0) >>> ti(4.0) >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_fr_v1, ... last_example=9, ... parseqs=(inputs.t, aides.fr) ... ) >>> test.nexts.t = -3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0 >>> test() | ex. | t | fr | --------------------- | 1 | -3.0 | 0.0 | | 2 | -2.0 | 0.0 | | 3 | -1.0 | 0.0 | | 4 | 0.0 | 0.25 | | 5 | 1.0 | 0.5 | | 6 | 2.0 | 0.75 | | 7 | 3.0 | 1.0 | | 8 | 4.0 | 1.0 | | 9 | 5.0 | 1.0 |
-
class
hydpy.models.wland.wland_model.Calc_RF_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the liquid amount of throughfall (rainfall).
- Requires the control parameter:
- Requires the flux sequence:
- Requires the aide sequence:
- Calculates the flux sequence:
- Basic equation:
\(RF = FR \cdot TF\)
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(1) >>> fluxes.tf = 2.0 >>> aides.fr = 0.8 >>> model.calc_rf_v1() >>> fluxes.rf rf(1.6)
-
class
hydpy.models.wland.wland_model.Calc_SF_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the frozen amount of throughfall (snowfall).
- Requires the control parameter:
- Requires the flux sequence:
- Requires the aide sequence:
- Calculates the flux sequence:
- Basic equation:
\(SF = (1-FR) \cdot TF\)
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(1) >>> fluxes.tf = 2.0 >>> aides.fr = 0.8 >>> model.calc_sf_v1() >>> fluxes.sf sf(0.4)
-
class
hydpy.models.wland.wland_model.Calc_PM_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the potential snowmelt.
- Requires the control parameters:
- Requires the derived parameter:
- Requires the input sequence:
- Calculates the flux sequence:
- Basic equation (discontinous):
\(PM = max \left( DDF \cdot (T - DDT), 0 \right)\)
Examples:
>>> from hydpy.models.wland import * >>> simulationstep('12h') >>> parameterstep('1d') >>> nu(1) >>> ddf(4.0) >>> ddt(1.0) >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_pm_v1, ... last_example=11, ... parseqs=(inputs.t, fluxes.pm) ... ) >>> test.nexts.t = -4.0, -3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0
Without smoothing:
>>> st(0.0) >>> derived.rt2.update() >>> test() | ex. | t | pm | --------------------- | 1 | -4.0 | 0.0 | | 2 | -3.0 | 0.0 | | 3 | -2.0 | 0.0 | | 4 | -1.0 | 0.0 | | 5 | 0.0 | 0.0 | | 6 | 1.0 | 0.0 | | 7 | 2.0 | 2.0 | | 8 | 3.0 | 4.0 | | 9 | 4.0 | 6.0 | | 10 | 5.0 | 8.0 | | 11 | 6.0 | 10.0 |
With smoothing:
>>> st(1.0) >>> derived.rt2.update() >>> test() | ex. | t | pm | ------------------------- | 1 | -4.0 | 0.0 | | 2 | -3.0 | 0.000001 | | 3 | -2.0 | 0.000024 | | 4 | -1.0 | 0.000697 | | 5 | 0.0 | 0.02 | | 6 | 1.0 | 0.411048 | | 7 | 2.0 | 2.02 | | 8 | 3.0 | 4.000697 | | 9 | 4.0 | 6.000024 | | 10 | 5.0 | 8.000001 | | 11 | 6.0 | 10.0 |
-
class
hydpy.models.wland.wland_model.Calc_AM_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the actual snowmelt.
- Requires the control parameter:
- Requires the derived parameter:
- Requires the flux sequence:
- Requires the state sequence:
- Calculates the flux sequence:
- Basic equation (discontinous):
- \[\begin{split}AM = \begin{cases} PM &|\ SP > 0 \\ 0 &|\ SP < 0 \end{cases}\end{split}\]
Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(1) >>> fluxes.pm = 2.0 >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_am_v1, ... last_example=9, ... parseqs=(states.sp, fluxes.am) ... ) >>> test.nexts.sp = -4.0, -3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0
Without smoothing:
>>> sh(0.0) >>> derived.rh1.update() >>> test() | ex. | sp | am | -------------------- | 1 | -4.0 | 0.0 | | 2 | -3.0 | 0.0 | | 3 | -2.0 | 0.0 | | 4 | -1.0 | 0.0 | | 5 | 0.0 | 1.0 | | 6 | 1.0 | 2.0 | | 7 | 2.0 | 2.0 | | 8 | 3.0 | 2.0 | | 9 | 4.0 | 2.0 |
With smoothing:
>>> sh(1.0) >>> derived.rh1.update() >>> test() | ex. | sp | am | ------------------------- | 1 | -4.0 | 0.0 | | 2 | -3.0 | 0.000002 | | 3 | -2.0 | 0.000204 | | 4 | -1.0 | 0.02 | | 5 | 0.0 | 1.0 | | 6 | 1.0 | 1.98 | | 7 | 2.0 | 1.999796 | | 8 | 3.0 | 1.999998 | | 9 | 4.0 | 2.0 |
-
class
hydpy.models.wland.wland_model.Calc_PS_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the precipitation entering the surface water reservoir.
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> fluxes.pc = 3.0 >>> model.calc_ps_v1() >>> fluxes.ps ps(3.0)
-
class
hydpy.models.wland.wland_model.Calc_W_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the wetness index.
- Requires the control parameter:
- Requires the fixed parameter:
- Requires the state sequence:
- Calculates the aide sequence:
- Basic equation:
\(W = cos \left( \frac{max(min(DV, CW), 0) \cdot Pi}{CW} \right) \cdot \frac{1}{2} + \frac{1}{2}\)
Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> cw(200.0) >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_w_v1, ... last_example=11, ... parseqs=(states.dv, aides.w) ... ) >>> test.nexts.dv = ( ... -50.0, -5.0, 0.0, 5.0, 50.0, 100.0, 150.0, 195.0, 200.0, 205.0, 250.0) >>> test() | ex. | dv | w | -------------------------- | 1 | -50.0 | 1.0 | | 2 | -5.0 | 1.0 | | 3 | 0.0 | 1.0 | | 4 | 5.0 | 0.998459 | | 5 | 50.0 | 0.853553 | | 6 | 100.0 | 0.5 | | 7 | 150.0 | 0.146447 | | 8 | 195.0 | 0.001541 | | 9 | 200.0 | 0.0 | | 10 | 205.0 | 0.0 | | 11 | 250.0 | 0.0 |
-
class
hydpy.models.wland.wland_model.Calc_PV_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the rainfall (and snowmelt) entering the vadose zone.
- Requires the control parameters:
- Requires the derived parameter:
- Requires the flux sequences:
- Requires the aide sequence:
- Calculates the flux sequence:
- Basic equation:
- \[\begin{split}PV = \Sigma \left ( \frac{AUR}{AGR} \cdot (RF + AM) \cdot \begin{cases} 0 &|\ LT = SEALED \\ 1-W &|\ LT \neq SEALED \end{cases} \right )\end{split}\]
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(3) >>> lt(FIELD, SOIL, SEALED) >>> aur(0.7, 0.2, 0.1) >>> derived.agr.update() >>> fluxes.rf = 3.0, 2.0, 1.0 >>> fluxes.am = 1.0, 2.0, 3.0 >>> aides.w = 0.75 >>> model.calc_pv_v1() >>> fluxes.pv pv(1.0)
-
class
hydpy.models.wland.wland_model.Calc_PQ_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the rainfall (and snowmelt) entering the quickflow reservoir.
- Requires the control parameters:
- Requires the flux sequences:
- Requires the aide sequence:
- Calculates the flux sequence:
- Basic equation:
- \[\begin{split}PQ = \Sigma \left( AUR \cdot (RF + AM) \cdot \begin{cases} 1 &|\ LT = SEALED \\ W &|\ LT \neq SEALED \end{cases} \right)\end{split}\]
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(3) >>> lt(FIELD, SOIL, SEALED) >>> aur(0.6, 0.3, 0.1) >>> fluxes.rf = 3.0, 2.0, 1.0 >>> fluxes.am = 1.0, 2.0, 2.0 >>> aides.w = 0.75 >>> model.calc_pq_v1() >>> fluxes.pq pq(3.0)
-
class
hydpy.models.wland.wland_model.Calc_Beta_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the evapotranspiration reduction factor.
- Requires the control parameters:
- Requires the state sequence:
- Calculates the aide sequence:
- Basic equations:
\(Beta = \frac{1 - x}{1 + x} \cdot \frac{1}{2} + \frac{1}{2}\)
\(x = exp \left( Zeta1 \cdot (DV - Zeta2) \right)\)
Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> zeta1(0.02) >>> zeta2(400.0) >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_beta_v1, ... last_example=12, ... parseqs=(states.dv, aides.beta) ... ) >>> test.nexts.dv = ( ... -100.0, 0.0, 100.0, 200.0, 300.0, 400.0, ... 500.0, 600.0, 700.0, 800.0, 900.0, 100000.0 ... ) >>> test() | ex. | dv | beta | ----------------------------- | 1 | -100.0 | 0.999955 | | 2 | 0.0 | 0.999665 | | 3 | 100.0 | 0.997527 | | 4 | 200.0 | 0.982014 | | 5 | 300.0 | 0.880797 | | 6 | 400.0 | 0.5 | | 7 | 500.0 | 0.119203 | | 8 | 600.0 | 0.017986 | | 9 | 700.0 | 0.002473 | | 10 | 800.0 | 0.000335 | | 11 | 900.0 | 0.000045 | | 12 | 100000.0 | 0.0 |
-
class
hydpy.models.wland.wland_model.Calc_ETV_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the actual evapotranspiration from the vadose zone.
- Requires the control parameters:
- Requires the derived parameter:
- Requires the flux sequences:
- Requires the aide sequence:
- Calculates the flux sequence:
- Basic equation:
- \[\begin{split}ETV = \Sigma \left( \frac{AUR}{AGR} \cdot (PETL - EI) \cdot \begin{cases} 0 &|\ LT = SEALED \\ Beta &|\ LT \neq SEALED \end{cases} \right)\end{split}\]
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(3) >>> lt(FIELD, SOIL, SEALED) >>> aur(0.4, 0.4, 0.2) >>> derived.agr.update() >>> fluxes.petl = 5.0 >>> fluxes.ei = 1.0, 3.0, 2.0 >>> aides.beta = 0.75 >>> model.calc_etv_v1() >>> fluxes.etv etv(2.25)
-
class
hydpy.models.wland.wland_model.Calc_ES_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the actual evaporation from the surface water reservoir.
- Requires the derived parameter:
- Requires the flux sequence:
- Requires the state sequence:
- Calculates the flux sequence:
- Basic equation (discontinous):
- \[\begin{split}ES = \begin{cases} PES &|\ HS > 0 \\ 0 &|\ HS \leq 0 \end{cases}\end{split}\]
Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> fluxes.pes = 5.0 >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_es_v1, ... last_example=9, ... parseqs=(states.hs, fluxes.es) ... ) >>> test.nexts.hs = -4.0, -3.0, -2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0
Without smoothing:
>>> sh(0.0) >>> derived.rh1.update() >>> test() | ex. | hs | es | -------------------- | 1 | -4.0 | 0.0 | | 2 | -3.0 | 0.0 | | 3 | -2.0 | 0.0 | | 4 | -1.0 | 0.0 | | 5 | 0.0 | 2.5 | | 6 | 1.0 | 5.0 | | 7 | 2.0 | 5.0 | | 8 | 3.0 | 5.0 | | 9 | 4.0 | 5.0 |
With smoothing:
>>> sh(1.0) >>> derived.rh1.update() >>> test() | ex. | hs | es | ------------------------- | 1 | -4.0 | 0.0 | | 2 | -3.0 | 0.000005 | | 3 | -2.0 | 0.00051 | | 4 | -1.0 | 0.05 | | 5 | 0.0 | 2.5 | | 6 | 1.0 | 4.95 | | 7 | 2.0 | 4.99949 | | 8 | 3.0 | 4.999995 | | 9 | 4.0 | 5.0 |
-
class
hydpy.models.wland.wland_model.Calc_ET_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the total actual evapotranspiration.
- Requires the control parameters:
- Requires the derived parameters:
- Requires the flux sequences:
- Calculates the flux sequence:
- Basic equation:
\(ET = ALR \cdot \bigl( \Sigma (AUR \cdot EI) + AGR \cdot ETV \bigl ) + ASR \cdot ES\)
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(2) >>> aur(0.8, 0.2) >>> derived.alr(0.8) >>> derived.asr(0.2) >>> derived.agr(0.5) >>> fluxes.ei = 0.5, 3.0 >>> fluxes.etv = 2.0 >>> fluxes.es = 3.0 >>> model.calc_et_v1() >>> fluxes.et et(2.2)
-
class
hydpy.models.wland.wland_model.Calc_DVEq_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the equilibrium storage deficit of the vadose zone.
- Requires the control parameters:
- Requires the derived parameter:
- Requires the state sequence:
- Calculates the aide sequence:
- Basic equation (discontinuous):
- \[\begin{split}DVEq = \begin{cases} 0 &|\ DG \leq PsiAE \\ ThetaS \cdot \left( DG - \frac{DG^{1-1/b}}{(1-1/b) \cdot PsiAE^{-1/B}} - \frac{PsiAE}{1-B} \right) &|\ PsiAE < DG \end{cases}\end{split}\]
Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> thetas(0.4) >>> psiae(300.0) >>> b(5.0) >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_dveq_v1, ... last_example=6, ... parseqs=(states.dg, aides.dveq) ... ) >>> test.nexts.dg = 200.0, 300.0, 400.0, 800.0, 1600.0, 3200.0
Without smoothing:
>>> test() | ex. | dg | dveq | ----------------------------- | 1 | 200.0 | 0.0 | | 2 | 300.0 | 0.0 | | 3 | 400.0 | 1.182498 | | 4 | 800.0 | 21.249634 | | 5 | 1600.0 | 97.612368 | | 6 | 3200.0 | 313.415248 |
-
class
hydpy.models.wland.wland_model.Return_DVH_V1[source]¶ Bases:
hydpy.core.modeltools.MethodReturn the storage deficit of the vadose zone at a specific height above the groundwater table.
- Required by the method:
- Requires the control parameters:
- Requires the derived parameter:
- Basic equation (discontinous):
- \[\begin{split}DVH = \begin{cases} 0 &|\ DG \leq PsiAE \\ ThetaS \cdot \left(1 - \left( \frac{h}{PsiAE} \right)^{-1/b} \right) &|\ PsiAE < DG \end{cases}\end{split}\]
This power law is the differential of the equation underlying method
Calc_DVEq_V1with respect to height. [3] also cites it (equation 6) but does not use it directly.Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> thetas(0.4) >>> psiae(300.0) >>> b(5.0)
With smoothing:
>>> from hydpy import repr_ >>> sh(0.0) >>> derived.rh1.update() >>> for h in [200.0, 299.0, 300.0, 301.0, 400.0, 500.0, 600.0]: ... print(repr_(h), repr_(model.return_dvh_v1(h))) 200.0 0.0 299.0 0.0 300.0 0.0 301.0 0.000266 400.0 0.022365 500.0 0.038848 600.0 0.05178
Without smoothing:
>>> sh(1.0) >>> derived.rh1.update() >>> for h in [200.0, 299.0, 300.0, 301.0, 400.0, 500.0, 600.0]: ... print(repr_(h), repr_(model.return_dvh_v1(h))) 200.0 0.0 299.0 0.000001 300.0 0.00004 301.0 0.000267 400.0 0.022365 500.0 0.038848 600.0 0.05178
-
class
hydpy.models.wland.wland_model.Calc_DVEq_V2[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the equilibrium storage deficit of the vadose zone.
- Required submethod:
- Requires the control parameters:
- Requires the derived parameters:
- Requires the state sequence:
- Calculates the aide sequence:
- Basic equation:
\(DHEq = \int_{0}^{DG} Return\_DVH\_V1(h) \ \ dh\)
Method
Calc_DVEq_V2integratesReturn_DVH_V1numerically, based on the Lobatto-Gauß quadrature. Hence, it should give nearly identical results as methodCalc_DVEq_V1, which provides the analytical solution to the underlying power law. The benefit of methodCalc_DVEq_V2is that it supports the regularisation ofReturn_DVH_V1, whichCalc_DVEq_V1does not. In our experience, this benefit does not justify the additional numerical cost. However, we keep it for educational purposes; mainly as a starting point to implement alternative relationships between the soil water deficit and the groundwater table that we cannot solve analytically.Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> derived.nug(0) >>> model.calc_dveq_v2() >>> aides.dveq dveq(nan)
>>> derived.nug(1) >>> thetas(0.4) >>> psiae(300.0) >>> b(5.0) >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_dveq_v2, ... last_example=8, ... parseqs=(states.dg, aides.dveq) ... ) >>> test.nexts.dg = 200.0, 299.0, 300.0, 301.0, 400.0, 800.0, 1600.0, 3200.0
Without smoothing:
>>> sh(0.0) >>> derived.rh1.update() >>> test() | ex. | dg | dveq | ----------------------------- | 1 | 200.0 | 0.0 | | 2 | 299.0 | 0.0 | | 3 | 300.0 | 0.0 | | 4 | 301.0 | 0.000133 | | 5 | 400.0 | 1.182498 | | 6 | 800.0 | 21.249634 | | 7 | 1600.0 | 97.612368 | | 8 | 3200.0 | 313.415248 |
With smoothing:
>>> sh(1.0) >>> derived.rh1.update() >>> test() | ex. | dg | dveq | ----------------------------- | 1 | 200.0 | 0.0 | | 2 | 299.0 | 0.0 | | 3 | 300.0 | 0.000033 | | 4 | 301.0 | 0.000176 | | 5 | 400.0 | 1.182542 | | 6 | 800.0 | 21.24972 | | 7 | 1600.0 | 97.612538 | | 8 | 3200.0 | 313.415588 |
-
class
hydpy.models.wland.wland_model.Calc_DVEq_V3[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the equilibrium storage deficit of the vadose zone.
- Required by the method:
- Requires the control parameters:
- Requires the derived parameter:
- Requires the state sequence:
- Calculates the aide sequence:
- Basic equation (discontinuous):
- \[\begin{split}DHEq = ThetaR \cdot DG + \begin{cases} 0 &|\ DG \leq PsiAE \\ ThetaS \cdot \left( DG - \frac{DG^{1-1/b}}{(1-1/b) \cdot PsiAE^{-1/B}} - \frac{PsiAE}{1-B} \right) &|\ PsiAE < DG \end{cases}\end{split}\]
Method
Calc_DVEq_V3extends the original WALRUS relationship between the groundwater depth and the equilibrium water deficit of the vadose zone defined by equation 5 of [3] and implemented into application modelwlandby methodCalc_DVEq_V1. ParameterThetaRintroduces a (small) amount of water to fill the tension-saturated area directly above the groundwater table. This “residual saturation” allows the direct injection of water into groundwater without risking infinitely fast groundwater depth changes.Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> thetas(0.4) >>> thetar(0.01) >>> psiae(300.0) >>> b(5.0) >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_dveq_v3, ... last_example=8, ... parseqs=(states.dg, aides.dveq) ... ) >>> test.nexts.dg = 200.0, 299.0, 300.0, 301.0, 400.0, 800.0, 1600.0, 3200.0
Without smoothing:
>>> test() | ex. | dg | dveq | ----------------------------- | 1 | 200.0 | 2.0 | | 2 | 299.0 | 2.99 | | 3 | 300.0 | 3.0 | | 4 | 301.0 | 3.01013 | | 5 | 400.0 | 5.152935 | | 6 | 800.0 | 28.718393 | | 7 | 1600.0 | 111.172058 | | 8 | 3200.0 | 337.579867 |
-
class
hydpy.models.wland.wland_model.Return_DVH_V2[source]¶ Bases:
hydpy.core.modeltools.MethodReturn the storage deficit of the vadose zone at a specific height above the groundwater table.
- Required by the methods:
- Requires the control parameters:
- Requires the derived parameter:
- Basic equation (discontinous):
- \[\begin{split}DVH = ThetaR + \begin{cases} 0 &|\ DG \leq PsiAE \\ (ThetaS-ThetaR) \cdot \left(1 - \left( \frac{h}{PsiAE} \right)^{-1/b} \right) &|\ PsiAE < DG \end{cases}\end{split}\]
The given equation is the differential of the equation underlying method
Calc_DVEq_V3with respect to height.Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> thetas(0.4) >>> thetar(0.01) >>> psiae(300.0) >>> b(5.0)
With smoothing:
>>> from hydpy import repr_ >>> sh(0.0) >>> derived.rh1.update() >>> for h in [200.0, 299.0, 300.0, 301.0, 400.0, 500.0, 600.0]: ... print(repr_(h), repr_(model.return_dvh_v2(h))) 200.0 0.01 299.0 0.01 300.0 0.01 301.0 0.010259 400.0 0.031806 500.0 0.047877 600.0 0.060485
Without smoothing:
>>> sh(1.0) >>> derived.rh1.update() >>> for h in [200.0, 299.0, 300.0, 301.0, 400.0, 500.0, 600.0]: ... print(repr_(h), repr_(model.return_dvh_v2(h))) 200.0 0.01 299.0 0.010001 300.0 0.010039 301.0 0.01026 400.0 0.031806 500.0 0.047877 600.0 0.060485
-
class
hydpy.models.wland.wland_model.Calc_DVEq_V4[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the equilibrium storage deficit of the vadose zone.
- Required submethod:
- Requires the control parameters:
- Requires the derived parameters:
- Requires the state sequence:
- Calculates the aide sequence:
- Basic equation:
\(DHEq = \int_{0}^{DG} Return\_DVH\_V2(h) \ \ dh\)
Method
Calc_DVEq_V4integratesReturn_DVH_V2numerically, based on the Lobatto-Gauß quadrature. The short discussion in the documentation onCalc_DVEq_V2(which integratesReturn_DVH_V1) also applies onCalc_DVEq_V4.Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> derived.nug(0) >>> model.calc_dveq_v4() >>> aides.dveq dveq(nan)
>>> derived.nug(1) >>> thetas(0.4) >>> thetar(0.01) >>> psiae(300.0) >>> b(5.0) >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_dveq_v4, ... last_example=8, ... parseqs=(states.dg, aides.dveq) ... ) >>> test.nexts.dg = 200.0, 299.0, 300.0, 301.0, 400.0, 800.0, 1600.0, 3200.0
Without smoothing:
>>> sh(0.0) >>> derived.rh1.update() >>> test() | ex. | dg | dveq | ----------------------------- | 1 | 200.0 | 2.0 | | 2 | 299.0 | 2.99 | | 3 | 300.0 | 3.0 | | 4 | 301.0 | 3.01013 | | 5 | 400.0 | 5.152935 | | 6 | 800.0 | 28.718393 | | 7 | 1600.0 | 111.172058 | | 8 | 3200.0 | 337.579867 |
With smoothing:
>>> sh(1.0) >>> derived.rh1.update() >>> test() | ex. | dg | dveq | ----------------------------- | 1 | 200.0 | 2.1 | | 2 | 299.0 | 3.09 | | 3 | 300.0 | 3.100032 | | 4 | 301.0 | 3.110172 | | 5 | 400.0 | 5.252979 | | 6 | 800.0 | 28.818477 | | 7 | 1600.0 | 111.272224 | | 8 | 3200.0 | 337.680198 |
-
class
hydpy.models.wland.wland_model.Return_ErrorDV_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the difference between the equilibrium and the actual storage deficit of the vadose zone.
- Required by the method:
- Required submethod:
- Requires the control parameters:
- Requires the derived parameter:
- Requires the state sequence:
- Basic equation:
\(DVEq_{Calc\_DVEq\_V3} - DV\)
Method
Return_ErrorDV_V1usesCalc_DVEq_V3to calculate the equilibrium deficit corresponding to the current groundwater depth. The following example shows that it resets the valuesDGandDVEq, which it needs to change temporarily, to their original states.Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> thetas(0.4) >>> thetar(0.01) >>> psiae(300.0) >>> b(5.0) >>> states.dg = -9.0 >>> aides.dveq = -99.0 >>> states.dv = 3.152935 >>> from hydpy import round_ >>> round_(model.return_errordv_v1(400.0)) 2.0 >>> states.dg dg(-9.0) >>> aides.dveq dveq(-99.0)
Technical checks:
As mentioned above, method
Return_ErrorDV_V1changes the values of the sequencesDGandDVEq, but only temporarily. Hence, we do not include them into the method specifications, even if the following check considers this to be erroneous:>>> from hydpy.core.testtools import check_selectedvariables >>> from hydpy.models.wland.wland_model import Return_ErrorDV_V1 >>> print(check_selectedvariables(Return_ErrorDV_V1)) Definitely missing: dg and dveq Possibly missing (REQUIREDSEQUENCES): Calc_DVEq_V3: DG Possibly missing (RESULTSEQUENCES): Calc_DVEq_V3: DVEq
-
class
hydpy.models.wland.wland_model.Calc_DGEq_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the equilibrium groundwater depth.
- Required submethod:
- Requires the control parameters:
- Requires the derived parameter:
- Requires the state sequence:
- Calculates the aide sequence:
Method
Calc_DGEq_V1calculates the equilibrium groundwater depth for the current water deficit of the vadose zone, following methodsReturn_DVH_V2andCalc_DVEq_V3. As we are not aware of an analytical solution, we solve it numerically via classPegasusDGEq, which performs an iterative root-search based on the Pegasus method.Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> thetas(0.4) >>> thetar(0.01) >>> psiae(300.0) >>> b(5.0) >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_dgeq_v1, ... last_example=13, ... parseqs=(states.dv, aides.dgeq) ... ) >>> test.nexts.dv = ( ... -1.0, -0.01, 0.0, 0.01, 1.0, 2.0, 2.99, 3.0, ... 3.01012983, 5.1529353, 28.71839324, 111.1720584, 337.5798671) >>> test() | ex. | dv | dgeq | ----------------------------- | 1 | -1.0 | 0.0 | | 2 | -0.01 | 0.0 | | 3 | 0.0 | 0.0 | | 4 | 0.01 | 1.0 | | 5 | 1.0 | 100.0 | | 6 | 2.0 | 200.0 | | 7 | 2.99 | 299.0 | | 8 | 3.0 | 300.0 | | 9 | 3.01013 | 301.0 | | 10 | 5.152935 | 400.0 | | 11 | 28.718393 | 800.0 | | 12 | 111.172058 | 1600.0 | | 13 | 337.579867 | 3200.0 |
-
class
hydpy.models.wland.wland_model.Calc_GF_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the gain factor for changes in groundwater depth.
- Required submethod:
- Requires the control parameters:
- Requires the derived parameter:
- Requires the state sequence:
- Requires the aide sequence:
- Calculates the aide sequence:
- Basic equation (discontinuous):
- \[\begin{split}GF = \begin{cases} 0 &|\ DG \leq 0 \\ Return\_DVH\_V2(DGEq - DG)^{-1} &|\ 0 < DG \end{cases}\end{split}\]
The original WALRUS model attributes a passive role to groundwater dynamics. All water entering or leaving the underground is added to or subtracted from the vadose zone, and the groundwater table only reacts on such changes until it is in equilibrium with the updated water deficit in the vadose zone. Hence, the movement of the groundwater table is generally slow. However, in catchments with near-surface water tables, we often observe fast responses of groundwater to input forcings, maybe due to rapid infiltration along macropores or the re-infiltration of channel water. In such situations, where the input water somehow bypasses the vadose zone, the speed of the rise of the groundwater table depends not only on the effective pore size of the soil material but also on the soil’s degree of saturation directly above the groundwater table. The smaller the remaining pore size, the larger the fraction between the water table’s rise and the actual groundwater recharge. We call this fraction the “gain factor” (
GF).The WALRUS model does not explicitly account for the soil moisture in different depths above the groundwater table. To keep the vertically lumped approach, we use the difference between the actual (
DG) and the equilibrium groundwater depth (DGEq) as an indicator for the wetness above the groundwater table. WhenDGis identical withDGEq, soil moisture and groundwater are in equilibrium. Then, the tension-saturated area is fully developed, and the groundwater table moves quickly (depending onThetaR). The opposite case is whenDGis much smaller thanDGEq. Such a situation occurs after a fast rise of the groundwater table when the soil water still needs much redistribution before it can be in equilibrium with groundwater. In the most extreme case, the gain factor is just as large as indicated by the effective pore size alone (depending onThetaS).The above discussion only applies as long as the groundwater table is below the soil surface. For large-scale ponding (see [3], section 5.11), we set
GFto zero. See the documentation on the methodsCalc_CDG_V1andCalc_FGS_V1for related discussions.Examples:
>>> from hydpy.models.wland import * >>> parameterstep() >>> thetas(0.4) >>> thetar(0.01) >>> psiae(300.0) >>> b(5.0) >>> sh(0.0) >>> aides.dgeq = 5000.0 >>> derived.rh1.update() >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_gf_v1, ... last_example=16, ... parseqs=(states.dg, aides.gf) ... ) >>> test.nexts.dg = ( ... -10.0, -1.0, 0.0, 1.0, 10.0, ... 1000.0, 2000.0, 3000.0, 4000.0, 4500.0, 4600.0, ... 4690.0, 4699.0, 4700.0, 4701.0, 4710.0) >>> test() | ex. | dg | gf | ---------------------------- | 1 | -10.0 | 0.0 | | 2 | -1.0 | 0.0 | | 3 | 0.0 | 2.81175 | | 4 | 1.0 | 5.623782 | | 5 | 10.0 | 5.626316 | | 6 | 1000.0 | 5.963555 | | 7 | 2000.0 | 6.496601 | | 8 | 3000.0 | 7.510869 | | 9 | 4000.0 | 10.699902 | | 10 | 4500.0 | 20.88702 | | 11 | 4600.0 | 31.440737 | | 12 | 4690.0 | 79.686112 | | 13 | 4699.0 | 97.470815 | | 14 | 4700.0 | 100.0 | | 15 | 4701.0 | 100.0 | | 16 | 4710.0 | 100.0 |
>>> sh(1.0) >>> derived.rh1.update() >>> test() | ex. | dg | gf | ---------------------------- | 1 | -10.0 | 0.0 | | 2 | -1.0 | 0.056232 | | 3 | 0.0 | 2.81175 | | 4 | 1.0 | 5.567544 | | 5 | 10.0 | 5.626316 | | 6 | 1000.0 | 5.963555 | | 7 | 2000.0 | 6.496601 | | 8 | 3000.0 | 7.510869 | | 9 | 4000.0 | 10.699902 | | 10 | 4500.0 | 20.88702 | | 11 | 4600.0 | 31.440737 | | 12 | 4690.0 | 79.686112 | | 13 | 4699.0 | 97.465434 | | 14 | 4700.0 | 99.609455 | | 15 | 4701.0 | 99.994314 | | 16 | 4710.0 | 100.0 |
-
class
hydpy.models.wland.wland_model.Calc_CDG_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the change in the groundwater depth due to percolation and capillary rise.
- Requires the control parameter:
- Requires the derived parameters:
- Requires the state sequences:
- Requires the aide sequence:
- Calculates the flux sequence:
- Basic equation (discontinuous):
\(CDG = \frac{DV-min(DVEq, DG)}{CV}\)
Note that this equation slightly differs from equation 6 of [3]. In case of large-scale ponding,
DVEqalways stays at zero and we letDGtake control of the speed of the water table movement. See the documentation on methodCalc_FGS_V1for additional information on the differences betweenwlandand WALRUS for this rare situation.Examples:
>>> from hydpy.models.wland import * >>> simulationstep('12h') >>> parameterstep('1d') >>> cv(10.0) >>> sh(0.0) >>> derived.rh1.update() >>> states.dv = 100.0 >>> states.dg = 1000.0 >>> aides.dveq = 80.0 >>> model.calc_cdg_v1() >>> fluxes.cdg cdg(1.0)
Without large-scale ponding:
>>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_cdg_v1, ... last_example=5, ... parseqs=(states.dg, fluxes.cdg) ... )
With large-scale ponding and without smoothing:
>>> states.dv = -10.0 >>> aides.dveq = 0.0 >>> test.nexts.dg = 10.0, 1.0, 0.0, -1.0, -10.0 >>> test() | ex. | dg | cdg | ----------------------- | 1 | 10.0 | -0.5 | | 2 | 1.0 | -0.5 | | 3 | 0.0 | -0.5 | | 4 | -1.0 | -0.45 | | 5 | -10.0 | 0.0 |
With large-scale ponding and with smoothing:
>>> sh(1.0) >>> derived.rh1.update() >>> test() | ex. | dg | cdg | --------------------------- | 1 | 10.0 | -0.5 | | 2 | 1.0 | -0.499891 | | 3 | 0.0 | -0.492458 | | 4 | -1.0 | -0.449891 | | 5 | -10.0 | 0.0 |
-
class
hydpy.models.wland.wland_model.Calc_CDG_V2[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the change in the vadose zone’s storage deficit due to percolation, capillary rise, macropore-infiltration, seepage, groundwater drainage, and channel water infiltration.
- Requires the control parameter:
- Requires the derived parameters:
- Requires the flux sequences:
- Requires the state sequences:
- Requires the aide sequences:
- Calculates the flux sequence:
- Basic equation:
\(CDG = \frac{DV-min(DVEq, DG)}{CV} + GF \cdot \big( FGS - PV - FXG \big)\)
Method
Calc_CDG_V2extendsCalc_CDG_V1, which implements the (nearly) original WALRUS relationship defined by equation 6 of [3]). See the documentation on methodCalc_GF_V1for a comprehensive explanation of the reason for this extension.Examples:
Without large-scale ponding:
>>> from hydpy.models.wland import * >>> simulationstep('12h') >>> parameterstep('1d') >>> cv(10.0) >>> sh(0.0) >>> derived.rh1.update() >>> states.dv = 100.0 >>> states.dg = 1000.0 >>> fluxes.pv = 1.0 >>> fluxes.fxg = 2.0 >>> fluxes.fgs = 4.0 >>> aides.dveq = 80.0 >>> aides.gf = 2.0 >>> model.calc_cdg_v2() >>> fluxes.cdg cdg(3.0)
With large-scale ponding and without smoothing:
>>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_cdg_v2, ... last_example=5, ... parseqs=(states.dg, fluxes.cdg) ... ) >>> aides.gf = 0.0 >>> states.dv = -10.0 >>> aides.dveq = 0.0 >>> test.nexts.dg = 10.0, 1.0, 0.0, -1.0, -10.0 >>> test() | ex. | dg | cdg | ----------------------- | 1 | 10.0 | -0.5 | | 2 | 1.0 | -0.5 | | 3 | 0.0 | -0.5 | | 4 | -1.0 | -0.45 | | 5 | -10.0 | 0.0 |
With large-scale ponding and with smoothing:
>>> sh(1.0) >>> derived.rh1.update() >>> test() | ex. | dg | cdg | --------------------------- | 1 | 10.0 | -0.5 | | 2 | 1.0 | -0.499891 | | 3 | 0.0 | -0.492458 | | 4 | -1.0 | -0.449891 | | 5 | -10.0 | 0.0 |
-
class
hydpy.models.wland.wland_model.Calc_FGS_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the groundwater drainage or surface water infiltration.
- Requires the control parameters:
- Requires the derived parameters:
- Requires the state sequences:
- Calculates the flux sequence:
For large-scale ponding,
wlandand WALRUS calculateFGSdifferently (even for discontinuous parameterisations). The WALRUS model redistributes water instantaneously in such cases (see [3], section 5.11), which relates to infinitely high flow velocities and cannot be handled by the numerical integration algorithm underlyingwland. Hence, we instead introduce the parameterCGF. Setting it to a value larger zero increases the flow velocity with increasing large-scale ponding. The larger the value ofCGF, the stronger the functional similarity of both approaches. But note that very high values can result in increased computation times.- Basic equations (discontinous):
\(Gradient = CD - DG - HS\)
\(ContactSurface = max \left( CD - DG, HS \right)\)
\(Excess = max \left( -DG, HS - CD, 0 \right)\)
\(Conductivity = \frac{1 + CGF \cdot Excess}{CG}\)
\(FGS = Gradient \cdot ContactSurface \cdot Conductivity\)
Examples:
>>> from hydpy.models.wland import * >>> simulationstep('12h') >>> parameterstep('1d') >>> cd(600.0) >>> cg(10000.0) >>> states.hs = 300.0 >>> from hydpy import UnitTest >>> test = UnitTest(model=model, ... method=model.calc_fgs_v1, ... last_example=15, ... parseqs=(states.dg, states.hs, fluxes.fgs)) >>> test.nexts.dg = ( ... -100.0, -1.0, 0.0, 1.0, 100.0, 200.0, 290.0, 299.0, ... 300.0, 301.0, 310.0, 400.0, 500.0, 600.0, 700.0)
Without smoothing and without increased conductivity for large-scale ponding:
>>> cgf(0.0) >>> sh(0.0) >>> derived.rh2.update() >>> test() | ex. | dg | hs | fgs | ---------------------------------- | 1 | -100.0 | 300.0 | 14.0 | | 2 | -1.0 | 300.0 | 9.04505 | | 3 | 0.0 | 300.0 | 9.0 | | 4 | 1.0 | 300.0 | 8.95505 | | 5 | 100.0 | 300.0 | 5.0 | | 6 | 200.0 | 300.0 | 2.0 | | 7 | 290.0 | 300.0 | 0.155 | | 8 | 299.0 | 300.0 | 0.01505 | | 9 | 300.0 | 300.0 | 0.0 | | 10 | 301.0 | 300.0 | -0.015 | | 11 | 310.0 | 300.0 | -0.15 | | 12 | 400.0 | 300.0 | -1.5 | | 13 | 500.0 | 300.0 | -3.0 | | 14 | 600.0 | 300.0 | -4.5 | | 15 | 700.0 | 300.0 | -6.0 |
Without smoothing but with increased conductivity for large-scale ponding:
>>> cgf(0.1) >>> test() | ex. | dg | hs | fgs | ----------------------------------- | 1 | -100.0 | 300.0 | 294.0 | | 2 | -1.0 | 300.0 | 10.85406 | | 3 | 0.0 | 300.0 | 9.0 | | 4 | 1.0 | 300.0 | 8.95505 | | 5 | 100.0 | 300.0 | 5.0 | | 6 | 200.0 | 300.0 | 2.0 | | 7 | 290.0 | 300.0 | 0.155 | | 8 | 299.0 | 300.0 | 0.01505 | | 9 | 300.0 | 300.0 | 0.0 | | 10 | 301.0 | 300.0 | -0.015 | | 11 | 310.0 | 300.0 | -0.15 | | 12 | 400.0 | 300.0 | -1.5 | | 13 | 500.0 | 300.0 | -3.0 | | 14 | 600.0 | 300.0 | -4.5 | | 15 | 700.0 | 300.0 | -6.0 |
With smoothing and with increased conductivity for large-scale ponding:
>>> sh(1.0) >>> derived.rh2.update() >>> test() | ex. | dg | hs | fgs | ----------------------------------- | 1 | -100.0 | 300.0 | 294.0 | | 2 | -1.0 | 300.0 | 10.87215 | | 3 | 0.0 | 300.0 | 9.369944 | | 4 | 1.0 | 300.0 | 8.97296 | | 5 | 100.0 | 300.0 | 5.0 | | 6 | 200.0 | 300.0 | 2.0 | | 7 | 290.0 | 300.0 | 0.155 | | 8 | 299.0 | 300.0 | 0.01505 | | 9 | 300.0 | 300.0 | 0.0 | | 10 | 301.0 | 300.0 | -0.015 | | 11 | 310.0 | 300.0 | -0.15 | | 12 | 400.0 | 300.0 | -1.5 | | 13 | 500.0 | 300.0 | -3.0 | | 14 | 600.0 | 300.0 | -4.5 | | 15 | 700.0 | 300.0 | -6.0 |
-
class
hydpy.models.wland.wland_model.Calc_FQS_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the quickflow.
- Requires the control parameters:
- Requires the state sequence:
- Calculates the flux sequence:
- Basic equation:
\(FQS = \frac{HQ}{CQ}\)
Example:
>>> from hydpy.models.wland import * >>> simulationstep('12h') >>> parameterstep('1d') >>> cq(10.0) >>> states.hq = 100.0 >>> model.calc_fqs_v1() >>> fluxes.fqs fqs(5.0)
-
class
hydpy.models.wland.wland_model.Calc_RH_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the runoff height.
- Requires the control parameters:
- Requires the derived parameter:
- Requires the state sequence:
- Calculates the flux sequence:
- Basic equation (discontinuous):
\(RH = CS \cdot \left( \frac{max(HS-HSMin, 0)}{CD-HSMin} \right) ^ {XS}\)
Examples:
>>> from hydpy.models.wland import * >>> simulationstep('12h') >>> parameterstep('1d') >>> cs(2.0) >>> cd(5.0) >>> hsmin(2.0) >>> xs(2.0) >>> from hydpy import UnitTest >>> test = UnitTest( ... model=model, ... method=model.calc_rh_v1, ... last_example=11, ... parseqs=(states.hs, fluxes.rh) ... ) >>> test.nexts.hs = 0.0, 1.0, 1.9, 2.0, 2.1, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0
Without smoothing:
>>> sh(0.0) >>> derived.rh2.update() >>> test() | ex. | hs | rh | ------------------------ | 1 | 0.0 | 0.0 | | 2 | 1.0 | 0.0 | | 3 | 1.9 | 0.0 | | 4 | 2.0 | 0.0 | | 5 | 2.1 | 0.001111 | | 6 | 3.0 | 0.111111 | | 7 | 4.0 | 0.444444 | | 8 | 5.0 | 1.0 | | 9 | 6.0 | 1.777778 | | 10 | 7.0 | 2.777778 | | 11 | 8.0 | 4.0 |
With smoothing:
>>> sh(0.1) >>> derived.rh2.update() >>> test() | ex. | hs | rh | ------------------------ | 1 | 0.0 | 0.0 | | 2 | 1.0 | 0.0 | | 3 | 1.9 | 0.000011 | | 4 | 2.0 | 0.000187 | | 5 | 2.1 | 0.001344 | | 6 | 3.0 | 0.111111 | | 7 | 4.0 | 0.444444 | | 8 | 5.0 | 1.0 | | 9 | 6.0 | 1.777778 | | 10 | 7.0 | 2.777778 | | 11 | 8.0 | 4.0 |
-
class
hydpy.models.wland.wland_model.Update_IC_V1[source]¶ Bases:
hydpy.core.modeltools.MethodUpdate the interception storage.
- Requires the control parameter:
- Requires the flux sequences:
- Updates the state sequence:
- Basic equation:
\(\frac{dIC}{dt} = PC - TF - EI\)
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(1) >>> fluxes.pc = 2.0 >>> fluxes.tf = 1.0 >>> fluxes.ei = 3.0 >>> states.ic.old = 4.0 >>> model.update_ic_v1() >>> states.ic ic(2.0)
-
class
hydpy.models.wland.wland_model.Update_SP_V1[source]¶ Bases:
hydpy.core.modeltools.MethodUpdate the storage deficit.
- Requires the control parameter:
- Requires the flux sequences:
- Updates the state sequence:
- Basic equation:
\(\frac{dSP}{dt} = SF - AM\)
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(1) >>> fluxes.sf = 1.0 >>> fluxes.am = 2.0 >>> states.sp.old = 3.0 >>> model.update_sp_v1() >>> states.sp sp(2.0)
-
class
hydpy.models.wland.wland_model.Update_DV_V1[source]¶ Bases:
hydpy.core.modeltools.MethodUpdate the storage deficit of the vadose zone.
- Requires the derived parameter:
- Requires the flux sequences:
- Updates the state sequence:
- Basic equation:
\(\frac{dDV}{dt} = -(FXG + PV - ETV - FGS)\)
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> fluxes.fxg = 1.0 >>> fluxes.pv = 2.0 >>> fluxes.etv = 3.0 >>> fluxes.fgs = 4.0 >>> states.dv.old = 5.0 >>> model.update_dv_v1() >>> states.dv dv(9.0)
-
class
hydpy.models.wland.wland_model.Update_DG_V1[source]¶ Bases:
hydpy.core.modeltools.MethodUpdate the groundwater depth.
- Requires the derived parameter:
- Requires the flux sequence:
- Updates the state sequence:
- Basic equations:
\(\frac{dDG}{dt} = CDG\)
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> states.dg.old = 2.0 >>> fluxes.cdg = 3.0 >>> model.update_dg_v1() >>> states.dg dg(5.0)
-
class
hydpy.models.wland.wland_model.Update_HQ_V1[source]¶ Bases:
hydpy.core.modeltools.MethodUpdate the level of the quickflow reservoir.
- Requires the flux sequences:
- Updates the state sequence:
- Basic equations:
\(\frac{dHQ}{dt} = PQ - FQS\)
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> states.hq.old = 2.0 >>> fluxes.pq = 3.0 >>> fluxes.fqs = 4.0 >>> model.update_hq_v1() >>> states.hq hq(1.0)
-
class
hydpy.models.wland.wland_model.Update_HS_V1[source]¶ Bases:
hydpy.core.modeltools.MethodUpdate the surface water level.
- Requires the derived parameters:
- Requires the flux sequences:
- Updates the state sequence:
- Basic equations:
\(\frac{dHS}{dt} = PS - ETS + FXS + \frac{ALR \cdot \left(AGR \cdot FGS + FQS \right) - RH}{ASR}\)
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> derived.alr(0.8) >>> derived.asr(0.2) >>> derived.agr(1.0) >>> states.hs.old = 2.0 >>> fluxes.fxs = 3.0 >>> fluxes.ps = 4.0 >>> fluxes.es = 5.0 >>> fluxes.fgs = 6.0 >>> fluxes.fqs = 7.0 >>> fluxes.rh = 8.0 >>> model.update_hs_v1() >>> states.hs hs(16.0)
-
class
hydpy.models.wland.wland_model.Calc_R_V1[source]¶ Bases:
hydpy.core.modeltools.MethodCalculate the runoff in m³/s.
- Requires the derived parameter:
- Requires the flux sequence:
- Calculates the flux sequence:
- Basic equation:
\(R = QF \cdot RH\)
Example:
>>> from hydpy.models.wland import * >>> parameterstep() >>> derived.qf(2.0) >>> fluxes.rh = 3.0 >>> model.calc_r_v1() >>> fluxes.r r(6.0)
-
class
hydpy.models.wland.wland_model.Pass_R_V1[source]¶ Bases:
hydpy.core.modeltools.MethodUpdate the outlet link sequence.
-
class
hydpy.models.wland.wland_model.PegasusDGEq(model: hydpy.core.modeltools.Model)[source]¶ Bases:
hydpy.auxs.roottools.PegasusPegasus iterator for finding the equilibrium groundwater depth.
-
METHODS: ClassVar[Tuple[Type[Method], …]] = (<class 'hydpy.models.wland.wland_model.Return_ErrorDV_V1'>,)¶
-
name= 'pegasusdgeq'¶
-
-
class
hydpy.models.wland.wland_model.QuadDVEq_V1(model: hydpy.core.modeltools.Model)[source]¶ Bases:
hydpy.auxs.quadtools.QuadAdaptive quadrature method for integrating the equilibrium storage deficit of the vadose zone.
-
METHODS: ClassVar[Tuple[Type[Method], …]] = (<class 'hydpy.models.wland.wland_model.Return_DVH_V1'>,)¶
-
name= 'quaddveq_v1'¶
-
-
class
hydpy.models.wland.wland_model.QuadDVEq_V2(model: hydpy.core.modeltools.Model)[source]¶ Bases:
hydpy.auxs.quadtools.QuadAdaptive quadrature method for integrating the equilibrium storage deficit of the vadose zone.
-
METHODS: ClassVar[Tuple[Type[Method], …]] = (<class 'hydpy.models.wland.wland_model.Return_DVH_V2'>,)¶
-
name= 'quaddveq_v2'¶
-
Parameter Features¶
Parameter tools¶
-
class
hydpy.models.wland.wland_parameters.SoilParameter(subvars: variabletools.SubgroupType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Base class for parameters related to the soil character.
Some parameters of HydPy-W-Land are strongly related to the soil character and come with default values. To apply these default values, use the soil keyword in combination with one of the available soil constants (see
SOIL_CONSTANTS).We take parameter
Band the soil characterSANDas an example, which has the default value 4.05:>>> from hydpy.models.wland import * >>> parameterstep() >>> b(soil=SAND) >>> b b(soil=SAND) >>> from hydpy import round_ >>> round_(b.value) 4.05
You are free to ignore the default values and to set anything you like:
>>> b.value = 3.0 >>> b b(3.0)
The string representation relies on the soil keyword only when used to define the value directly beforehand:
>>> b(4.05) >>> b b(4.05)
For a list of the available defaults, see the respective parameter’s documentation or the error message that class
SoilParameterraises if one passes a wrong value:>>> b(soil=0) Traceback (most recent call last): ... ValueError: While trying the set the value of parameter `b` of element `?`, the following error occurred: The given soil constant `0` is not among the available ones. Please use one of the following constants: SAND (1), LOAMY_SAND (2), SANDY_LOAM (3), SILT_LOAM (4), LOAM (5), SANDY_CLAY_LOAM (6), SILT_CLAY_LOAM (7), CLAY_LOAM (8), SANDY_CLAY (9), SILTY_CLAY (10), and CLAY (11).
It is not allowed to combine the soil keyword with other keywords:
>>> b(soil=SAND, landuse='acre') Traceback (most recent call last): ... TypeError: While trying the set the value of parameter `b` of element `?`, the following error occurred: It is not allowed to combine keyword `soil` with other keywords, but the following ones are also used: landuse.
>>> b(landuse='acre') Traceback (most recent call last): ... NotImplementedError: While trying the set the value of parameter `b` of element `?`, the following error occurred: The value(s) of parameter `b` of element `?` could not be set based on the given keyword arguments.
-
class
hydpy.models.wland.wland_parameters.LanduseParameter(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Base class for 1-dimensional parameters relevant for all types of land-use.
We take the parameter
DDTas an example. You can define its values by using the names of all land use-related constants in lower-case as keywords:>>> from hydpy.models.wland import * >>> simulationstep("1d") >>> parameterstep("1d") >>> nu(12) >>> lt(SEALED, FIELD, WINE, ORCHARD, SOIL, PASTURE, WETLAND, ... TREES, CONIFER, DECIDIOUS, MIXED, SEALED) >>> ddf(sealed=0.0, field=1.0, wine=2.0, orchard=3.0, soil=4.0, pasture=5.0, ... wetland=6.0, trees=7.0, conifer=8.0, decidious=9.0, mixed=10.0) >>> ddf ddf(conifer=8.0, decidious=9.0, field=1.0, mixed=10.0, orchard=3.0, pasture=5.0, sealed=0.0, soil=4.0, trees=7.0, wetland=6.0, wine=2.0) >>> ddf.values array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10., 0.])
You can average the current values with regard to the hydrological response area fractions, defined via parameter
AUR:>>> aur(0.01, 0.02, 0.04, 0.05, 0.06, 0.08, 0.09, 0.1, 0.12, 0.13, 0.14, 0.16) >>> from hydpy import round_ >>> round_(ddf.average_values()) 5.66
You can query or change the values related to specific land use types via attribute access:
>>> ddf.sealed array([ 0., 0.]) >>> ddf.sealed = 11.0, 12.0 >>> ddf ddf(11.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 12.0) >>> ddf.sealed = 12.0 >>> ddf ddf(conifer=8.0, decidious=9.0, field=1.0, mixed=10.0, orchard=3.0, pasture=5.0, sealed=12.0, soil=4.0, trees=7.0, wetland=6.0, wine=2.0)
-
MODEL_CONSTANTS: Dict[str, int] = {'CONIFER': 20, 'DECIDIOUS': 21, 'FIELD': 13, 'MIXED': 22, 'ORCHARD': 15, 'PASTURE': 17, 'SEALED': 12, 'SOIL': 16, 'TREES': 19, 'WETLAND': 18, 'WINE': 14}¶
-
mask¶
-
TYPE: Type¶
-
fastaccess: FastAccessType¶
-
subvars: SubVariablesType¶
-
-
class
hydpy.models.wland.wland_parameters.LanduseMonthParameter(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Base class for parameters which values depend both on the actual month and land-use type.
-
COLNAMES: ClassVar[Tuple[str, …]] = ('jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec')¶
-
ROWNAMES: ClassVar[Tuple[str, …]] = ('sealed', 'field', 'wine', 'orchard', 'soil', 'pasture', 'wetland', 'trees', 'conifer', 'decidious', 'mixed')¶
-
TYPE: Type¶
-
fastaccess: FastAccessType¶
-
subvars: SubVariablesType¶
-
Constants¶
HydPy-W-Land provides two types of constants: those associated with the average soil character of a sub-catchment and those associated with the land-use type of the different hydrological response units of a sub-catchment. They are all available via wildcard-imports:
>>> from hydpy.models.wland import *
>>> (SAND, LOAMY_SAND, SANDY_LOAM, SILT_LOAM, LOAM, SANDY_CLAY_LOAM,
... SILT_CLAY_LOAM, CLAY_LOAM, SANDY_CLAY, SILTY_CLAY, CLAY)
(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
>>> (SEALED, FIELD, WINE, ORCHARD, SOIL, PASTURE, WETLAND, TREES,
... CONIFER, DECIDIOUS, MIXED)
(12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
hydpy.models.wland.wland_constants.SAND= 1¶ Soil character constant for sand.
-
hydpy.models.wland.wland_constants.LOAMY_SAND= 2¶ Soil character constant for loamy sand.
-
hydpy.models.wland.wland_constants.SANDY_LOAM= 3¶ Soil character constant for sandy loam.
-
hydpy.models.wland.wland_constants.SILT_LOAM= 4¶ Soil character constant for silt loam.
-
hydpy.models.wland.wland_constants.LOAM= 5¶ Soil character constant for loam.
-
hydpy.models.wland.wland_constants.SANDY_CLAY_LOAM= 6¶ Soil character constant for sandy clay loam.
-
hydpy.models.wland.wland_constants.SILT_CLAY_LOAM= 7¶ Soil character constant for silt clay loam.
-
hydpy.models.wland.wland_constants.CLAY_LOAM= 8¶ Soil character constant for clay loam.
-
hydpy.models.wland.wland_constants.SANDY_CLAY= 9¶ Soil character constant for sandy clay.
-
hydpy.models.wland.wland_constants.SILTY_CLAY= 10¶ Soil character constant for silty clay.
-
hydpy.models.wland.wland_constants.CLAY= 11¶ Soil character constant for clay.
-
hydpy.models.wland.wland_constants.SEALED= 12¶ Land type constant for sealed surface.
-
hydpy.models.wland.wland_constants.FIELD= 13¶ Land type constant for fields.
-
hydpy.models.wland.wland_constants.WINE= 14¶ Land type constant for viticulture.
-
hydpy.models.wland.wland_constants.ORCHARD= 15¶ Land type constant for orchards.
-
hydpy.models.wland.wland_constants.SOIL= 16¶ Land type constant for bare, unsealed soils.
-
hydpy.models.wland.wland_constants.PASTURE= 17¶ Land type constant for pasture.
-
hydpy.models.wland.wland_constants.WETLAND= 18¶ Land type constant for wetlands.
-
hydpy.models.wland.wland_constants.TREES= 19¶ Land type constant for loose tree populations.
-
hydpy.models.wland.wland_constants.CONIFER= 20¶ Land type constant for coniferous forests.
-
hydpy.models.wland.wland_constants.DECIDIOUS= 21¶ Land type constant for deciduous forests.
-
hydpy.models.wland.wland_constants.MIXED= 22¶ Land type constant for mixed forests.
Control parameters¶
-
class
hydpy.models.wland.ControlParameters(master: hydpy.core.parametertools.Parameters, cls_fastaccess: Optional[Type[hydpy.core.parametertools.FastAccessParameter]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.variabletools.SubVariables[hydpy.core.parametertools.Parameters,Parameter,hydpy.core.parametertools.FastAccessParameter]Control parameters of model wland.
- The following classes are selected:
AL()Land area [km²].AS_()Surface water area [km²].NU()Number of hydrological response units [-].LT()Landuse type [-].AUR()Relative area of each hydrological response unit [-].CP()Factor for correcting precipitation [-].CPET()Factor for correcting potential evapotranspiration [-].CPETL()Factor for converting general potential evapotranspiration (usually grass reference evapotranspiration) to land-use specific potential evapotranspiration [-].CPES()Factor for converting general potential evapotranspiration (usually grass reference evapotranspiration) to potential evaporation from water areas [-].LAI()Leaf area index [-].IH()Interception capacity with respect to the leaf surface area [mm].TT()Threshold temperature for snow/rain [°C].TI()Temperature interval with a mixture of snow and rain [°C].DDF()Day degree factor [mm/°C/T].DDT()Day degree threshold temperature [°C].CW()Wetness index parameter [mm].CV()Vadose zone relaxation time constant [T].CG()Groundwater reservoir constant [mm T].CGF()Groundwater reservoir flood factor [1/mm].CQ()Quickflow reservoir relaxation time [T].CD()Channel depth [mm].CS()Surface water parameter for bankfull discharge [mm/T].HSMin()Surface water level where and below which discharge is zero [mm].XS()Stage-discharge relation exponent [-].B()Pore size distribution parameter [-].PsiAE()Air entry pressure [mm].ThetaS()Soil moisture content at saturation [-].ThetaR()Residual soil moisture deficit at tension saturation [-].Zeta1()Curvature parameter of the evapotranspiration reduction function [-].Zeta2()Inflection point of the evapotranspiration reduction function [mm].SH()General smoothing parameter related to the height of water columns [mm].ST()General smoothing parameter related to temperature [°C].
-
class
hydpy.models.wland.wland_control.AL(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Land area [km²].
-
TYPE¶
-
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.AS_(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Surface water area [km²].
-
TYPE¶
-
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.NU(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Number of hydrological response units [-].
- Required by the methods:
Calc_AM_V1Calc_EI_V1Calc_ETV_V1Calc_ET_V1Calc_FQS_V1Calc_PETL_V1Calc_PM_V1Calc_PQ_V1Calc_PV_V1Calc_RF_V1Calc_SF_V1Calc_TF_V1Update_IC_V1Update_SP_V1
Parameter
NUautomatically sets the length of most 1-dimensional parameters and sequences of HydPy-W-Land:>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(3) >>> lt.shape (3,) >>> states.ic.shape (3,)
Changing the value of parameter
NUreshapes the related parameters and sequences and thereby eventually deletes predefined values:>>> states.ic = 1.0 >>> states.ic ic(1.0, 1.0, 1.0) >>> nu(2) >>> states.ic ic(nan, nan)
Redefining the same value for parameter
NUdoes not affect any related parameter and sequence object:>>> states.ic = 1.0 >>> states.ic ic(1.0, 1.0) >>> nu(2) >>> states.ic ic(1.0, 1.0)
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.LT(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Landuse type [-].
- Required by the methods:
For better readability, use the land-use related constants defined in module
wland_constantsto set the individual hydrological response units’ land-use types:>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(11) >>> lt(SEALED, FIELD, WINE, ORCHARD, SOIL, PASTURE, WETLAND, ... TREES, CONIFER, DECIDIOUS, MIXED) >>> lt lt(SEALED, FIELD, WINE, ORCHARD, SOIL, PASTURE, WETLAND, TREES, CONIFER, DECIDIOUS, MIXED)
-
TYPE¶
-
CONSTANTS: hydpy.core.parametertools.Constants = {'CONIFER': 20, 'DECIDIOUS': 21, 'FIELD': 13, 'MIXED': 22, 'ORCHARD': 15, 'PASTURE': 17, 'SEALED': 12, 'SOIL': 16, 'TREES': 19, 'WETLAND': 18, 'WINE': 14}¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.AUR(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Relative area of each hydrological response unit [-].
- Required by the methods:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.CP(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Factor for correcting precipitation [-].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.CPET(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Factor for correcting potential evapotranspiration [-].
- Required by the methods:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.CPETL(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Factor for converting general potential evapotranspiration (usually grass reference evapotranspiration) to land-use specific potential evapotranspiration [-].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.CPES(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Factor for converting general potential evapotranspiration (usually grass reference evapotranspiration) to potential evaporation from water areas [-].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.LAI(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Leaf area index [-].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.IH(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Interception capacity with respect to the leaf surface area [mm].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.TT(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Threshold temperature for snow/rain [°C].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.TI(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Temperature interval with a mixture of snow and rain [°C].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.DDF(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Day degree factor [mm/°C/T].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.DDT(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Day degree threshold temperature [°C].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.CW(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Wetness index parameter [mm].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.CV(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Vadose zone relaxation time constant [T].
- Required by the methods:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.CG(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Groundwater reservoir constant [mm T].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.CGF(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Groundwater reservoir flood factor [1/mm].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.CQ(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Quickflow reservoir relaxation time [T].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.CD(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Channel depth [mm].
- Required by the methods:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.CS(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Surface water parameter for bankfull discharge [mm/T].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.HSMin(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Surface water level where and below which discharge is zero [mm].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.XS(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Stage-discharge relation exponent [-].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.B(subvars: variabletools.SubgroupType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Pore size distribution parameter [-].
- Required by the methods:
Calc_DGEq_V1Calc_DVEq_V1Calc_DVEq_V2Calc_DVEq_V3Calc_DVEq_V4Calc_GF_V1Return_DVH_V1Return_DVH_V2Return_ErrorDV_V1
Parameter
Bcomes with the following default values:>>> from hydpy.models.wland import * >>> parameterstep() >>> b.print_defaults() SAND: 4.05 LOAMY_SAND: 4.38 SANDY_LOAM: 4.9 SILT_LOAM: 5.3 LOAM: 5.39 SANDY_CLAY_LOAM: 7.12 SILT_CLAY_LOAM: 7.75 CLAY_LOAM: 8.52 SANDY_CLAY: 10.4 SILTY_CLAY: 10.4 CLAY: 11.4
See the documentation on class
SoilParameterfor further information.-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.PsiAE(subvars: variabletools.SubgroupType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Air entry pressure [mm].
- Required by the methods:
Calc_DGEq_V1Calc_DVEq_V1Calc_DVEq_V2Calc_DVEq_V3Calc_DVEq_V4Calc_GF_V1Return_DVH_V1Return_DVH_V2Return_ErrorDV_V1
Parameter
PsiAEcomes with the following default values:>>> from hydpy.models.wland import * >>> parameterstep() >>> psiae.print_defaults() SAND: 121.0 LOAMY_SAND: 90.0 SANDY_LOAM: 218.0 SILT_LOAM: 786.0 LOAM: 478.0 SANDY_CLAY_LOAM: 299.0 SILT_CLAY_LOAM: 356.0 CLAY_LOAM: 630.0 SANDY_CLAY: 153.0 SILTY_CLAY: 490.0 CLAY: 405.0
See the documentation on class
SoilParameterfor further information.-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.ThetaS(subvars: variabletools.SubgroupType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Soil moisture content at saturation [-].
- Required by the methods:
Calc_DGEq_V1Calc_DVEq_V1Calc_DVEq_V2Calc_DVEq_V3Calc_DVEq_V4Calc_GF_V1Return_DVH_V1Return_DVH_V2Return_ErrorDV_V1
Parameter
ThetaScomes with the following default values:>>> from hydpy.models.wland import * >>> parameterstep() >>> thetas.print_defaults() SAND: 0.395 LOAMY_SAND: 0.41 SANDY_LOAM: 0.435 SILT_LOAM: 0.485 LOAM: 0.451 SANDY_CLAY_LOAM: 0.42 SILT_CLAY_LOAM: 0.477 CLAY_LOAM: 0.476 SANDY_CLAY: 0.426 SILTY_CLAY: 0.492 CLAY: 0.482
See the documentation on class
SoilParameterfor further information.-
TYPE¶
-
trim(lower=None, upper=None)[source]¶ Trim
ThetaSfollowing \(1e^{-6} \leq ThetaS \leq 1.0\) and, ifThetaRexists for the relevant application model, also following \(ThetaR \leq ThetaS\).>>> from hydpy.models.wland import * >>> parameterstep()
>>> thetas(0.0) >>> thetas thetas(0.000001)
>>> thetar.value = 0.5 >>> thetas(0.4) >>> thetas thetas(0.5)
>>> thetas(soil=SANDY_LOAM) >>> thetas thetas(0.5)
>>> thetas(1.01) >>> thetas thetas(1.0)
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.ThetaR(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Residual soil moisture deficit at tension saturation [-].
- Required by the methods:
Calc_DGEq_V1Calc_DVEq_V3Calc_DVEq_V4Calc_GF_V1Return_DVH_V2Return_ErrorDV_V1
-
TYPE¶
-
trim(lower=None, upper=None)[source]¶ Trim
ThetaRfollowing \(1e^{-6} \leq ThetaR \leq ThetaS\).>>> from hydpy.models.wland import * >>> parameterstep() >>> thetar(0.0) >>> thetar thetar(0.000001) >>> thetas(0.41) >>> thetar(0.42) >>> thetar thetar(0.41)
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.Zeta1(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Curvature parameter of the evapotranspiration reduction function [-].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.Zeta2(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Inflection point of the evapotranspiration reduction function [mm].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.SH(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]General smoothing parameter related to the height of water columns [mm].
- Required by the methods:
-
TYPE¶
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_control.ST(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]General smoothing parameter related to temperature [°C].
-
TYPE¶
-
-
subvars: SubVariablesType¶
Derived parameters¶
-
class
hydpy.models.wland.DerivedParameters(master: hydpy.core.parametertools.Parameters, cls_fastaccess: Optional[Type[hydpy.core.parametertools.FastAccessParameter]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.variabletools.SubVariables[hydpy.core.parametertools.Parameters,Parameter,hydpy.core.parametertools.FastAccessParameter]Derived parameters of model wland.
- The following classes are selected:
MOY()References the “global” month of the year index array [-].NUG()Number of groundwater affected hydrological response units [-].AT()Total area [km²].ALR()Relative land area [-].ASR()Relative surface water area fraction [-].AGR()Relative groundwater area [-].QF()Factor for converting mm/T to m³/s [T m³ / mm s].RH1()Regularisation parameter related to the height of water columns used when applying regularisation functionsmooth_logistic1()[mm].RH2()Regularisation parameter related to the height of water columns used when applying regularisation functionsmooth_logistic2()[mm].RT2()Regularisation parameter related to temperature for applying regularisation functionsmooth_logistic2()) [°C].
-
class
hydpy.models.wland.wland_derived.MOY(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]References the “global” month of the year index array [-].
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_derived.NUG(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Number of groundwater affected hydrological response units [-].
- Required by the methods:
Calc_CDG_V1Calc_CDG_V2Calc_DGEq_V1Calc_DVEq_V1Calc_DVEq_V2Calc_DVEq_V3Calc_DVEq_V4Calc_FGS_V1Return_ErrorDV_V1Update_DG_V1Update_DV_V1
-
TYPE¶
-
update()[source]¶ Update
NUGbased on \(NUG = \Sigma (LT \neq SEALED)\).>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(5) >>> lt(SEALED, FIELD, SEALED, CONIFER, SEALED) >>> derived.nug.update() >>> derived.nug nug(2)
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_derived.AT(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Total area [km²].
-
TYPE¶
-
-
update()[source]¶ Update
ATbased on \(AT = AL + AS\).>>> from hydpy.models.wland import * >>> parameterstep() >>> al(2.0) >>> as_(1.0) >>> derived.at.update() >>> derived.at at(3.0)
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_derived.ALR(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Relative land area [-].
- Required by the methods:
-
TYPE¶
-
update()[source]¶ Update
ALRbased on \(ALR = AL / AT\).>>> from hydpy.models.wland import * >>> parameterstep() >>> al(1.4) >>> derived.at(2.0) >>> derived.alr.update() >>> derived.alr alr(0.7)
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_derived.ASR(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Relative surface water area fraction [-].
- Required by the methods:
-
TYPE¶
-
DERIVEDPARAMTERS= (<class 'hydpy.models.wland.wland_derived.AT'>,)¶
-
update()[source]¶ Update
ASRbased on \(ASR = AS / AT\).>>> from hydpy.models.wland import * >>> parameterstep() >>> as_(0.4) >>> derived.at(2.0) >>> derived.asr.update() >>> derived.asr asr(0.2)
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_derived.AGR(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Relative groundwater area [-].
- Required by the methods:
-
TYPE¶
-
update()[source]¶ Update
AGRbased on \(AGR = \Sigma AUR_{\overline{SEALED}}\).>>> from hydpy.models.wland import * >>> parameterstep() >>> nu(5) >>> lt(SEALED, SOIL, SEALED, FIELD, SEALED) >>> aur(0.04, 0.12, 0.2, 0.28, 0.36) >>> derived.agr.update() >>> derived.agr agr(0.4)
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_derived.QF(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Factor for converting mm/T to m³/s [T m³ / mm s].
- Required by the method:
-
TYPE¶
-
update()[source]¶ Update
QFbased onATand the current simulation step size.>>> from hydpy.models.wland import * >>> simulationstep('1d') >>> parameterstep() >>> derived.at(10.0) >>> derived.qf.update() >>> derived.qf qf(0.115741)
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_derived.RH1(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Regularisation parameter related to the height of water columns used when applying regularisation function
smooth_logistic1()[mm].- Required by the methods:
Calc_AM_V1Calc_CDG_V1Calc_CDG_V2Calc_DVEq_V2Calc_DVEq_V4Calc_ES_V1Calc_GF_V1Calc_TF_V1Return_DVH_V1Return_DVH_V2- Calculated by the method:
-
TYPE¶
-
update()[source]¶ Calculate the smoothing parameter value.
The documentation on module
smoothtoolsexplains the following example in some detail:>>> from hydpy.models.wland import * >>> parameterstep() >>> sh(0.0) >>> derived.rh1.update() >>> from hydpy.cythons.smoothutils import smooth_logistic1 >>> from hydpy import round_ >>> round_(smooth_logistic1(0.1, derived.rh1)) 1.0 >>> sh(2.5) >>> derived.rh1.update() >>> round_(smooth_logistic1(2.5, derived.rh1)) 0.99
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_derived.RH2(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Regularisation parameter related to the height of water columns used when applying regularisation function
smooth_logistic2()[mm].- Required by the methods:
-
TYPE¶
-
update()[source]¶ Calculate the smoothing parameter value.
The documentation on module
smoothtoolsexplains the following example in some detail:>>> from hydpy.models.wland import * >>> from hydpy.cythons.smoothutils import smooth_logistic2 >>> from hydpy import round_ >>> parameterstep() >>> sh(0.0) >>> derived.rh2.update() >>> round_(smooth_logistic2(0.0, derived.rh2)) 0.0 >>> sh(2.5) >>> derived.rh2.update() >>> round_(smooth_logistic2(2.5, derived.rh2)) 2.51
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_derived.RT2(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Regularisation parameter related to temperature for applying regularisation function
smooth_logistic2()) [°C].- Required by the method:
-
TYPE¶
-
update()[source]¶ Calculate the smoothing parameter value.
The documentation on module
smoothtoolsexplains the following example in some detail:>>> from hydpy.models.wland import * >>> from hydpy.cythons.smoothutils import smooth_logistic2 >>> from hydpy import round_ >>> parameterstep() >>> st(0.0) >>> derived.rt2.update() >>> round_(smooth_logistic2(0.0, derived.rt2)) 0.0 >>> st(2.5) >>> derived.rt2.update() >>> round_(smooth_logistic2(2.5, derived.rt2)) 2.51
-
subvars: SubVariablesType¶
Fixed parameters¶
-
class
hydpy.models.wland.FixedParameters(master: hydpy.core.parametertools.Parameters, cls_fastaccess: Optional[Type[hydpy.core.parametertools.FastAccessParameter]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.variabletools.SubVariables[hydpy.core.parametertools.Parameters,Parameter,hydpy.core.parametertools.FastAccessParameter]Fixed parameters of model wland.
- The following classes are selected:
Pi()π [-].
-
class
hydpy.models.wland.wland_fixed.Pi(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]π [-].
- Required by the method:
-
TYPE¶
-
subvars: SubVariablesType¶
Solver parameters¶
-
class
hydpy.models.wland.SolverParameters(master: hydpy.core.parametertools.Parameters, cls_fastaccess: Optional[Type[hydpy.core.parametertools.FastAccessParameter]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.variabletools.SubVariables[hydpy.core.parametertools.Parameters,Parameter,hydpy.core.parametertools.FastAccessParameter]Solver parameters of model wland.
- The following classes are selected:
AbsErrorMax()Absolute numerical error tolerance [mm/T].RelErrorMax()Relative numerical error tolerance [-].RelDTMin()Smallest relative integration time step size allowed [-].RelDTMax()Largest relative integration time step size allowed [-].
-
class
hydpy.models.wland.wland_solver.AbsErrorMax(subvars)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Absolute numerical error tolerance [mm/T].
-
TYPE¶
-
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_solver.RelErrorMax(subvars)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Relative numerical error tolerance [-].
-
TYPE¶
-
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_solver.RelDTMin(subvars)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Smallest relative integration time step size allowed [-].
-
TYPE¶
-
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_solver.RelDTMax(subvars)[source]¶ Bases:
hydpy.core.variabletools.Variable[hydpy.core.parametertools.SubParameters,hydpy.core.parametertools.FastAccessParameter]Largest relative integration time step size allowed [-].
-
TYPE¶
-
-
subvars: SubVariablesType¶
Sequence Features¶
Input sequences¶
-
class
hydpy.models.wland.InputSequences(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.sequencetools.ModelIOSequences[InputSequence,hydpy.core.sequencetools.FastAccessInputSequence]Input sequences of model wland.
- The following classes are selected:
-
vars: GroupType
-
class
hydpy.models.wland.wland_inputs.T(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ModelIOSequence[hydpy.core.sequencetools.InputSequences,hydpy.core.sequencetools.FastAccessInputSequence]Air temperature [°C].
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_inputs.P(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ModelIOSequence[hydpy.core.sequencetools.InputSequences,hydpy.core.sequencetools.FastAccessInputSequence]Precipitation [mm/T].
- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_inputs.PET(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ModelIOSequence[hydpy.core.sequencetools.InputSequences,hydpy.core.sequencetools.FastAccessInputSequence]Potential evapotranspiration [mm/T].
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_inputs.FXG(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ModelIOSequence[hydpy.core.sequencetools.InputSequences,hydpy.core.sequencetools.FastAccessInputSequence]Seepage/extraction (normalised to
AT) [mm/T].- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_inputs.FXS(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ModelIOSequence[hydpy.core.sequencetools.InputSequences,hydpy.core.sequencetools.FastAccessInputSequence]Surface water supply/extraction (normalised to
AT) [mm/T].- Required by the method:
-
subvars: SubVariablesType¶
Flux sequences¶
-
class
hydpy.models.wland.FluxSequences(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.sequencetools.OutputSequences[FluxSequence]Flux sequences of model wland.
- The following classes are selected:
PC()Corrected precipitation [mm/T].PETL()Adjusted potential evapotranspiration of the land areas [mm/T].PES()Adjusted potential evaporation of the surface water area [mm/T].TF()Total amount of throughfall [mm/T].EI()Interception evaporation [mm/T].RF()Rainfall (or, more concrete, the liquid amount of throughfall) [mm/T].SF()Snowfall (or, more concrete, the frozen amount of throughfall) [mm/T].PM()Potential snowmelt [mm/T].AM()Actual snowmelt [mm/T].PS()Precipitation entering the surface water reservoir [mm/T].PV()Rainfall (and snowmelt) entering the vadose zone [mm/T].PQ()Rainfall (and snowmelt) entering the quickflow reservoir [mm/T].ETV()Actual evapotranspiration from the vadose zone [mm/T].ES()Actual evaporation from the surface water [mm/T].ET()Total actual evapotranspiration [mm/T].FXS()Surface water supply/extraction (normalised toAS_) [mm/T].CDG()Change in the groundwater depth due to percolation and capillary rise [mm/T].FGS()Groundwater drainage/surface water infiltration [mm/T].FQS()Quickflow [mm/T].RH()Runoff height [mm/T].R()Runoff [m³/s].
-
vars: GroupType
-
class
hydpy.models.wland.wland_fluxes.PC(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Corrected precipitation [mm/T].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.PETL(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Adjusted potential evapotranspiration of the land areas [mm/T].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.PES(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Adjusted potential evaporation of the surface water area [mm/T].
- Calculated by the method:
- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.TF(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Total amount of throughfall [mm/T].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.EI(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Interception evaporation [mm/T].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.RF(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Rainfall (or, more concrete, the liquid amount of throughfall) [mm/T].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.SF(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Snowfall (or, more concrete, the frozen amount of throughfall) [mm/T].
- Calculated by the method:
- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.PM(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Potential snowmelt [mm/T].
- Calculated by the method:
- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.AM(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Actual snowmelt [mm/T].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.PS(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Precipitation entering the surface water reservoir [mm/T].
- Calculated by the method:
- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.PV(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Rainfall (and snowmelt) entering the vadose zone [mm/T].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.PQ(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Rainfall (and snowmelt) entering the quickflow reservoir [mm/T].
- Calculated by the method:
- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.ETV(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Actual evapotranspiration from the vadose zone [mm/T].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.ES(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Actual evaporation from the surface water [mm/T].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.ET(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Total actual evapotranspiration [mm/T].
- Calculated by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.FXS(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Surface water supply/extraction (normalised to
AS_) [mm/T].- Calculated by the method:
- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.FXG(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Seepage/extraction (normalised to
AL) [mm/T].- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.CDG(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Change in the groundwater depth due to percolation and capillary rise [mm/T].
- Calculated by the methods:
- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.FGS(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Groundwater drainage/surface water infiltration [mm/T].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.FQS(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Quickflow [mm/T].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.RH(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Runoff height [mm/T].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_fluxes.R(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.FluxSequences]Runoff [m³/s].
-
subvars: SubVariablesType¶
-
State sequences¶
-
class
hydpy.models.wland.StateSequences(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.sequencetools.OutputSequences[StateSequence]State sequences of model wland.
-
class
hydpy.models.wland.wland_states.IC(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.StateSequences],hydpy.core.sequencetools.ConditionSequence[hydpy.core.sequencetools.StateSequences,hydpy.core.sequencetools.FastAccessOutputSequence]Interception storage [mm].
- Updated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_states.SP(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.StateSequences],hydpy.core.sequencetools.ConditionSequence[hydpy.core.sequencetools.StateSequences,hydpy.core.sequencetools.FastAccessOutputSequence]Snow pack [mm].
- Updated by the method:
- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_states.DV(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.StateSequences],hydpy.core.sequencetools.ConditionSequence[hydpy.core.sequencetools.StateSequences,hydpy.core.sequencetools.FastAccessOutputSequence]Storage deficit of the vadose zone [mm].
- Updated by the method:
- Required by the methods:
Calc_Beta_V1Calc_CDG_V1Calc_CDG_V2Calc_DGEq_V1Calc_W_V1Return_ErrorDV_V1
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_states.DG(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.StateSequences],hydpy.core.sequencetools.ConditionSequence[hydpy.core.sequencetools.StateSequences,hydpy.core.sequencetools.FastAccessOutputSequence]Groundwater depth [mm].
- Updated by the method:
- Required by the methods:
Calc_CDG_V1Calc_CDG_V2Calc_DVEq_V1Calc_DVEq_V2Calc_DVEq_V3Calc_DVEq_V4Calc_FGS_V1Calc_GF_V1
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_states.HQ(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.StateSequences],hydpy.core.sequencetools.ConditionSequence[hydpy.core.sequencetools.StateSequences,hydpy.core.sequencetools.FastAccessOutputSequence]Level of the quickflow reservoir [mm].
- Updated by the method:
- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_states.HS(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.OutputSequence[hydpy.core.sequencetools.StateSequences],hydpy.core.sequencetools.ConditionSequence[hydpy.core.sequencetools.StateSequences,hydpy.core.sequencetools.FastAccessOutputSequence]Surface water level [mm].
- Updated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
Outlet sequences¶
-
class
hydpy.models.wland.OutletSequences(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.sequencetools.LinkSequences[OutletSequence]Outlet sequences of model wland.
- The following classes are selected:
Q()Discharge [m³/s].
-
class
hydpy.models.wland.wland_outlets.Q(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.LinkSequence[hydpy.core.sequencetools.OutletSequences]Discharge [m³/s].
- Calculated by the method:
-
subvars: SubVariablesType¶
Aide sequences¶
-
class
hydpy.models.wland.AideSequences(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None) Bases:
hydpy.core.sequencetools.ModelSequences[AideSequence,hydpy.core.variabletools.FastAccess]Aide sequences of model wland.
- The following classes are selected:
FR()Fraction rainfall / total precipitation [-].W()Wetness index [-].Beta()Evapotranspiration reduction factor [-].DVEq()Equilibrium storage deficit of the vadose zone for the actual groundwater depth [mm].DGEq()Equilibrium groundwater depth for the actual storage deficit of the vadose zone [mm].GF()Gain factor for changes in groundwater depth [-].
-
class
hydpy.models.wland.wland_aides.FR(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ModelSequence[hydpy.core.sequencetools.AideSequences,hydpy.core.variabletools.FastAccess]Fraction rainfall / total precipitation [-].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_aides.W(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ModelSequence[hydpy.core.sequencetools.AideSequences,hydpy.core.variabletools.FastAccess]Wetness index [-].
- Calculated by the method:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_aides.Beta(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ModelSequence[hydpy.core.sequencetools.AideSequences,hydpy.core.variabletools.FastAccess]Evapotranspiration reduction factor [-].
- Calculated by the method:
- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_aides.DVEq(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ModelSequence[hydpy.core.sequencetools.AideSequences,hydpy.core.variabletools.FastAccess]Equilibrium storage deficit of the vadose zone for the actual groundwater depth [mm].
- Calculated by the methods:
- Required by the methods:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_aides.DGEq(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ModelSequence[hydpy.core.sequencetools.AideSequences,hydpy.core.variabletools.FastAccess]Equilibrium groundwater depth for the actual storage deficit of the vadose zone [mm].
- Calculated by the method:
- Required by the method:
-
subvars: SubVariablesType¶
-
class
hydpy.models.wland.wland_aides.GF(subvars: SubVariablesType)[source]¶ Bases:
hydpy.core.sequencetools.ModelSequence[hydpy.core.sequencetools.AideSequences,hydpy.core.variabletools.FastAccess]Gain factor for changes in groundwater depth [-].
- Calculated by the method:
- Required by the method:
-
subvars: SubVariablesType¶
Auxiliary Features¶
Masks¶
-
class
hydpy.models.wland.Masks[source] Bases:
hydpy.core.masktools.MasksMasks of base model
wland.- The following classes are selected:
Complete()Mask including all land use types.
-
class
hydpy.models.wland.wland_masks.Complete(variable: Optional[hydpy.core.typingtools.VariableProtocol] = None, **kwargs)[source]¶ Bases:
hydpy.core.masktools.IndexMaskMask including all land use types.
-
variable: hydpy.core.typingtools.VariableProtocol¶
-
-
class
hydpy.models.wland.AideSequences(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.sequencetools.ModelSequences[AideSequence,hydpy.core.variabletools.FastAccess]Aide sequences of model wland.
- The following classes are selected:
FR()Fraction rainfall / total precipitation [-].W()Wetness index [-].Beta()Evapotranspiration reduction factor [-].DVEq()Equilibrium storage deficit of the vadose zone for the actual groundwater depth [mm].DGEq()Equilibrium groundwater depth for the actual storage deficit of the vadose zone [mm].GF()Gain factor for changes in groundwater depth [-].
-
class
hydpy.models.wland.ControlParameters(master: hydpy.core.parametertools.Parameters, cls_fastaccess: Optional[Type[hydpy.core.parametertools.FastAccessParameter]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.variabletools.SubVariables[hydpy.core.parametertools.Parameters,Parameter,hydpy.core.parametertools.FastAccessParameter]Control parameters of model wland.
- The following classes are selected:
AL()Land area [km²].AS_()Surface water area [km²].NU()Number of hydrological response units [-].LT()Landuse type [-].AUR()Relative area of each hydrological response unit [-].CP()Factor for correcting precipitation [-].CPET()Factor for correcting potential evapotranspiration [-].CPETL()Factor for converting general potential evapotranspiration (usually grass reference evapotranspiration) to land-use specific potential evapotranspiration [-].CPES()Factor for converting general potential evapotranspiration (usually grass reference evapotranspiration) to potential evaporation from water areas [-].LAI()Leaf area index [-].IH()Interception capacity with respect to the leaf surface area [mm].TT()Threshold temperature for snow/rain [°C].TI()Temperature interval with a mixture of snow and rain [°C].DDF()Day degree factor [mm/°C/T].DDT()Day degree threshold temperature [°C].CW()Wetness index parameter [mm].CV()Vadose zone relaxation time constant [T].CG()Groundwater reservoir constant [mm T].CGF()Groundwater reservoir flood factor [1/mm].CQ()Quickflow reservoir relaxation time [T].CD()Channel depth [mm].CS()Surface water parameter for bankfull discharge [mm/T].HSMin()Surface water level where and below which discharge is zero [mm].XS()Stage-discharge relation exponent [-].B()Pore size distribution parameter [-].PsiAE()Air entry pressure [mm].ThetaS()Soil moisture content at saturation [-].ThetaR()Residual soil moisture deficit at tension saturation [-].Zeta1()Curvature parameter of the evapotranspiration reduction function [-].Zeta2()Inflection point of the evapotranspiration reduction function [mm].SH()General smoothing parameter related to the height of water columns [mm].ST()General smoothing parameter related to temperature [°C].
-
class
hydpy.models.wland.DerivedParameters(master: hydpy.core.parametertools.Parameters, cls_fastaccess: Optional[Type[hydpy.core.parametertools.FastAccessParameter]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.variabletools.SubVariables[hydpy.core.parametertools.Parameters,Parameter,hydpy.core.parametertools.FastAccessParameter]Derived parameters of model wland.
- The following classes are selected:
MOY()References the “global” month of the year index array [-].NUG()Number of groundwater affected hydrological response units [-].AT()Total area [km²].ALR()Relative land area [-].ASR()Relative surface water area fraction [-].AGR()Relative groundwater area [-].QF()Factor for converting mm/T to m³/s [T m³ / mm s].RH1()Regularisation parameter related to the height of water columns used when applying regularisation functionsmooth_logistic1()[mm].RH2()Regularisation parameter related to the height of water columns used when applying regularisation functionsmooth_logistic2()[mm].RT2()Regularisation parameter related to temperature for applying regularisation functionsmooth_logistic2()) [°C].
-
class
hydpy.models.wland.FixedParameters(master: hydpy.core.parametertools.Parameters, cls_fastaccess: Optional[Type[hydpy.core.parametertools.FastAccessParameter]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.variabletools.SubVariables[hydpy.core.parametertools.Parameters,Parameter,hydpy.core.parametertools.FastAccessParameter]Fixed parameters of model wland.
- The following classes are selected:
Pi()π [-].
-
class
hydpy.models.wland.FluxSequences(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.sequencetools.OutputSequences[FluxSequence]Flux sequences of model wland.
- The following classes are selected:
PC()Corrected precipitation [mm/T].PETL()Adjusted potential evapotranspiration of the land areas [mm/T].PES()Adjusted potential evaporation of the surface water area [mm/T].TF()Total amount of throughfall [mm/T].EI()Interception evaporation [mm/T].RF()Rainfall (or, more concrete, the liquid amount of throughfall) [mm/T].SF()Snowfall (or, more concrete, the frozen amount of throughfall) [mm/T].PM()Potential snowmelt [mm/T].AM()Actual snowmelt [mm/T].PS()Precipitation entering the surface water reservoir [mm/T].PV()Rainfall (and snowmelt) entering the vadose zone [mm/T].PQ()Rainfall (and snowmelt) entering the quickflow reservoir [mm/T].ETV()Actual evapotranspiration from the vadose zone [mm/T].ES()Actual evaporation from the surface water [mm/T].ET()Total actual evapotranspiration [mm/T].FXS()Surface water supply/extraction (normalised toAS_) [mm/T].CDG()Change in the groundwater depth due to percolation and capillary rise [mm/T].FGS()Groundwater drainage/surface water infiltration [mm/T].FQS()Quickflow [mm/T].RH()Runoff height [mm/T].R()Runoff [m³/s].
-
vars: GroupType¶
-
class
hydpy.models.wland.InputSequences(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.sequencetools.ModelIOSequences[InputSequence,hydpy.core.sequencetools.FastAccessInputSequence]Input sequences of model wland.
- The following classes are selected:
-
vars: GroupType¶
-
class
hydpy.models.wland.OutletSequences(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.sequencetools.LinkSequences[OutletSequence]Outlet sequences of model wland.
- The following classes are selected:
Q()Discharge [m³/s].
-
class
hydpy.models.wland.SolverParameters(master: hydpy.core.parametertools.Parameters, cls_fastaccess: Optional[Type[hydpy.core.parametertools.FastAccessParameter]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.variabletools.SubVariables[hydpy.core.parametertools.Parameters,Parameter,hydpy.core.parametertools.FastAccessParameter]Solver parameters of model wland.
- The following classes are selected:
AbsErrorMax()Absolute numerical error tolerance [mm/T].RelErrorMax()Relative numerical error tolerance [-].RelDTMin()Smallest relative integration time step size allowed [-].RelDTMax()Largest relative integration time step size allowed [-].
-
class
hydpy.models.wland.StateSequences(master: hydpy.core.sequencetools.Sequences, cls_fastaccess: Optional[Type[FastAccessType]] = None, cymodel: Optional[hydpy.core.typingtools.CyModelProtocol] = None)¶ Bases:
hydpy.core.sequencetools.OutputSequences[StateSequence]State sequences of model wland.