SWAT - soil.layer.water

mef_agri.models.soil.layer.water.model_swat.py

class mef_agri.models.soil.layer.water.model_swat.Water_V2009(**kwargs)
amount()

MQ - Random Output

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

Returns:

water amount

Return type:

numpy.ndarray

evaporation()

MQ - Random Output

\(s_{\textrm{W-evp},i,k}\ [\frac{mm}{day}]\)

Returns:

water that evaporated at current day

Return type:

numpy.ndarray

evp_pot()

RQ - from model with id 'zone.soil.surface.evapotranspiration'

\(s_{\textrm{W-ep},s,k}\ [\frac{mm}{day}]\)

Returns:

potential soil evaporation

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

hc()

RQ - from model with id 'zone.soil'

\(s_{\textrm{W-hcs},0}\ [\frac{mm}{day}]\)

Returns:

hydraulic conductivity of saturated soil

Return type:

Requirement

infiltrated()

MQ - Random Output

\(s_{\textrm{W-inf},i,k}\ [\frac{mm}{day}]\)

Returns:

water that infiltrated into the layer at current day

Return type:

numpy.ndarray

initialize(epoch)

Intialization of the water amount (derived from a priori moisture and layer thickness) and other random outputs (zero arrays).

Parameters:

epoch (datetime.date) – intialization epoch

ld()

RQ - from model with id '.__parent__' (parent layer)

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

Returns:

depth of bottom layer border

Return type:

Requirement

lt()

RQ - from model with id '.__parent__' (parent layer)

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

Returns:

layer thickness

Return type:

Requirement

moisture()

MQ - State

\(s_{\textrm{W-m},i,k}\ [\ ]\)

Returns:

soil moisture content

Return type:

numpy.ndarray

percolation()

MQ - Random Output

\(s_{\textrm{W-per},i,k}\ [\frac{mm}{day}]\)

Returns:

water that percolated into deeper layer at current day

Return type:

numpy.ndarray

por()

RQ - from model with id 'zone.soil'

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

Returns:

soil porosity (saturated water content)

Return type:

Requirement

update(epoch)

The following computations are performed

  • travel time of percolating water ttp - [R1] (equ. 2:3.2.4)

  • percolation perc = exc * (1. - np.exp(-1. / ttp)) (exc being the amount of water exceeding the field capacity)

  • in the case that the remaining water amount exceeds soil porosity, the corresponding excess is added to percolation

  • update of water amount and moisture

  • evaporative demand at soil layer upper and bottom boundary - [R1] (equ. 2:2.3.16a)

  • evaporative demand in the layer - [R1] (equ. 2:2.3.16b)

  • first correction term - [R1] (equ. 2:2.3.18, 2:2.3.19)

  • second correction term - [R1] (equ. 2:2.3.20)

  • update water amount and moisture

NOTE: the tuning variable esco from [R1] (equ. 2:2.3.17) is omitted

Parameters:

epoch (datetime.date) – current evaluation epoch

uptake()

MQ - Random Output

\(c_{\textrm{W-upt},i,k}\ [\frac{mm}{day}]\)

Returns:

crop water uptake at current day

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