SWAT - soil.layer.nutrients.carbon

mef_agri.models.soil.layer.nutrients.carbon.model_swat.py

class mef_agri.models.soil.layer.nutrients.carbon.model_swat.C_Corg_Cres_V2009(**kwargs)

This model implements the carbon model from [R1] section 3:5, which is composed of differential equations. Herein, these differential equations are used directly because they are solved on a daily basis (i.e. numerical integration). This seems to be reasonable compared to [R1] section 3:5.3, where the analytical solutions are derived and evaluated at time steps of one year.

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

C_org()

MQ - State

\(s_{\textrm{C-org},i,k}\ [\frac{kg}{ha}]\) - [R1] (section 3:5.1)

Returns:

organic C-pool (~humus)

Return type:

numpy.ndarray

C_res()

MQ - State

\(s_{\textrm{C-res},i,k}\ [\frac{kg}{ha}]\) - [R1] (section 3:5.1)

Returns:

C-pool in the crop residues

Return type:

numpy.ndarray

dC_res_opt()

RQ - from model with id 'zone.soil'

\(s_{\textrm{C-rdo},0}\ [\frac{1}{day}]\)

Returns:

optimum decomposition rate of crop residual C-pool (percent per day)

Return type:

Requirement

decomposed_C_res()

MQ - Random Output

\(s_{\textrm{C-rd},i,k}\ [\frac{kg}{ha\cdot day}]\) - [R1] (equ. 3:5.1.1a)

Returns:

C decomposed from crop residuals at current day

Return type:

numpy.ndarray

fnc()

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

\(s_{\textrm{ncf},i,k}\ [\ ]\)

Returns:

factor combining soil temperatur and water influence on nutrient cycle

Return type:

Requirement

humified_C_res()

MQ - Random Output

\(s_{\textrm{C-rdh},i,k}\ [\frac{kg}{ha\cdot day}]\) - [R1] (equ. 3:5.1.2a)

Returns:

amount of decomposed C from crop residuals which is added to the organic C-pool (humus)

Return type:

numpy.ndarray

initialize(epoch)

Only the super-call is done here.

Parameters:

epoch (datetime.date) – initialization epoch

lt()

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

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

Returns:

layer thickness

Return type:

Requirement

min_opt()

RQ - from model with id 'zone.soil'

\(s_{\textrm{C-omo},0}\ [\frac{1}{day}]\)

Returns:

optimum mineralization rate from organic C-pool (percent per day)

Return type:

Requirement

mineralization()

MQ - Random Output

\(s_{\textrm{min},i,k}\ [\frac{1}{day}]\) [R1] (equ. 3:5.1.7 neglecting tillage factor)

Returns:

mineralization rate

Return type:

numpy.ndarray

mineralized_C_org()

MQ - Random Output

\(s_{\textrm{C-om},i,k}\ [\frac{kg}{ha\cdot day}]\)

Returns:

mineralized C from organic C-pool

Return type:

numpy.ndarray

sbd()

RQ - from model with id 'zone.soil'

\(s_{\textrm{bd},0}\ [\frac{g}{cm^3}]\)

Returns:

bulk density of the soil

Return type:

Requirement

scl()

RQ - from model with id 'zone.soil'

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

Returns:

clay content of soil

Return type:

Requirement

update(epoch)

The following computations are performed

  • decomposed C on the current day \(s_{\textrm{C-rd},i,k}=s_{\textrm{C-res},i,k}\cdot s_{\textrm{C-rdo},0}\cdot s_{\textrm{ncf},i,k}\)

  • reference organic carbon - [R1] (equ. 3:5.1.4)

  • auxiliary variable hx - [R1] (equ. 3:5.1.3b)

  • humified C from crop residuals - [R1] (equ. 3:5.1.3a)

  • current mineralization rate - [R1] (equ. 3:5.1.7 - neglecting tillage factor)

  • mineralized C - [R1] (subtracting term in equ. 3:5.1.2a)

Parameters:

epoch (datetime.date) – current evaluation epoch