hland_v3

Version 3 of H-Land combines HBV96’s Lindström et al. (1997) and PREVAH’s Viviroli et al. (2009) process equations. We implemented it on behalf of the German Federal Institute of Hydrology (BfG) as an alternative to hland_v1 for modelling large river basins in central Europe. All processes “above the soil” (input data correction, interception, snowmelt) and “inside the soil” (evaporation, generation of effective precipitation), as well as the handling of water areas, are identical with hland_v1 (and so with HBV96). Most processes “below the soil” agree with PREVAH (runoff generation and runoff concentration).

The following figure shows the general structure of hland_v3:

_images/HydPy-H-Land_Version-3.png

Comparing the above figure with the analogue figure of hland_v1 reveals that hland_v3 models five instead of two runoff components, requiring a larger number of vertically arranged storages. The two upper storages (SUZ, related to the soil, and SG1, related to dynamic groundwater aquifers) are zone-specific. In comparison, the upper zone layer (UZ) of hland_v1 is subbasin-specific. hland_v3 models the two lower storages (SG2 and SG3), dealing with slow and slowest groundwater responses, slightly different from PREVAH. First, their outflows (RG2 and RG3) are individually accessible (PREVAH handles their outflow as one runoff component). Second, it represents internal lakes as an “extension” of the groundwater (like in hland_v1/HBV96). Third, it allows for additional runoff concentration via a linear storage cascade (SC), like implemented in hland_v2. The latter is supposed to improve flexibility when modelling the effects of sealed areas on runoff generation.

Integration tests

Note

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

We define the settings of the following test calculations as similar to the ones of application model hland_v1 as possible. Hence, comparing the test results gives a good impression of the functional differences of both models.

The following settings are identical:

>>> from hydpy import pub
>>> pub.timegrids = "01.01.2000", "05.01.2000", "1h"
>>> from hydpy.models.hland_v3 import *
>>> parameterstep("1h")
>>> from hydpy import Node, Element
>>> outlet = Node("outlet")
>>> land = Element("land", outlets=outlet)
>>> land.model = model
>>> nmbzones(1)
>>> sclass(1)
>>> area(1.0)
>>> zonearea(1.0)
>>> zonez(1.0)
>>> zrelp(2.0)
>>> zrelt(2.0)
>>> zrele(2.0)
>>> psi(1.0)
>>> from hydpy import IntegrationTest
>>> IntegrationTest.plotting_options.axis1 = (
...     inputs.p, fluxes.rs, fluxes.ri, fluxes.rg1, fluxes.rg2, fluxes.rg3, fluxes.rt)
>>> IntegrationTest.plotting_options.axis2 = inputs.t
>>> test = IntegrationTest(land)
>>> test.dateformat = '%d/%m %H:00'

field

We assign identical values to all parameters, besides those that are specific to hland_v3 (SGR, SG1Max, K0, K1, K2, and K3, and NmbStorages):

>>> zonetype(FIELD)
>>> pcorr(1.2)
>>> pcalt(0.1)
>>> rfcf(1.1)
>>> sfcf(1.3)
>>> tcalt(0.6)
>>> ecorr(0.8)
>>> ecalt(-0.1)
>>> epf(0.1)
>>> etf(0.1)
>>> ered(0.5)
>>> icmax(2.0)
>>> sfdist(1.0)
>>> smax(inf)
>>> sred(0.0)
>>> tt(0.0)
>>> ttint(2.0)
>>> dttm(1.0)
>>> cfmax(0.5)
>>> cfvar(0.1)
>>> gmelt(1.0)
>>> gvar(0.2)
>>> cfr(0.1)
>>> whc(0.4)
>>> fc(200.0)
>>> lp(0.8)
>>> beta(2.0)
>>> percmax(2.0)
>>> sgr(20.0)
>>> sg1max(50.0)
>>> k0(2.0)
>>> k1(10.0)
>>> k2(20.0)
>>> k3(100.0)
>>> maxbaz(3.0)
>>> nmbstorages(5)
>>> recstep(100)

The same holds for the initial conditions.

>>> test.inits = ((states.ic, 0.0),
...               (states.sp, 0.0),
...               (states.wc, 0.0),
...               (states.sm, 100.0),
...               (states.suz, 0.0),
...               (states.sg1, 10.0),
...               (states.sg2, 10.0),
...               (states.sg3, 10.0),
...               (states.sc, 0.05))

