EPIC - soil.supply¶
mef_agri.models.soil.supply.model_epic.py
- class mef_agri.models.soil.supply.model_epic.Supply(**kwargs)¶
Computation of water and nitrate supply from the soil to the crop according to [R2]
kwargs \(\rightarrow\)
mef_agri.models.base.Model
- drbm()¶
RQ - from model with id
'crop.roots'
\(c_{\textrm{R-}\Delta\textrm{bm},k}\ [\frac{t}{ha\cdot day}]\)
- Returns:
daily increase of root biomass
- Return type:
- fc()¶
RQ - from model with id
'zone.soil'
\(s_{\textrm{W-fc},0}\ [\ ]\)
- Returns:
soil moisture at field capacity
- Return type:
- initialize(epoch)¶
Initialization of generic zero- and one-arrays.
- Parameters:
epoch (datetime.date) – initialization epoch
- moisture_1m()¶
MQ - Random Output
\(s_{\textrm{W-m1m},k}\ [\ ]\ \rightarrow\) [R2] : part of equ. 49
- Returns:
moisture of first 1.0 m of soil
- Return type:
numpy.ndarray
- ndem()¶
RQ - from model with id
'crop.demand'
\(c_{\textrm{N-dem},k}\ [\frac{kg}{ha}]\)
- Returns:
nitrogen demand of the crop
- Return type:
- nitrogen()¶
MQ - Random Output
\(s_{\textrm{N-avl},k}\ [\frac{kg}{ha\cdot day}]\ \rightarrow\) [R2] : equ 27 - 29
- Returns:
amount of nitrogen which is available for the crop at current day
- 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:
- tb()¶
RQ - from model with id
'crop.development'
\(c_{\textrm{D-tb},0}\ [^\circ C]\)
- Returns:
crop-specific base temperature
- Return type:
- to()¶
RQ - from model with id
'crop.development'
\(c_{\textrm{D-to},0}\ [^\circ C]\)
- Returns:
crop-specific optimum temperature
- Return type:
- update(epoch)¶
The following computations are performed
check if crop is present - if not, uptake rates are set to zero
layer: compute temperature stress affecting the water use - [R2] : equ. 46 (using soil layer temp. instead of surface temp.)
layer: compute potential water use - [R2] : equ. 22
layer: compute actual water use - [R2] : equ. 23
layer: adjust water amount considering water use
layer: nitrate uptake due to mass flow - [R2] : equ. 27
ensure, that the overall nitrate uptake does not exceed the crop demand
increase the overall nitrate uptake due to mass flow to account for diffusion uptake - [R2] : equ. 29 (NOTE: if mass flow uptake is very small, the adjusted uptake will be set to zero to avoid numerical instabilities)
layer: distribute root biomass to soil layers with respect ot water use - [R2] : equ. 13
layer: adjust nitrate uptake amounts to account for diffusion uptake
compute the moisture of the first meter of soil (also if no crop is present)
- Parameters:
epoch (datetime.date) – current evaluation epoch
- water()¶
MQ - Random Output
\(s_{\textrm{W-avl},k}\ [\frac{mm}{day}]\ \rightarrow\) [R2] : equ. 23 + 24
- Returns:
amount of water which is available for the crop
- Return type:
numpy.ndarray
- water_demand()¶
RQ - from model with id
'crop.demand'
\(c_{\textrm{W-dem},k} ... [\frac{mm}{day}]\)
- Returns:
water demand of crop at current day
- Return type:
- wp()¶
RQ - from model with id
'zone.soil'
\(s_{\textrm{W-wp},0}\ [\ ]\)
- Returns:
soil moisture at wilting point
- Return type:
- wudf()¶
RQ - from model with id
'zone.soil'
\(s_{\textrm{W-udf},0}\ [\ ]\)
- Returns:
water use distribution factor
- Return type: