wland_v001

Version 1 of HydPy-W-Land is a slightly modified and extended version of the WALRUS model, specifically designed to simulate surface water fluxes in lowland catchments influenced by near-surface groundwater [3]. We implemented wland_v001 on behalf of the German Federal Institute of Hydrology (BfG) in the context of optimising the control of the Kiel Canal (Nord-Ostsee-Kanal).

With identical parameter values, WALRUS and wland_v001 yield very similar results for the tutorial data available within the WALRUS repository. We found all of the relatively small differences were due to using different numerical integration algorithms, not to differences in the underlying differential equations (we discuss the only exception to this in the documentation on method Calc_CDG_V1). However, to keep our extensions consistent, we found it necessary to adjust a few variable names and some unit conversions related to the size of some subareas.

Our extensions focus on the hydrological processes that apply before precipitation reaches the vadose zone:

  1. We add some factors to correct or adapt the meteorological input data.

  2. We introduce simple storages for intercepted water and snow, implemented similarly as in lland_v1 and lland_v2.

  3. We support the specification of hydrological response units for these processes, making wland_v001 a semi-distributed model (but we model the vadose zone in agreement with WALRUS still in a lumped manner).

  4. We define the land-use type SEALED, which has no vadose zone and routes all water reaching the soil surface directly into the quickflow reservoir.

  5. We allow specifying subbasins consisting of surface water areas or combinations of surface water and sealed areas only, not possessing any to “vadose zone area” (however, we do not allow specifying subbasins without any surface water area).

The following figure shows the general structure of wland_v001. Note that, besides surface water areas and sealed surfaces, all land-use types rely on the same set of process equations:

_images/HydPy-W-Land_Version-1.png

The WALRUS model defines some discontinuous differential equations, which complicate numerical integration [3]. We applied the regularisation techniques provided by the modules smoothutils and smoothtools to remove these discontinuities. As shown for each equation (for example, in the documentation on method Calc_RH_V1), this smoothing is optional. Set the related parameters SH and ST to zero to disable smoothing, so that the original WALRUS relationships apply. The larger their values, the faster and more robust the performance of the numerical integration algorithm, but the larger the discrepancies to the discontinuous relationships. Our advice is to set small values like 1 mm or 1 °C (as in the following example calculations), respectively, which means that there is no sharp transition from one behaviour to another at a certain threshold but a smooth transition that mainly takes place in an interval of about 2 mm or 2 °C around the threshold. As a consequence, a negative value for the amount of water stored in the interception storage is acceptable, as the threshold of 0 mm does not mean that the storage is completely empty but that two domains (the storage is empty and the storage is not empty) are equally true (similar as in fuzzy logic).

Integration tests

Note

When new to HydPy, consider reading section How to understand integration tests? first.

We perform all simulation runs over the same period of two months with a daily simulation step size:

>>> from hydpy import IntegrationTest, Element, pub, round_
>>> pub.timegrids = "2017-02-10", "2017-04-10", "1d"

wland_v001 usually reads all its input data from disk, making the definition of the relevant Element object straightforward:

>>> from hydpy.models.wland_v001 import *
>>> parameterstep("1d")
>>> land = Element("land", outlets="outlet")
>>> land.model = model

Our virtual test catchment has 10 km², with a land area of 9.8 km² and a surface water area of 0.2 km²:

>>> al(9.8)
>>> as_(0.2)

We divide the land area into three hydrological of type FIELD, CONIFER, and SEALED:

>>> nu(3)
>>> lt(FIELD, CONIFER, SEALED)

The relative sizes of the response units relate to the land area-fraction of the test catchment. With the following setting, the total area of the vadose zone is \((0.6 + 0.3) \cdot 9.8 km² = 8.82 km²\):

>>> aur(0.6, 0.3, 0.1)

The following parameter values lead to good results in a small catchment in the vicinity of the Kiel Canal (northern part of Germany). For those parameters with land-use specific values (CPETL and LAI), we define only those values relevant for FIELD, CONIFER, and SEALED. We adopt the default values for the “physical” soil parameters (B, PsiAE, and ThetaS):

>>> cp(0.8)
>>> cpet(0.9)
>>> cpetl.sealed = 0.7
>>> cpetl.conifer = 1.3
>>> cpetl.field = 0.73, 0.73, 0.77, 0.95, 1.19, 1.18, 1.19, 1.15, 0.97, 0.85, 0.78, 0.73
>>> cpes(jan=1.16, feb=1.22, mar=1.26, apr=1.28, may=1.28, jun=1.30,
...      jul=1.28, aug=1.28, sep=1.27, oct=1.23, nov=1.17, dec=1.14)
>>> lai.sealed = 10.0
>>> lai.conifer = 11.0
>>> lai.field = 0.4, 0.4, 0.3, 0.7, 3.0, 5.2, 4.6, 3.1, 1.3, 0.2, 0.0, 0.0
>>> ih(0.2)
>>> tt(0.0)
>>> ti(4.0)
>>> ddf(5.0)
>>> ddt(0.0)
>>> cw(400.0)
>>> cv(0.2)
>>> cg(200000.0)
>>> cgf(1.0)
>>> cq(0.5)
>>> cd(1500.0)
>>> cs(8.0)
>>> hsmin(0.0)
>>> xs(1.5)
>>> b(soil=SANDY_LOAM)
>>> psiae(soil=SANDY_LOAM)
>>> thetas(soil=SANDY_LOAM)
>>> zeta1(0.02)
>>> zeta2(400.0)

We set both regularisation parameters to one (in agreement with the discussion above):

>>> sh(1.0)
>>> st(1.0)

Next, we initialise a test function object that prepares and runs the following tests and prints and plots their results:

>>> test = IntegrationTest(land)

All simulation runs start from dry conditions. The groundwater depth (DG, 1.6 m), which is nearly in equilibrium with the water deficit in the vadose zone (DV, 0.14 m, see method Calc_DVEq_V1), lies below the channel depth (CD, 1.5 m). The interception height (IC), the snowpack (SP), and the surface water level (HS) are intentionally negative, to make sure even the regularised equations consider the related storages as (almost) empty:

>>> test.inits = ((states.ic, -3.0),
...               (states.sp, -3.0),
...               (states.dv, 140.0),
...               (states.dg, 1600.0),
...               (states.hq, 0.0),
...               (states.hs, -2.0))

The following real data shows a shift from winter to spring conditions in the form of a rise in temperature and potential evapotranspiration and includes two heavy rainfall events:

>>> inputs.t.series = (
...     -2.8, -1.5, -0.9, -1.6, -1.3, 1.7, 4.4, 4.5, 3.4, 4.8, 6.7, 5.8, 6.5, 5.0, 3.0,
...     3.1, 7.1, 9.4, 4.6, 3.7, 4.7, 5.9, 7.7, 6.3, 3.7, 1.6, 4.0, 5.6, 5.8, 5.7, 4.6,
...     4.2, 7.4, 6.3, 8.7, 6.4, 5.2, 5.1, 8.7, 6.2, 5.9, 5.2, 5.2, 5.9, 6.7, 7.0, 8.3,
...     9.0, 12.4, 15.0, 11.8, 9.4, 8.1, 7.9, 7.5, 7.2, 8.1, 8.6, 10.5)
>>> inputs.p.series = (
...     0.0, 0.4, 0.0, 0.0, 0.0, 0.0, 0.2, 4.5, 0.0, 3.2, 4.6, 2.3, 18.0, 19.2, 0.4,
...     8.3, 5.3, 0.7, 2.7, 1.6, 2.5, 0.6, 0.2, 1.7, 0.3, 0.0, 1.8, 8.9, 0.0, 0.0,
...     0.0, 0.9, 0.1, 0.0, 0.0, 3.9, 8.7, 26.4, 11.5, 0.9, 0.0, 0.0, 0.0, 0.0, 0.0,
...     0.0, 0.0, 1.5, 0.3, 0.2, 4.5, 0.0, 0.0, 0.0, 0.4, 0.0, 0.0, 0.0, 0.0)
>>> inputs.pet.series = (
...     0.6, 0.8, 0.7, 0.4, 0.4, 0.4, 0.4, 0.3, 0.3, 0.4, 0.3, 0.6, 0.8, 0.5, 0.8,
...     0.5, 0.4, 1.3, 0.9, 0.7, 0.7, 1.1, 1.0, 0.8, 0.6, 0.7, 0.7, 0.5, 0.8, 1.0,
...     1.2, 0.9, 0.9, 1.2, 1.4, 1.1, 1.1, 0.5, 0.6, 1.5, 2.0, 1.6, 1.6, 1.2, 1.3,
...     1.6, 1.9, 0.8, 1.5, 2.7, 1.5, 1.6, 2.0, 2.1, 1.7, 1.7, 0.8, 1.3, 2.5)

wland_v001 allows defining time-series of additional supply or extraction. We discuss them later and set both to zero for now:

>>> inputs.fxg.series = 0.0
>>> inputs.fxs.series = 0.0

As we want to use method check_waterbalance() to proof that wland_v001 keeps the water balance in each example run, we need to store the defined (initial) conditions before performing the first simulation run:

>>> test.reset_inits()
>>> conditions = sequences.conditions

base scenario

In our base scenario, we do not modify any of the settings described above. Initially, there is no exchange between groundwater and surface water, due to the empty channel and the groundwater level lying below the channel bottom. The rainfall events increase both the groundwater level (via infiltration and percolation) and the surface water level (via quickflow generated on the sealed surfaces and on the saturated fraction of the vadose zone). Due to the faster rise of the surface water level, water first moves from the channel into groundwater (more concretely: it enters the vadose zone), but this inverses after the channel has discharged most of its content some days after the rainfall events.

>>> test("wland_v001_base_scenario",
...      axis1=(fluxes.pc, fluxes.fqs, fluxes.fgs, fluxes.rh),
...      axis2=(states.dg, states.hs))
Click to see the table
Click to see the graph

There is no indication of an error in the water balance:

>>> round_(model.check_waterbalance(conditions))
0.0

seepage

wland_v001 allows modelling external seepage or extraction into or from the vadose zone. We define an extreme value of 10 mm/d, which applies for the whole two months, to show how wland_v001 reacts in case of strong large-scale ponding (this is a critical aspect of the WALRUS concept, see the documentation on method Calc_FGS_V1 for a more in-depth discussion):

>>> inputs.fxg.series = 10.0

The integration algorithm implemented by ELSModel solves the differential equations of wland_v001 stable; the results look as expected. Within the first few days, the groundwater table rises fast and finally exceeds the soil surface (large-scale ponding, indicated by negative values). The highest flow from groundwater to surface water occurs directly after ponding and before the surface water level reaches its steady state. At the end of the simulation run, the groundwater level is always slightly higher than the surface water level, which assures the necessary gradient to discharge the seepage water into the stream:

>>> test("wland_v001_seepage",   # doctest: +ELLIPSIS
...      axis1=(fluxes.pc, fluxes.fqs, fluxes.fgs, fluxes.rh),
...      axis2=(states.dg, states.hs))
Click to see the table
Click to see the graph

There is no violation of the water balance:

>>> round_(model.check_waterbalance(conditions))
0.0

surface water supply

We now repeat the seepage example but use the input sequence FXS instead of FXG to feed the water into the surface water reservoir instead of the vadose zone reservoir:

>>> inputs.fxg.series =  0.0
>>> inputs.fxs.series = 10.0

Overall, the following results look similar to the ones of the seepage example. However, it takes longer until the groundwater and surface water levels approach their final values because of the faster response of surface runoff. The steady-state surface water level is higher than the groundwater level, but to a much lesser extent, as the vadose zone can absorb only as much water as it can release via evapotranspiration:

>>> test("wland_v001_surface_water_supply",
...      axis1=(fluxes.pc, fluxes.fqs, fluxes.fgs, fluxes.rh),
...      axis2=(states.dg, states.hs))
Click to see the table
Click to see the graph

There is no violation of the water balance:

>>> round_(model.check_waterbalance(conditions))
0.0

snowfall

This example shows the functionality of the simple, day-degree-based snow module. We activate the snow-processes by making the entire time series 8 °C colder:

>>> inputs.fxs.series =  0.0
>>> inputs.t.series -= 8.0

The following results show how the snow layer builds up throughout most of the simulation period and then suddenly melts due to relatively warm temperatures around the beginning of April. The differences between the three hydrological response units’ snow accumulation stem from differences in their interception parameterisations. At the end of the melting period, the values of SP quickly drop to around -1 mm. The regularisation of the day-degree-threshold still allows further melting, but by such a small amount that SP does not decrease in a relevant manner anymore:

>>> test("wland_v001_snowfall",
...      axis1=(fluxes.pc, states.sp,),
...      axis2=(inputs.t,))
Click to see the table
Click to see the graph

There is no violation of the water balance:

>>> round_(model.check_waterbalance(conditions))
0.0

No vadose zone

This example demonstrates that wland_v001 works well with completely sealed land surfaces. We enforce this by assigning the land-use type SEALED to all three hydrological response units:

>>> lt(SEALED)

The results show the expected sharp runoff response of the catchment. Note that for a missing vadose zone, neither its water deficit (DV) nor its groundwater depth (DG) is definable. We set their values to nan. In contrast, we set the related flux FGS and the change in the groundwater level (CDG) to zero:

>>> test("wland_v001_no_vadose_zone",
...      axis1=(fluxes.pc, fluxes.fqs, fluxes.fgs, fluxes.rh),
...      axis2=(states.dg, states.hs))
Click to see the table
Click to see the graph

There is no violation of the water balance:

>>> round_(model.check_waterbalance(conditions))
0.0

No land area

wland_v001 also works for “catchments” consisting of surface water areas only. This setting somehow contradicts the original WALRUS concept. However, it may help to set up wland_v001 with small “raster sub-catchments” in water basins with large lakes. Besides setting the number of hydrological response units (NU) to zero, we need to adjust the area of the land area (AL) and the surface water area (AS_):

>>> nu(0)
>>> al(0.0)
>>> as_(10.0)

Assigning a new value to parameter NU changes the shape of the state sequences IC and SP. Hence, we must again query the relevant initial conditions for applying method check_waterbalance() after simulation:

>>> test.reset_inits()
>>> conditions = sequences.conditions

In contrast to the No vadose zone example, the generated runoff (RH) nearly vanishes, due to the little rise in the water level even for the two heavy precipitation events. Our “catchment” now works like a lake and nearly all stored precipitation water evaporates sooner or later:

>>> test("wland_v001_no_land_area",
...      axis1=(fluxes.pc, fluxes.et, fluxes.rh),
...      axis2=(states.hs,))
Click to see the table
Click to see the graph

There is no violation of the water balance:

>>> round_(model.check_waterbalance(conditions))
0.0
class hydpy.models.wland_v001.Model[source]

Bases: hydpy.core.modeltools.ELSModel

The HydPy-W-Land model.

The following “inlet update methods” are called in the given sequence at the beginning of each simulation step:
  • Calc_FR_V1 Determine the fraction between rainfall and total precipitation.

  • Calc_PM_V1 Calculate the potential snowmelt.

The following methods define the relevant components of a system of ODE equations (e.g. direct runoff):
  • Calc_FXS_V1 Query the current surface water supply/extraction.

  • Calc_FXG_V1 Query the current seepage/extraction.

  • Calc_PC_V1 Calculate the corrected precipitation.

  • Calc_PETL_V1 Adjust the potential evapotranspiration of the land areas.

  • Calc_PES_V1 Adapt the potential evaporation for the surface water area.

  • Calc_TF_V1 Calculate the total amount of throughfall.

  • Calc_EI_V1 Calculate the interception evaporation.

  • Calc_RF_V1 Calculate the liquid amount of throughfall (rainfall).

  • Calc_SF_V1 Calculate the frozen amount of throughfall (snowfall).

  • Calc_AM_V1 Calculate the actual snowmelt.

  • Calc_PS_V1 Calculate the precipitation entering the surface water reservoir.

  • Calc_W_V1 Calculate the wetness index.

  • Calc_PV_V1 Calculate the rainfall (and snowmelt) entering the vadose zone.

  • Calc_PQ_V1 Calculate the rainfall (and snowmelt) entering the quickflow reservoir.

  • Calc_Beta_V1 Calculate the evapotranspiration reduction factor.

  • Calc_ETV_V1 Calculate the actual evapotranspiration from the vadose zone.

  • Calc_ES_V1 Calculate the actual evaporation from the surface water reservoir.

  • Calc_FQS_V1 Calculate the quickflow.

  • Calc_FGS_V1 Calculate the groundwater drainage or surface water infiltration.

  • Calc_RH_V1 Calculate the runoff height.

  • Calc_DVEq_V1 Calculate the equilibrium storage deficit of the vadose zone.

  • Calc_CDG_V1 Calculate the change in the groundwater depth due to percolation and capillary rise.

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):
The following “outlet update methods” are called in the given sequence at the end of each simulation step:
  • Calc_ET_V1 Calculate the total actual evapotranspiration.

  • Calc_R_V1 Calculate the runoff in m³/s.

  • Pass_R_V1 Update the outlet link sequence.

check_waterbalance(initial_conditions: Dict[str, Dict[str, ArrayFloat]])float[source]

Determine the water balance error of the previous simulation run in mm.

Method check_waterbalance() calculates the balance error as follows:

\(\sum_{t=t0}^{t1} \big( PC_t + FXG_t + FXS_t - ET_t - RH_t \big) + ASR \cdot \big( HS_{t0} - HS_{t1}\big) + ALR \cdot \left( \big( HQ_{t0} - HQ_{t1} \big) - AGR \cdot \big( DV_{t0} - DV_{t1} \big) + \sum_{k=1}^{NU} AUR^k \cdot \big( IC_{t0}^k - IC_{t1}^k + SP_{t0}^k - SP_{t1}^k \big) \right)\)

The returned error should always be in scale with numerical precision so that it does not affect the simulation results in any relevant manner.

Pick the required initial conditions before starting the simulation run via property conditions. See the integration tests of the application model wland_v001 for some examples.

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_v001.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_v001.

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].

class hydpy.models.wland_v001.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_v001.

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 [-].

  • 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_v001.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_v001.

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 function smooth_logistic1() [mm].

  • RH2() Regularisation parameter related to the height of water columns used when applying regularisation function smooth_logistic2() [mm].

  • RT2() Regularisation parameter related to temperature for applying regularisation function smooth_logistic2()) [°C].

class hydpy.models.wland_v001.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_v001.

The following classes are selected:
class hydpy.models.wland_v001.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_v001.

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 to AS_) [mm/T].

  • FXG() Seepage/extraction (normalised to AL) [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_v001.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_v001.

The following classes are selected:
  • T() Air temperature [°C].

  • P() Precipitation [mm/T].

  • PET() Potential evapotranspiration [mm/T].

  • FXG() Seepage/extraction (normalised to AT) [mm/T].

  • FXS() Surface water supply/extraction (normalised to AT) [mm/T].

vars: GroupType
class hydpy.models.wland_v001.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_v001.

The following classes are selected:
  • Q() Discharge [m³/s].

class hydpy.models.wland_v001.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_v001.

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_v001.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_v001.

The following classes are selected:
  • IC() Interception storage [mm].

  • SP() Snow pack [mm].

  • DV() Storage deficit of the vadose zone [mm].

  • DG() Groundwater depth [mm].

  • HQ() Level of the quickflow reservoir [mm].

  • HS() Surface water level [mm].