All input time series are identical:

>>> inputs.p.series = (
...     0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
...     0.2, 0.0, 0.0, 1.3, 5.6, 2.9, 4.9, 10.6, 0.1, 0.7, 3.0, 2.1, 10.4, 3.5, 3.4,
...     1.2, 0.1, 0.0, 0.0, 0.4, 0.1, 3.6, 5.9, 1.1, 20.7, 37.9, 8.2, 3.6, 7.5, 18.5,
...     15.4, 6.3, 1.9, 4.9, 2.7, 0.5, 0.2, 0.5, 2.4, 0.4, 0.2, 0.0, 0.0, 0.3, 2.6,
...     0.7, 0.3, 0.3, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
...     1.3, 0.0, 0.0, 0.0, 0.7, 0.4, 0.1, 0.4, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
...     0.0, 0.0, 0.0, 0.0, 0.0, 0.0)
>>> inputs.t.series = (
...     21.2, 19.4, 18.9, 18.3, 18.9, 22.5, 25.1, 28.3, 27.8, 31.4, 32.2, 35.2, 37.1,
...     31.2, 24.3, 25.4, 25.9, 23.7, 21.6, 21.2, 20.4, 19.8, 19.6, 19.2, 19.2, 19.2,
...     18.9, 18.7, 18.5, 18.3, 18.5, 18.8, 18.8, 19.0, 19.2, 19.3, 19.0, 18.8, 18.7,
...     17.8, 17.4, 17.3, 16.8, 16.5, 16.3, 16.2, 15.5, 14.6, 14.7, 14.6, 14.1, 14.3,
...     14.9, 15.7, 16.0, 16.7, 17.1, 16.2, 15.9, 16.3, 16.3, 16.4, 16.5, 18.4, 18.3,
...     18.1, 16.7, 15.2, 13.4, 12.4, 11.6, 11.0, 10.5, 11.7, 11.9, 11.2, 11.1, 11.9,
...     12.2, 11.8, 11.4, 11.6, 13.0, 17.1, 18.2, 22.4, 21.4, 21.8, 22.2, 20.1, 17.8,
...     15.2, 14.5, 12.4, 11.7, 11.9)
>>> inputs.tn.series = inputs.t.series-1.0
>>> inputs.epn.series = (
...     0.100707, 0.097801, 0.096981, 0.09599, 0.096981, 0.102761, 0.291908, 1.932875,
...     4.369536, 7.317556, 8.264362, 9.369867, 5.126178, 6.62503, 7.397619, 2.39151,
...     1.829834, 1.136569, 0.750986, 0.223895, 0.099425, 0.098454, 0.098128, 0.097474,
...     0.097474, 0.097474, 0.096981, 0.096652, 0.096321, 0.09599, 0.187298, 1.264612,
...     3.045538, 1.930758, 2.461001, 6.215945, 3.374783, 8.821555, 4.046025, 2.110757,
...     2.239257, 2.877848, 1.591452, 0.291604, 0.092622, 0.092451, 0.091248, 0.089683,
...     0.089858, 0.089683, 0.088805, 0.089157, 0.090207, 0.091593, 0.154861, 0.470369,
...     1.173726, 4.202296, 4.359715, 5.305753, 5.376027, 4.658915, 7.789594, 4.851567,
...     5.30692, 3.286036, 1.506216, 0.274762, 0.087565, 0.085771, 0.084317, 0.083215,
...     0.082289, 0.0845, 0.084864, 0.083584, 0.0834, 0.084864, 0.310229, 1.391958,
...     3.195876, 5.191651, 7.155036, 8.391432, 8.391286, 10.715238, 9.383394, 7.861915,
...     6.298329, 2.948416, 1.309232, 0.32955, 0.089508, 0.085771, 0.0845, 0.084864)
>>> test.reset_inits()
>>> conditions = sequences.conditions

hland_v3 neither implements an approach analogue to HBV96’s contributing area concept nor a substep mechanism controlling the numerical accuracy of the runoff generation module. Hence, we provide only a single “field” example that is comparable both with the first and the second example of hland_v1:

>>> test('hland_v3_field')
Click to see the table

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

>>> from hydpy import round_
>>> round_(model.check_waterbalance(conditions))
0.0

Regarding numerical accuracy of the linear storage cascade, please see the low accuracy example of hland_v2, which also applies the storage cascade instead of the triangular Unit Hydrograph.

internal lake

