Class Phenology_limVERN
- All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer
Introduction
The sim components in the package lintul5 implement the Lintul5 algorithms from (L5). They are designed to reproduce same results (up to rounding errors) as the original FST program.
The original model is subdivided into multiple sim components (which should be used in the following order to be as close as possible to the original algorithm).
- Irradiation
- PotentialEvapoTranspiration
- WaterBalance
- Phenology
- RadiationUseEfficiency
- Lintul5
Daylength calculation is performed by the transformer component AstronomicParametersTransformer
Phenology component calculates the phenology part
Description
The component calculates phenology according to original model's CROPP() routine.
It takes inputs from the AstronomicParametersTransformer.
It's outputs are used by WaterBalance, RadiationUseEfficiency and Lintul5.
For documentation of the algorithms please consult the orginal documentation (L5)
Changes to original
Control / Program flow
Has additional inputs iDoSow and iDoHarvest. The main routine starts running when iDoSow is true and runs every day until iDoHarvest is true.
- On iDoSow the model is (re)initialized and then the calculation is performed.
- On iDoHarvest all the outputs/states/rates are reset to their defaults (mostly 0). No further calculation is performed.
Within the calculation, the component checks - as in original Lintul5 - whether it should start at planting or at emergence and begins phenology development when CURRENT.DOY equals cIDPL or cIDEM. Therefore you have to make sure that iDoSow occurs before or at cIDPL resp. cIDEM, otherwise development won't start.
Additional Outputs
For the different phenology events, the day of year and date are output. There are as well booleans that become true only on the day when the event occurs and booleans that stay true when the event occurs until resetting/re-initialisation.
CropCycleCount is incremented at every DoHarvest.
Vernalisation
The phenology model has included vernalisation as in (L4V). By default vernalisation is switched off, so the model calculates as original Lintul5. To switch on vernalisation, the user has to provide the adequate parameters for vernalisation and to set cIDSL to 2.
References
- (L5) Joost Wolf, User guide for LINTUL5, Wageningen UR, Wageningen, 2012
- (L4V) Joost Wolf, User guide for LINTUL4(V), Wageningen UR, Wageningen, 2012
- Author:
- G. Krauss
- See Also:
-
IrradiationPotentialEvapoTranspirationWaterBalanceRadiationUseEfficiencyLintul5net.simplace.client.simulation.lap.transformer.AstronomicParametersTransformer
Component Variables
| Content Type | Name | Description | Data Type | Unit | Min Value | Max Value | Default Value |
|---|---|---|---|---|---|---|---|
| constant | cDTSMTB | increase in temperature sum as dependent on mean daily temperature | DOUBLEARRAY | °C d | - | - | -5.0 0.0 0.0 0.0 30.0 30.0 45.0 30.0 |
| constant | cDVSI | initial development stage of crop (from 0 to 2) | DOUBLE | 1 | - | - | 0.0 |
| constant | cIDEM | Day of emergence | INT | 1 | 0 | 366 | 0 |
| constant | cIDPL | Day of planting | INT | 1 | 0 | 366 | 0 |
| constant | cIDSL | development from emergence to flowering depends on temperature (=0), temperature + day length (=1), temperature + day length + vernalisation (=2) | INT | 1 | - | - | 0 |
| constant | cPHOTTB | table of development rate reduction until flowering by daylength | DOUBLEARRAY | 1 | - | - | 0.0 0.0 8.0 1.0 12.0 1.0 18.0 1.0 |
| constant | cPL | start at planting | BOOLEAN | 1 | - | - | true |
| constant | cTBASEM | lower threshold temp. for temperature sum increase before emergence | DOUBLE | °C | -30.0 | 50.0 | 0.0 |
| constant | cTEFFMX | max. eff. temp. for temperature sum increase before emergence | DOUBLE | °C | -30.0 | 50.0 | 30.0 |
| constant | cTSUM1 | temperature sum required for vegetative period (from emergence to flowering) | DOUBLE | °C d | 0.0 | 7000.0 | 1050.0 |
| constant | cTSUM2 | temperature sum required for generative period | DOUBLE | °C d | 0.0 | 7000.0 | 1000.0 |
| constant | cTSUMEM | required temperature sum for crop emergence | DOUBLE | °C d | 0.0 | 7000.0 | 60.0 |
| constant | cTSUMMilkripeness | temperature sum from anthesis to milkripeness | DOUBLE | °C d | 0.0 | 7000.0 | 700.0 |
| constant | cVBASE | Vernalisation base thermal day | DOUBLE | d | - | - | 0.0 |
| constant | cVERNRT | Vernalisation factor dependend by average temperature | DOUBLEARRAY | 1 | - | - | 0.0 1.0 1.0 1.0 |
| constant | cVERSAT | Vernalisation max thermal day | DOUBLE | d | - | - | 0.0 |
| constant | cVernalisationDevStage | maximal devstage up to which vernalisation is applied | DOUBLE | 1 | - | - | 0.3 |
| input | iDDLP | Photoperiodic daylength | DOUBLE | h | - | - | 0.0 |
| input | iDoHarvest | harvesting | BOOLEAN | 1 | - | - | false |
| input | iDoSow | sowing | BOOLEAN | 1 | - | - | false |
| input | iTMAX | maximal air temperature during day (output of routine WEATHR) | DOUBLE | °C | - | - | 0.0 |
| input | iTMIN | minimal air temperature during day (output of routine WEATHR) | DOUBLE | °C | - | - | 0.0 |
| state | sDVS | development stage of crop (from 0 to 2) | DOUBLE | 1 | 0.0 | - | 0.0 |
| state | sTSULP | temperature sum from sowing/planting | DOUBLE | °C d | 0.0 | - | 0.0 |
| state | sTSUM | temperature sum from emergence | DOUBLE | °C d | 0.0 | - | 0.0 |
| state | sTSUML | temperature sum from emergence inclusive day length effect | DOUBLE | °C d | 0.0 | - | 0.0 |
| state | sVERN | vernalisation days | DOUBLE | d | - | - | 0.0 |
| rate | rDTSULP | increase in temperature sum from planting or sowing | DOUBLE | °C | - | - | 0.0 |
| rate | rDTSUM | actual increase in temperature sum from emergence without reduction (RDAYL) | DOUBLE | °C | - | - | 0.0 |
| rate | rDTSUML | actual increase in temperature sum from emergence with reduction for day length (RDAYL) | DOUBLE | °C | - | - | 0.0 |
| rate | rDVR | rate of phenological development | DOUBLE | d-1 | - | - | 0.0 |
| rate | rRVERNR | vernal day increase rate | DOUBLE | 1 | - | - | 0.0 |
| out | AnthesisDOY | DOY of Anthesis | INT | 1 | 1 | 366 | - |
| out | AnthesisDate | Date of Anthesis | DATE | 1 | - | - | - |
| out | CropCycleCount | Period of Sowing | INT | 1 | 0 | 1000 | 0 |
| out | EMERG | has emerged | BOOLEAN | 1 | - | - | false |
| out | EmergenceDOY | DOY of Emergence | INT | 1 | 1 | 366 | - |
| out | EmergenceDate | Date of Emergence | DATE | 1 | - | - | - |
| out | FLOW | has flowered | BOOLEAN | 1 | - | - | false |
| out | IDEMERG | Day of emergence | INT | 1 | - | - | 0 |
| out | IsAnthesis | true if Anthesis date | BOOLEAN | 1 | - | - | false |
| out | IsEmergence | true if Emergence date | BOOLEAN | 1 | - | - | false |
| out | IsMaturity | true if maturity date | BOOLEAN | 1 | - | - | false |
| out | IsMilkripeness | true if milkripeness date | BOOLEAN | 1 | - | - | false |
| out | IsPhenologyEvent | true if sowing/emergence/anthesis/maturity date | BOOLEAN | 1 | - | - | false |
| out | IsSowing | true if Sowing date | BOOLEAN | 1 | - | - | false |
| out | MATURITY | is mature | BOOLEAN | 1 | - | - | false |
| out | MILKRIPENESS | milkripeness has occured | BOOLEAN | 1 | - | - | false |
| out | MaturityDOY | DOY of Maturity | INT | 1 | 1 | 366 | - |
| out | MaturityDate | Date of Maturity | DATE | 1 | - | - | - |
| out | MilkripenessDOY | DOY of Maturity | INT | 1 | 1 | 366 | - |
| out | MilkripenessDate | Date of Maturity | DATE | 1 | - | - | - |
| out | SOW | is sown | BOOLEAN | 1 | - | - | false |
| out | SowingDOY | DOY of Sowing | INT | 1 | 1 | 366 | - |
| out | SowingDate | Date of Sowing | DATE | 1 | - | - | - |
-
Nested Class Summary
Nested classes/interfaces inherited from class net.simplace.sim.model.FWSimComponent
net.simplace.sim.model.FWSimComponent.TEST_STATE -
Field Summary
Fields inherited from class net.simplace.sim.model.FWSimComponent
iFieldMap, iFrequence, iInputMap, iJexlRule, iMasterComponentGroup, iName, iOrderNumber, isComponentGroup, iSimComponentElement, iSimModel, iVarMap -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected net.simplace.sim.model.FWSimComponentclone(net.simplace.sim.util.FWSimVarMap aVarMap) creates a clone from this SimComponent for use in other threadsfillTestVariables(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck) called for single component test to check the components algorithm.protected voidinit()protected voidprotected voidprotected voidprocess()protected voidMethods inherited from class net.simplace.sim.model.FWSimComponent
addVariable, bind, checkCondition, createSimComponent, createSimComponent, createSimComponent, createSimComponent, doProcess, getConstantVariables, getContentType, getCreateFormXML, getDescription, getEditFormXML, getFieldMap, getFrequence, getFrequenceRuleScript, getInputs, getInputVariables, getMasterComponentGroup, getName, getOrderNumber, getOutputVariables, getVariable, getVariableField, getVarMap, initialize, isConditionCheck, isVariableAvailable, performLinks, performLinks, readInputs, removeVariable, reset, runComponentTest, setVariablesDefault, toComponentLinkingXML, toDocXML, toGroupXML, toOutputDefinitionXML, toResourcesDataXML, toResourcesDefinitionXML, toString, toXML, writeVarInfos
-
Constructor Details
-
Phenology_limVERN
public Phenology_limVERN(String aName, HashMap<String, net.simplace.sim.util.FWSimVariable<?>> aFieldMap, HashMap<String, String> aInputMap, org.jdom2.Element aSimComponentElement, net.simplace.sim.util.FWSimVarMap aVarMap, int aOrderNumber) - Parameters:
aName-aFieldMap-aInputMap-aSimComponentElement-aVarMap-aOrderNumber-
-
Phenology_limVERN
public Phenology_limVERN()Empty constructor used by class.forName()
-
-
Method Details
-
createVariables
- Specified by:
createVariablesin interfacenet.simplace.sim.util.FWSimFieldContainer- Specified by:
createVariablesin classnet.simplace.sim.model.FWSimComponent- See Also:
-
net.simplace.simulation.model.FWSimComponent#createVariables()
-
init
protected void init()- Specified by:
initin classnet.simplace.sim.model.FWSimComponent- See Also:
-
net.simplace.simulation.model.FWSimComponent#init()
-
initValues
protected void initValues() -
initOnSowing
protected void initOnSowing() -
resetOnHarvest
protected void resetOnHarvest() -
process
protected void process()- Specified by:
processin classnet.simplace.sim.model.FWSimComponent- See Also:
-
net.simplace.simulation.model.FWSimComponent#process()
-
CalculatePhenology
protected void CalculatePhenology() -
fillTestVariables
public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> fillTestVariables(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck) called for single component test to check the components algorithm.- Specified by:
fillTestVariablesin classnet.simplace.sim.model.FWSimComponent- See Also:
-
net.simplace.sim.util.FWSimFieldContainer#fillTestVariables(int aParamIndex, TEST_STATE aDefineOrCheck)
-
clone
protected net.simplace.sim.model.FWSimComponent clone(net.simplace.sim.util.FWSimVarMap aVarMap) creates a clone from this SimComponent for use in other threads- Specified by:
clonein classnet.simplace.sim.model.FWSimComponent- See Also:
-
net.simplace.simulation.model.FWSimComponent#clone(net.simplace.simulation.util.FWSimVarMap)
-