SWAT - soil.surface.water

class mef_agri.models.soil.surface.water.model_swat.Water_CNM_V2009(**kwargs)

This surface water model corresponds to the SCS curve number procedure outlined in [R1]. In its current version, the curve number is roughly approximated by introducing it as a hyper-parameter and considering crop cover (i.e. an approximation of [R1] table 2:1-1). The retention parameter is computed by considering only the water content in the soil profile ([R1] equ. 2:1.1.6), i.e. no evapotranspiration and frozen top soil layer.

kwargs \(\rightarrow\) mef_agri.models.base.Model

can_max()

RQ - from mode with id 'crop'

\(c_{\textrm{W-csm},0}\ [mm]\)

Returns:

max. water storage of canopy

Return type:

Requirement

cn()

RQ - from model with id 'zone.soil'

\(s_{\textrm{cn},k}\ [\ ]\)

Returns:

curve number considering crops

Return type:

Requirement

fc()

RQ - from model with id 'zone.soil'

\(s_{\textrm{W-fc},0}\ [\ ]\)

Returns:

soil moisture at field capacity

Return type:

Requirement

infiltration()

MQ - Random Output

\(s_{\textrm{inf},s,k}\ [\frac{mm}{day}]\)

Returns:

infiltration rate at current day

Return type:

numpy.ndarray

initialize(epoch)

Initialization of water_canopy() and runoff() with zero arrays.

Parameters:

epoch (datetime.date) – initialization epoch

lai()

RQ - from model with id 'crop.leaves'

\(c_{\textrm{lai},k}\ [\ ]\)

Returns:

leaf area index

Return type:

Requirement

lai_max()

RQ - from model with id 'crop.leaves'

\(c_{\textrm{laimx},0}\ [\ ]\)

Returns:

max. attainable lai

Return type:

Requirement

por()

RQ - from model with id 'zone.soil'

\(s_{\textrm{por},0}\ [\ ]\)

Returns:

soil porosity (saturated water content)

Return type:

Requirement

prec()

RQ - from model with id 'zone.atmosphere.weather'

\(a_{\textrm{prec},k}\ [\frac{mm}{day}]\)

Returns:

daily precipitation sum

Return type:

Requirement

precipitation_soil()

MQ - Random Output

\(s_{\textrm{prec},s,k}\ [\frac{mm}{day}]\)

Returns:

amount of precipitation reaching the soil surface

Return type:

numpy.ndarray

rdm()

RQ - from model with id 'zone.soil'

\(s_{\textrm{rdm},0}\ [m]\)

Returns:

maximum rootable depth of the soil

Return type:

Requirement

retention()

MQ - Random Output

\(s_{\textrm{ret},s,k}\ [mm]\) - [R1] (equ. 2:1.1.6)

Returns:

retention parameter

Return type:

numpy.ndarray

runoff()

MQ - Random Output

\(s_{\textrm{W-ro},s,k}\ [\frac{mm}{day}]\) - [R1] (equ. 2:1.1.3)

Returns:

runoff rate at current day

Return type:

numpy.ndarray

sw()

RQ - from model with id 'zone.soil'

\(s_{\textrm{W-a},k}\ [mm]\)

Returns:

water amount in the soil profile

Return type:

Requirement

update(epoch)

The following computations are performed

  • canopy water storage - [R1] (section 2:2.1)

  • precipitation_soil()

  • curve number values for wilting point and field capacity - [R1] (equ. 2:1.1.4, 2:1.1.5)

  • retention values for wilting point and field capacity - [R1] (equ. 2:1.1.2)

  • shape parameters of retention parameter

  • retention parameter - [R1] (equ. 2:1.1.6)

  • runoff() and infiltration()

Parameters:

epoch (datetime.date) – current evaluation epoch

water_canopy()

MQ - Random Output

\(s_{\textrm{W-c},k}\ [mm]\)

Returns:

amount of water stored in the canopy

Return type:

numpy.ndarray

wp()

RQ - from model with id 'zone.soil'

\(s_{\textrm{W-wp},0}\ [\ ]\)

Returns:

soil moisture at wilting point

Return type:

Requirement