Like in the internal lake example of hland_v1, we now focus on ILAKE zones. We understand the combination of the slow-response groundwater reservoirs SG2 and SG3 as the surrogate for HBV96’s lower zone storage (LZ). Hence, we add precipitation falling on “internal lakes” to both storages and remove lake evaporation from both storages. As for percolation, parameter FSG determines how hland_v3 divides precipitation and evaporation between both storages:

>>> zonetype(ILAKE)
>>> ttice(13.0)
>>> test('hland_v3_ilake')
Click to see the table

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

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

snow classes

Regarding snow simulation, all functionalities of hland_v3 are identical with the ones of hland_v1. Hence, all snow data in the following table agrees with the snow classes example of hland_v1:

>>> sclass(2)
>>> sfdist(linear=0.2)
>>> zonetype(FIELD)
>>> t_series = inputs.t.series.copy()
>>> tn_series = inputs.tn.series.copy()
>>> inputs.t.series[:48] = -20.0
>>> inputs.t.series[48:] = 20.0
>>> inputs.tn.series = inputs.t.series
>>> test("hland_v3_snow_classes")
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

glacier

Regarding glacier simulation, all functionalities of hland_v3 are identical with the ones of hland_v1. Hence, all snow data in the following table agrees with the glacier example of hland_v1:

>>> zonetype(GLACIER)
>>> test('hland_v3_glacier')
Click to see the table

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

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

multiple zones

This example focuses on the spatial configuration of hland_v3. The most marked difference to hland_v1 is the separate modelling of the faster runoff components (RS, RI, RG1) for each zone. Hence, there are five distinct values for each runoff component in the following table. In contrast, the table of the corresponding multiple zones example of hland_v1 contains only a single value for the only fast runoff component Q0 of hland_v1:

>>> ttice(0.0)
>>> name2value = {par.name: par.value for par in control}
>>> nmbzones(5)
>>> sclass(1)
>>> area(15.0)
>>> zonearea(5.0, 4.0, 3.0, 2.0, 1.0)
>>> zonetype(FIELD, FOREST, GLACIER, ILAKE, SEALED)
>>> sfdist(1.0)
>>> for name, value in name2value.items():
...     if name not in ("nmbzones", "sclass", "area", "zonearea", "zonetype", "sfdist"):
...         control[name].value = value
>>> inputs.t.series = t_series
>>> inputs.tn.series = tn_series
>>> test("hland_v3_multiple_zones",
...      axis1=(inputs.p, fluxes.rt, fluxes.qt),
...      axis2=inputs.t)
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

snow redistribution

Regarding snow redistribution, all functionalities of hland_v3 are identical with the ones of hland_v1. Hence, all snow data in the following table agrees with the snow redistribution 1 example of hland_v1:

>>> zonez(0.0, 10.0, 30.0, 0.0, 20.0)
>>> smax(200.0)
>>> sred(n_zones=1)
>>> inputs.t.series = 5.0
>>> test("hland_v3_snow_redistribution",
...      axis1=(states.sp, states.wc), axis2=(factors.tc, fluxes.pc))
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
class hydpy.models.hland_v3.Model[source]

Bases: AdHocModel

HBV96-SC/PREVAH version of HydPy-H-Land (hland_v3).

