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 class mef_agri.models.base.Model).

It uses

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:

mef_agri.models.crop.cyield.model_epic.Yield

demand()

Child Model

Returns:

model to determine crop demands

Return type:

mef_agri.models.crop.demand.model_epic.Demand

development()

Child Model

Returns:

model which computes the crop development stage

Return type:

mef_agri.models.crop.development.model_epic.Development

dl()

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

\(a_{\textrm{dl},k}\ [h]\)

Returns:

current daylength

Return type:

Requirement

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:

Requirement

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:

Requirement

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:

Requirement

hui()

RQ - quantity 'heat_unit_index' from model with id 'crop.development'

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

Returns:

current heat unit index

Return type:

Requirement

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:

Requirement

leaves()

Child Model

Returns:

model which computes growth of leaves

Return type:

mef_agri.models.crop.leaves.model_epic.Leaves

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:

Requirement

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:

mef_agri.models.crop.roots.model_epic.Roots

stress()

Child model

Returns:

model which determines stress factors

Return type:

mef_agri.models.crop.stress.model_epic.Stress

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:

Requirement

update(epoch)

The following computations are performed

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:

mef_agri.models.crop.uptake.model_epic.Uptake

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:

Requirement

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 class ssc_csm.models.base.Model).

It uses

  • ssc_csm.models.crop.development.model_epic.Development_Dormancy as development-model

  • ssc_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