EPIC - crop¶
- class mef_agri.models.crop.model_epic.Crop_Simple¶
This class acts as root-model containing several child models (i.e.
model_name='crop'
is passed to the parent classmef_agri.models.base.Model
).It uses
mef_agri.models.crop.development.model_epic.Development
as development-modelmef_agri.models.crop.cyield.model_epic.Yield
as crop-yield-model
- biomass()¶
MQ - State
\(c_{\textrm{bm},k} = c_{\textrm{bm},k-1} + c_{\Delta\textrm{bm},k}\ [\frac{t}{ha}]\)
Monteith (1977) approach is used for biomass increase. Thus, all biomass quantities represent dry matter (see [R6] first sentence of Introduction)
- Returns:
total dry biomass (aboveground + roots)
- Return type:
numpy.ndarray
- biomass_aboveground()¶
MQ - Random Output
\(c_{\textrm{bma},k}\ [\frac{t}{ha}] = c_{\textrm{bm},k} - c_{\textrm{R-bm},k}\ [\frac{t}{ha}]\)
- Returns:
above-ground biomass
- Return type:
numpy.ndarray
- biomass_aboveground_reduction()¶
MQ - Random Output
\(c_{\downarrow\Delta\textrm{bma},k}\ [\frac{t}{ha}]\)
- Returns:
reduction of above-ground biomass (only occurs in winter dormancy periods)
- Return type:
numpy.ndarray
- biomass_rate()¶
MQ - Random Output
\(c_{\Delta\textrm{bm},k}\ [\frac{t}{ha\cdot day}]\) - [R2] (equ. 4, 44)
- Returns:
daily increase of total biomass - [1] equ. 4 and 44
- Return type:
numpy.ndarray
- critical_aeration_factor()¶
MQ - Hyper-Parameter
\(c_{\textrm{caf},0}\ [\ ]\) - [R2] (table 2)
- Returns:
critical aeration factor
- Return type:
numpy.ndarray
- cyield()¶
Child Model
- Returns:
model to compute yield increase
- Return type:
- demand()¶
Child Model
- Returns:
model to determine crop demands
- Return type:
- development()¶
Child Model
- Returns:
model which computes the crop development stage
- Return type:
- dl()¶
RQ -
'daylength'
from model with id'zone.atmosphere.daylength'
\(a_{\textrm{dl},k}\ [h]\)
- Returns:
current daylength
- Return type:
- dlmin()¶
RQ -
'daylength_min'
from model with id'zone.atmosphere.daylength'
\(a_{\textrm{dlmin},k}\ [h]\)
- Returns:
min. daylength in a year at current site
- Return type:
- energy_conversion()¶
MQ - Hyper-Parameter
\(c_{\textrm{e2bm},0}\ [\frac{kg\cdot m^2}{MJ\cdot hat\cdot day}]\) - [R2] (table 2)
- Returns:
factor to convert energy to biomass
- Return type:
numpy.ndarray
- frost_coeff1()¶
MQ - Hyper-Parameter
\(c_{\textrm{frc1},0}\ [\ ]\) - [R2] (equ. 65, table 2)
- Returns:
regression coefficient for frost influence on biomass reduction
- Return type:
numpy.ndarray
- frost_coeff2()¶
MQ - Hyper-Parameter
\(c_{\textrm{frc2},0}\ [\frac{1}{^\circ C}]\) - [R2] (equ. 65, table 2)
- Returns:
regression coefficient for frost influence on biomass reduction
- Return type:
numpy.ndarray
- gc()¶
RQ -
'growth_constraint'
from model with id'crop.stress'
\(c_{\textrm{gc},k}\ [\ ]\)
- Returns:
biomass growth constraint (min. value of several stress factors)
- Return type:
- height()¶
MQ - Random Output
\(c_{\textrm{h},k}\ [m]\) - [R2] (equ. 11)
- Returns:
crop height
- Return type:
numpy.ndarray
- height_max()¶
MQ - Hyper-Parameter
\(c_{\textrm{hmax},0}]\ [\ ]\) - [R2] (table 2)
- Returns:
max. crop height
- Return type:
numpy.ndarray
- hufl()¶
RQ -
'heat_unit_factor_leaves'
from model with id'crop.development'
\(c_{\textrm{L-huf},k}\ [\ ]\)
- Returns:
heat unit factor for leaf growth
- Return type:
- hui()¶
RQ - quantity
'heat_unit_index'
from model with id'crop.development'
\(c_{\textrm{hui},k}\ [\ ]\)
- Returns:
current heat unit index
- Return type:
- initialize(epoch)¶
Initialization of random outputs with zero vectors and child models
- Parameters:
epoch (datetime.date) – initialization epoch
- lai()¶
RQ -
'lai'
from model with id'crop.leaves'
\(c_{\textrm{L-lai},k}\ [\ ]\)
- Returns:
current leaf area index
- Return type:
- leaves()¶
Child Model
- Returns:
model which computes growth of leaves
- Return type:
- rad()¶
RQ -
'radiation_sum'
from model with id'zone.atmosphere.weather'
\(a_{\textrm{rad},k}\ [\frac{MJ}{m^2\cdot day}]\)
- Returns:
daily radiation sum
- Return type:
numpy.ndarray
- radiation_intercepted()¶
MQ - Random Output
\(c_{\textrm{irad},k}\ [\frac{MJ}{m^2\cdot day}]\) - [R2] (equ. 3)
- Returns:
intercepted radiation
- Return type:
numpy.ndarray
- rbm()¶
RQ -
'biomass'
from model with id'crop.roots'
\(c_{\textrm{R-bm},k}\ [\frac{t}{ha}]\)
- Returns:
root biomass
- Return type:
- rf_daylength()¶
MQ - Random Output
\(c_{\textrm{rfdl},k}\ [\ ]\) - [R2] (equ. 64)
- Returns:
reduction factor on above-ground biomass due to daylength
- Return type:
numpy.ndarray
- rf_frost()¶
MQ - Random Output
\(c_{\textrm{rffr},k}\ [\ ]\) - [R2] (equ. 65)
- Returns:
reduction factor on above-ground biomass due to frost damage
- Return type:
numpy.ndarray
- roots()¶
Child Model
- Returns:
model which computes root growth
- Return type:
- stress()¶
Child model
- Returns:
model which determines stress factors
- Return type:
- tmin()¶
RQ -
'temperature_min'
from model with id'zone.atmosphere.weather'
\(a_{\textrm{tmin},k}\ [^\circ C]\)
- Returns:
min. temperature at current day
- Return type:
- update(epoch)¶
The following computations are performed
update
uptake()
update
development()
if
self.wdorm.value == True
set
biomass_rate()
to zero vector
else
difference in daylength
set
rf_daylength()
,rf_frost()
andbiomass_aboveground_reduction()
to zero vectors
update
stress()
update
leaves()
update
roots()
update
cyield()
update
demand()
in the case of
self.wdorm.value == True
> reducebiomass()
andbiomass_aboveground()
bybiomass_aboveground_reduction()
- Parameters:
epoch (datetime.date) – current evaluation epoch
- uptake()¶
Child Model
- Returns:
model to determine/map the supplied quantities from the soil (and atmosphere)
- Return type:
- water_storage_max()¶
MQ - Hyper-Parameter
\(c_{\textrm{W-csm},0}\ [mm]\) - [R1] (equ. 2:2.1.1)
- Returns:
amount of water that can be stored in the canopy when leaves are fully developed
- Return type:
numpy.ndarray
- wdorm()¶
RQ -
'winter_dormancy'
from model with id'crop.development'
\(c_{\textrm{wd},k}\ [\ ]\) (boolean value)
- Returns:
flag if winter dormancy is active
- Return type:
- class mef_agri.models.crop.model_epic.Crop_Extended¶
This class acts as root-model containing several child models (i.e.
model_name='crop'
is passed to the parent classssc_csm.models.base.Model
).It uses
ssc_csm.models.crop.development.model_epic.Development_Dormancy
as development-modelssc_csm.models.crop.cyield.model_epic.Yield_Stressed
as crop-yield-model
- cyield()¶
Child Model
- Returns:
model to compute yield increase
- Return type:
ssc_csm.models.crop.cyield.model_epic.Yield_Stressed
- development()¶
Child Model
- Returns:
model to compute crop development
- Return type:
ssc_csm.models.crop.development.model_epic.Development_Dormancy