The following “run methods” are called in the given sequence during each simulation step:
  • Calc_TC_V1 Adjust the measured air temperature to the altitude of the individual zones.

  • Calc_TMean_V1 Calculate the areal mean temperature of the subbasin.

  • Calc_FracRain_V1 Determine the temperature-dependent fraction of (liquid) rainfall and (total) precipitation.

  • Calc_RFC_SFC_V1 Calculate the corrected fractions of rainfall/snowfall and total precipitation.

  • Calc_PC_V1 Apply the precipitation correction factors and adjust precipitation to the altitude of the individual zones.

  • Calc_EP_V1 Adjust the potential norm evaporation to the actual temperature.

  • Calc_EPC_V1 Apply the evaporation correction factors and adjust evaporation to the altitude of the individual zones.

  • Calc_TF_Ic_V1 Calculate throughfall and update the interception storage accordingly.

  • Calc_EI_Ic_V1 Calculate interception evaporation and update the interception storage accordingly.

  • Calc_SP_WC_V1 Add throughfall to the snow layer.

  • Calc_SPL_WCL_SP_WC_V1 Calculate the subbasin-internal redistribution losses of the snow layer.

  • Calc_SPG_WCG_SP_WC_V1 Calculate the subbasin-internal redistribution gains of the snow layer.

  • Calc_CFAct_V1 Adjust the day degree factor for snow to the current day of the year.

  • Calc_Melt_SP_WC_V1 Calculate the melting of the ice content within the snow layer and update both the snow layers’ ice and the water content.

  • Calc_Refr_SP_WC_V1 Calculate refreezing of the water content within the snow layer and update both the snow layers’ ice and the water content.

  • Calc_In_WC_V1 Calculate the actual water release from the snow layer due to the exceedance of the snow layers’ capacity for (liquid) water.

  • Calc_SWE_V1 Calculate the total snow water equivalent.

  • Calc_SR_V1 Calculate the sealed surface runoff.

  • Calc_GAct_V1 Adjust the day degree factor for glacier ice to the current day of the year.

  • Calc_GlMelt_In_V1 Calculate the melting of non-snow-covered glaciers and add it to the water release of the snow module.

  • Calc_R_SM_V1 Calculate effective precipitation and update the soil moisture.

  • Calc_EA_SM_V1 Calculate soil evaporation and update the soil moisture.

  • Calc_SUZ_V1 Add the effective precipitation to the upper storage reservoir.

  • Calc_DP_SUZ_V1 Calculate the deep percolation and remove it from the upper storage reservoir.

  • Calc_RS_RI_SUZ_V1 Calculate the surface runoff and the interflow and remove them from the upper storage reservoir.

  • Calc_GR1_V1 Calculate the recharge to the fast response groundwater reservoir.

  • Calc_RG1_SG1_V1 Calculate the discharge from the fast response groundwater reservoir and subtract it.

  • Calc_GR2_GR3_V1 Calculate the recharge of the first-order and the second-order slow response groundwater reservoir.

  • Calc_RG2_SG2_V1 Calculate the discharge from the first-order slow response groundwater reservoir and subtract it.

  • Calc_RG3_SG3_V1 Calculate the discharge from the second-order slow response groundwater reservoir and subtract it.

  • Calc_EL_SG2_SG3_V1 Determine the internal lake evaporation and remove it from the first-order and the second-order slow response groundwater reservoir.

  • Calc_InUH_V2 Calculate linear storage cascade input.

  • Calc_OutUH_SC_V1 Calculate the linear storage cascade output (state-space approach).

  • Calc_RT_V1 Calculate the total discharge in mm.

  • Calc_QT_V1 Calculate the total discharge in m³/s.

The following “outlet update methods” are called in the given sequence at the end of each simulation step:
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_{k=1}^{NmbZones} RelZoneAreas^k \cdot \left( \sum_{t=t0}^{t1} \big( PC_t^k + GLMelt_t^k - EI_t^k - EA_t^k - EL_t^k \big) + \big( IC_{t0}^k - IC_{t1}^k \big) + \frac{1}{SClass} \cdot \sum_{c=1}^{SClass} \Big( \big( SP_{t0}^{c,k} - SP_{t1}^{c,k} \big) + \big( WC_{t0}^{c,k} - WC_{t1}^{c,k} \big) \Big) + \big( SM_{t0}^k - SM_{t1}^k \big) + \big( SUZ_{t0}^k - SUZ_{t1}^k \big) + \big( SG1_{t0}^k - SG1_{t1}^k \big) \right) - \sum_{t=t0}^{t1} RT_t + RelLowerZoneArea \cdot \Big( \big( SG2_{t0} - SG2_{t1} \big) + \big( SG3_{t0} - SG3_{t1} \big) \Big) + \sum_{i=1}^{NmbStorages} \big( SC_{t0}^i - SC_{t1}^i \big)\]

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 hland_v3 for some examples.

class hydpy.models.hland_v3.Masks[source]

Bases: Masks

Masks applicable to hland_v3.

The following classes are selected:
class hydpy.models.hland_v3.AideSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: AideSequences

Aide sequences of model hland_v3.

The following classes are selected:
  • SPE() Subbasin-internal redistribution excess of the snow’s ice content [mm/T].

  • WCE() Subbasin-internal redistribution excess of the snow’s water content [mm/T].

class hydpy.models.hland_v3.ControlParameters(master: Parameters, cls_fastaccess: Type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)

Bases: SubParameters

Control parameters of model hland_v3.

