Class VernalisationAndPhotoresponse
- All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer
Vernalisation
Vernalisation days
The daily increment of vernalisation days is determined by daily average temperature iDAVTEMP
\[ \begin{eqnarray} VDI(iDAVTEMP) & = & \left\{ \begin{array}{l} 0 & \text{if} \quad iDAVTEMP \lt cTlowCritical\\ \frac{iDAVTEMP - cTlowCritical}{cTlow - cTlowCritical} & \text{if} \quad cTlowCritical \le iDAVTEMP \lt cTlow \\ 1 & \text{if} \quad cTlow \le iDAVTEMP \lt cThigh \\ \frac{cThighCritical - iDAVTEMP}{cThighCritical - cThigh} & \text{if} \quad cThigh \le iDAVTEMP \lt cThighCritical \\ 0 & \text{if} \quad cThighCritical \le iDAVTEMP\\ \end{array} \right. \end{eqnarray} \]And sVernalDays is incremented by VDI(iDAVTEMP).
Vernalisation factor
VernalisationFactor (VF) is determined by the sVernalDays (VD)
\[ \begin{eqnarray} VF(VD) & = & \left\{ \begin{array}{l} 0 & \text{if} \quad VD \lt cVernalDaysMin\\ \frac{VD - cVernalDaysMin}{cVernalDaysMax - cVernalDaysMin} & \text{if} \quad cVernalDaysMin \le VD \lt cVernalDaysMax \\ 1 & \text{if} \quad cVernalDaysMax \le VD \\ \end{array} \right. \end{eqnarray} \]Photoresponse Factor
DayLength is calculated from current DOY and cLatitude
Photoresponse curve is interpolated from cPhotoresponseTable, which is a double array, holding the duration (in hours) in the even entries and the coresponding factors in the odd entries.
The PhotoresponseFactor is then chosen from the interpolated curve according to the Daylength.
After anthesis, no daylength effects are taken into account (PhotoresponseFactor = 1).
Applying Vernalisation and Photoresponse
Before anthesis:
\[ \begin{eqnarray} RTSUM & = & iTSumBaseAnt \cdot Min(PhotoresponseFactor, VernalisationFactor) \end{eqnarray} \]After anthesis:
\[ \begin{eqnarray} RTSUM & = & iTSumBaseMat \cdot Min(PhotoresponseFactor, VernalisationFactor) \end{eqnarray} \]cApplyPhotoresponse and cApplyVernalisation control whether photoresponse, vernalisation or both are applied. If the control variables are false, the coresponding factor is always 1, meaning that the effect is not applied.
The state sVernalDays has to be reset on each sowing. Therefore the input iDoSow has to be provided.
References:
Goudriaan, H.H. Van Laar, 1994. Modelling Potential Crop Growth Processes, Kluwer Academic Publishers, Dordrecht (1994) 238 pp
Component Variables
Content Type | Name | Description | Data Type | Unit | Min Value | Max Value | Default Value |
---|---|---|---|---|---|---|---|
constant | cApplyPhotoresponse | Flag to activate photo response (True: daylength sensitive crops) | BOOLEAN | 1 | - | - | true |
constant | cApplyVernalisation | Flag to activate vernalisation (True: crops requiring vernalisation for flower initialisation | BOOLEAN | 1 | - | - | true |
constant | cLatitude | Latitude of the simulated location | DOUBLE | ° | 0.0 | 90.0 | 60.0 |
constant | cPhotoperiodTableFactor | Correction factor of development rate in dependence of day length (c.f. PHOTTB) | DOUBLEARRAY | 1 | - | - | 0.0 0.0 1.0 1.0 |
constant | cPhotoperiodTableHour | Day length for correction factor of development (c.f. PHOTTB) | DOUBLEARRAY | h | - | - | 0.0 8.0 20.0 24.0 |
constant | cPhotoresponseTable | Crop specific photo response table as function of daylength in hours | DOUBLEARRAY | 1 | - | - | - |
constant | cThigh | Upper temperature threshold for vernalisation; days with higher mean air temperature are not fully considered as a vernalisation day | DOUBLE | °C | -40.0 | 50.0 | 10.0 |
constant | cThighCritical | Upper temperature threshold for vernalisation; days with higher mean air temperature don't contribute at all for vernalisation day | DOUBLE | °C | -40.0 | 50.0 | 17.0 |
constant | cTlow | Lower temperature threshold for vernalisation, days with lower mean air temperature are not fully considered as a vernalisation day | DOUBLE | °C | -40.0 | 50.0 | 3.0 |
constant | cTlowCritical | Lower critical temperature threshold for vernalisation, days with lower mean air temperature don't contribute at all for vernalisation day | DOUBLE | °C | -40.0 | 50.0 | -4.0 |
constant | cVernalDaysMax | Crop specific maximum number of days required for vernalisation | INT | 1 | 0 | 400 | 70 |
constant | cVernalDaysMin | Crop specific minimum number of days required for vernalisation | INT | 1 | 0 | 100 | 10 |
input | iDAVTMP | Daily mean air temperature | DOUBLE | °C | 0.0 | 50.0 | - |
input | iDevStage | Development stage of the crop (1.0=anthesis, 2.0=physiological maturity) | DOUBLE | 1 | 0.0 | 3.0 | - |
input | iDevStageBaseShoot | Development stage for base shoot | DOUBLE | 1 | 0.0 | 10000.0 | 0.5 |
input | iDoSow | true if sowing day | BOOLEAN | 1 | - | - | false |
input | iTSumBaseAnt | Daily effective temperature before anthesis | DOUBLE | °C | 0.0 | 10000.0 | - |
input | iTSumBaseMat | Daily effective temperature after anthesis | DOUBLE | °C | 0.0 | 10000.0 | - |
input | iTSumBaseShoot | Daily effective temperature after shooting - if given | DOUBLE | °C | 0.0 | 10000.0 | - |
state | sPhotoresponseArray | Photo response array as function of daylength in minutes | DOUBLEARRAY | 1 | 0.0 | 20.0 | - |
state | sVernalDays | actual Vernal Days | DOUBLE | 1 | 0.0 | 400.0 | 0.0 |
out | DayLength | Day Length in minutes | INT | min | 0 | 1441 | 0 |
out | PhotoresponseFactor | daily photoresponse factor | DOUBLE | 1 | 0.0 | 1.0 | 0.0 |
out | RTSUM | Daily effective temperature used to calculate the temperature sum and development stage at a given day | DOUBLE | °C | 0.0 | 50.0 | - |
out | VernalisationFactor | daily vernalisation factor | DOUBLE | 1 | 0.0 | 1.0 | 0.0 |
-
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
ConstructorDescriptionEmpty constructor used by class.forName()VernalisationAndPhotoresponse
(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) Called by Clone method only -
Method Summary
Modifier and TypeMethodDescriptionprotected net.simplace.sim.model.FWSimComponent
clone
(net.simplace.sim.util.FWSimVarMap aVarMap) Create the FWSimVariables as interface for this SimComponentfillTestVariables
(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck) called for single component test to check the components algorithm.protected void
init()
static Double[]
Stores the photo response factors for a duration in minutes in an arrayprotected void
process()
Methods 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
-
VernalisationAndPhotoresponse
public VernalisationAndPhotoresponse(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) Called by Clone method only- Parameters:
aName
-aFieldMap
-aInputMap
-aSimComponentElement
-aVarMap
-aOrderNumber
-
-
VernalisationAndPhotoresponse
public VernalisationAndPhotoresponse()Empty constructor used by class.forName()
-
-
Method Details
-
createVariables
Create the FWSimVariables as interface for this SimComponent- Specified by:
createVariables
in interfacenet.simplace.sim.util.FWSimFieldContainer
- Specified by:
createVariables
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.createVariables()
-
init
protected void init()- Specified by:
init
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.init()
-
process
protected void process()- Specified by:
process
in classnet.simplace.sim.model.FWSimComponent
-
clone
protected net.simplace.sim.model.FWSimComponent clone(net.simplace.sim.util.FWSimVarMap aVarMap) - Specified by:
clone
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)
-
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:
fillTestVariables
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
net.simplace.sim.util.FWSimFieldContainer#fillTestVariables(int aParamIndex, TEST_STATE aDefineOrCheck)
-
PhotoResponseToArray
Stores the photo response factors for a duration in minutes in an array- Parameters:
TAB
- table for linear interpolation- Returns:
- the array with minutes as key and Photo response as value
-