The following classes are selected:
  • Area() Subbasin area [km²].

  • NmbZones() Number of zones (hydrological response units) in a subbasin [-].

  • SClass() Number of snow classes in each zone [-].

  • ZoneType() Type of each zone [-].

  • ZoneArea() Zone area [km²].

  • Psi() Fraction of the actual sealing of zones classified as SEALED [-].

  • ZoneZ() Zone elevation [100m].

  • ZRelP() Subbasin-wide reference elevation level for precipitation [100m].

  • ZRelT() Subbasin-wide reference elevation level for temperature [100m].

  • ZRelE() Subbasin-wide reference elevation level for evaporation [100m].

  • PCorr() General precipitation correction factor [-].

  • PCAlt() Elevation correction factor for precipitation [1/100m].

  • RfCF() Rainfall correction factor [-].

  • SfCF() Snowfall correction factor [-].

  • TCAlt() Elevation correction factor for temperature [-1°C/100m].

  • ECorr() General evaporation correction factor [-].

  • ECAlt() Elevation correction factor for evaporation [-1/100m].

  • EPF() Decrease in potential evaporation due to precipitation [T/mm].

  • ETF() Temperature factor for evaporation [1/°C].

  • ERed() Factor for restricting actual to potential evaporation [-].

  • TTIce() Temperature threshold for lake evaporation [°C].

  • IcMax() Maximum interception storage [mm].

  • SFDist() Distribution of snowfall [-].

  • SMax() Maximum snow water equivalent [mm].

  • SRed() Snow redistribution paths [-].

  • TT() Temperature threshold for snow/rain [°C].

  • TTInt() Temperature interval with a mixture of snow and rain [°C].

  • DTTM() Difference between TTM and TT [°C].

  • CFMax() Average degree day factor for snow (on glaciers or not) [mm/°C/T].

  • CFVar() Annual variability of CFMax [mm/°C/T].

  • GMelt() Degree day factor for glacial ice [mm/°C/T].

  • GVar() Annual variability of GMelt [mm/°C/T].

  • CFR() Refreezing factor for water stored within the snow layer [-].

  • WHC() Relative water holding capacity of the snow layer [-].

  • FC() Maximum soil moisture content (field capacity) [mm].

  • LP() Relative limit for potential evaporation [-].

  • Beta() Nonlinearity parameter of the soil routine [-].

  • PercMax() Maximum percolation rate [mm/T].

  • RecStep() Number of internal computation steps per simulation time step [-].

  • SGR() Threshold content of SUZ for the generation of surface runoff [mm].

  • K0() Storage time for surface runoff [T].

  • K1() Storage time for interflow [T].

  • SG1Max() Maximum content of the fast response groundwater reservoir SG1 [mm].

  • K2() Storage time for quick response baseflow [T].

  • K3() Storage time for delayed baseflow [T].

  • MaxBaz() Base length of the triangle unit hydrograph [T].

  • NmbStorages() Number of storages of the linear storage cascade [-].

class hydpy.models.hland_v3.DerivedParameters(master: Parameters, cls_fastaccess: Type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)

Bases: SubParameters

Derived parameters of model hland_v3.

The following classes are selected:
  • DOY() References the dayofyear index array provided by the instance of class Indexer available in module pub [-].

  • RelZoneAreas() Relative area of all zones [-].

  • RelLandArea() Relative area of all FIELD, FOREST, GLACIER, and SEALED zones [-].

  • RelLowerZoneArea() Relative area of all FIELD, FOREST, GLACIER, and ILAKE zones [-].

  • ZoneAreaRatios() Ratios of all zone combinations [-].

  • IndicesZoneZ() Indices of the zones sorted by altitude [-].

  • SRedOrder() Processing order for the snow redistribution routine [-].

  • SRedEnd() Flags that indicate the “dead ends” of snow redistribution within a subbasin.

  • SRedNumber() The total number of snow redistribution paths [-].

  • TTM() Threshold temperature for snow melting and refreezing [°C].

  • DT() Relative time step length for the upper zone layer calculations [-].

  • W0() Weight for calculating surface runoff [-].

  • W1() Weight for calculating interflow [-].

  • W2() Weight for calculating the quick response base flow [-].

  • W3() Weight for calculating the response of the first-order groundwater reservoir [-].

  • K4() Storage time for very delayed baseflow [T].

  • W4() Weight for calculating the response of the second-order groundwater reservoir [-].

  • KSC() Coefficient of the individual storages of the linear storage cascade [1/T].

  • QFactor() Factor for converting mm/stepsize to m³/s.

class hydpy.models.hland_v3.FactorSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: FactorSequences

Factor sequences of model hland_v3.

The following classes are selected:
  • TMean() Mean subbasin temperature [°C].

  • TC() Corrected temperature [°C].

  • FracRain() Fraction rainfall / total precipitation [-].

  • RfC() Actual precipitation correction related to liquid precipitation [-].

  • SfC() Actual precipitation correction related to frozen precipitation [-].

  • CFAct() Actual degree day factor for snow (on glaciers or not) [mm/°C/T].

  • SWE() Snow water equivalent [mm].

  • GAct() Actual degree day factor for glacier ice [mm/°C/T].

class hydpy.models.hland_v3.FixedParameters(master: Parameters, cls_fastaccess: Type[FastAccessParameter] | None = None, cymodel: CyModelProtocol | None = None)

Bases: SubParameters

Fixed parameters of model hland_v3.

The following classes are selected:
  • Pi() π [-].

  • FSG() Fraction between the spatial extents of the first-order and the second-order slow response groundwater reservoir [-].

  • K1L() Lowest possible lower boundary value for the parameters K1, K2, and K3 [-].

class hydpy.models.hland_v3.FluxSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: FluxSequences

Flux sequences of model hland_v3.

The following classes are selected:
  • PC() Corrected precipitation [mm/T].

  • EP() Potential evaporation [mm/T].

  • EPC() Corrected potential evaporation [mm/T].

  • EI() Interception evaporation [mm/T].

  • TF() Throughfall [mm/T].

  • SPL() Subbasin-internal redistribution loss of the snow’s ice content [mm/T].

  • WCL() Subbasin-internal redistribution loss of the snow’s water content [mm/T].

  • SPG() Subbasin-internal redistribution gain of the snow’s ice content [mm/T].

  • WCG() Subbasin-internal redistribution gain of the snow’s water content [mm/T].

  • GlMelt() Glacier melt [mm/T].

  • Melt() Actual melting of frozen water stored in the snow layer [mm/T].

  • Refr() Actual (re)freezing of liquid water stored in the snow layer [mm/T].

  • In_() Snow module release/soil module inflow [mm/T].

  • R() Effective soil response [mm/T].

  • SR() Sealed surface runoff [mm/T].

  • EA() Actual soil evaporation [mm/T].

  • DP() Deep percolation rate [mm/T].

  • EL() Actual lake evaporation [mm/T].

  • RS() Surface runoff [mm/T].

  • RI() Interflow [mm/T].

  • GR1() Recharge into the fast response groundwater reservoir [mm/T].

  • RG1() Discharge from the fast response groundwater reservoir [mm/T].

  • GR2() Recharge into the first-order slow response groundwater reservoir [mm/T].

  • RG2() Discharge from the first-order slow response groundwater reservoir [mm/T].

  • GR3() Recharge into the second-order slow response groundwater reservoir [mm/T].

  • RG3() Discharge from the second-order slow response groundwater reservoir [mm/T].

  • InUH() Input of the triangle unit hydrograph [mm/T].

  • OutUH() Output of the triangle unit hydrograph [mm/T].

  • RT() Total model outflow [mm/T].

  • QT() Total model outflow [m³/s].

class hydpy.models.hland_v3.InputSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: InputSequences

Input sequences of model hland_v3.

The following classes are selected:
  • P() Precipitation [mm].

  • T() Temperature [°C].

  • TN() Normal temperature [°C].

  • EPN() Normal potential evaporation [mm].

class hydpy.models.hland_v3.OutletSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: OutletSequences

Outlet sequences of model hland_v3.

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

class hydpy.models.hland_v3.StateSequences(master: Sequences, cls_fastaccess: Type[TypeFastAccess_co] | None = None, cymodel: CyModelProtocol | None = None)

Bases: StateSequences

State sequences of model hland_v3.

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

  • SP() Frozen water stored in the snow layer [mm].

  • WC() Liquid water content of the snow layer [mm].

  • SM() Soil moisture [mm].

  • SUZ() Upper storage reservoir [mm].

  • SG1() Fast response groundwater reservoir [mm].

  • SG2() First-order slow response groundwater reservoir [mm].

  • SG3() Second-order slow response groundwater reservoir [mm].

  • SC() Storage cascade for runoff concentration [mm].