Class VernalisationAndPhotoresponse

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.crop.VernalisationAndPhotoresponse
All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer

public class VernalisationAndPhotoresponse extends net.simplace.sim.model.FWSimComponent
Reduces daily temperature increment by vernalisation and photoresponse.

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 TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcApplyPhotoresponseFlag to activate photo response (True: daylength sensitive crops)BOOLEAN1--true
constantcApplyVernalisationFlag to activate vernalisation (True: crops requiring vernalisation for flower initialisationBOOLEAN1--true
constantcLatitudeLatitude of the simulated locationDOUBLE°0.090.060.0
constantcPhotoperiodTableFactorCorrection factor of development rate in dependence of day length (c.f. PHOTTB)DOUBLEARRAY1-- 0.0 0.0 1.0 1.0
constantcPhotoperiodTableHourDay length for correction factor of development (c.f. PHOTTB)DOUBLEARRAYh-- 0.0 8.0 20.0 24.0
constantcPhotoresponseTableCrop specific photo response table as function of daylength in hoursDOUBLEARRAY1---
constantcThighUpper temperature threshold for vernalisation; days with higher mean air temperature are not fully considered as a vernalisation day DOUBLE°C-40.050.010.0
constantcThighCriticalUpper temperature threshold for vernalisation; days with higher mean air temperature don't contribute at all for vernalisation day DOUBLE°C-40.050.017.0
constantcTlowLower temperature threshold for vernalisation, days with lower mean air temperature are not fully considered as a vernalisation dayDOUBLE°C-40.050.03.0
constantcTlowCriticalLower critical temperature threshold for vernalisation, days with lower mean air temperature don't contribute at all for vernalisation dayDOUBLE°C-40.050.0-4.0
constantcVernalDaysMaxCrop specific maximum number of days required for vernalisationINT1040070
constantcVernalDaysMinCrop specific minimum number of days required for vernalisationINT1010010
inputiDAVTMPDaily mean air temperatureDOUBLE°C0.050.0-
inputiDevStageDevelopment stage of the crop (1.0=anthesis, 2.0=physiological maturity)DOUBLE10.03.0-
inputiDevStageBaseShootDevelopment stage for base shootDOUBLE10.010000.00.5
inputiDoSowtrue if sowing dayBOOLEAN1--false
inputiTSumBaseAntDaily effective temperature before anthesisDOUBLE°C0.010000.0-
inputiTSumBaseMatDaily effective temperature after anthesisDOUBLE°C0.010000.0-
inputiTSumBaseShootDaily effective temperature after shooting - if givenDOUBLE°C0.010000.0-
statesPhotoresponseArrayPhoto response array as function of daylength in minutesDOUBLEARRAY10.020.0-
statesVernalDaysactual Vernal DaysDOUBLE10.0400.00.0
outDayLengthDay Length in minutesINTmin014410
outPhotoresponseFactordaily photoresponse factorDOUBLE10.01.00.0
outRTSUMDaily effective temperature used to calculate the temperature sum and development stage at a given dayDOUBLE°C0.050.0-
outVernalisationFactordaily vernalisation factorDOUBLE10.01.00.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

    Constructors
    Constructor
    Description
    Empty 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 Type
    Method
    Description
    protected net.simplace.sim.model.FWSimComponent
    clone(net.simplace.sim.util.FWSimVarMap aVarMap)
     
    HashMap<String,net.simplace.sim.util.FWSimVariable<?>>
    Create the FWSimVariables as interface for this SimComponent
    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.
    protected void
     
    static Double[]
    Stores the photo response factors for a duration in minutes in an array
    protected void
     

    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • 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

      public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> createVariables()
      Create the FWSimVariables as interface for this SimComponent
      Specified by:
      createVariables in interface net.simplace.sim.util.FWSimFieldContainer
      Specified by:
      createVariables in class net.simplace.sim.model.FWSimComponent
      See Also:
      • FWSimComponent.createVariables()
    • init

      protected void init()
      Specified by:
      init in class net.simplace.sim.model.FWSimComponent
      See Also:
      • FWSimComponent.init()
    • process

      protected void process()
      Specified by:
      process in class net.simplace.sim.model.FWSimComponent
    • clone

      protected net.simplace.sim.model.FWSimComponent clone(net.simplace.sim.util.FWSimVarMap aVarMap)
      Specified by:
      clone in class net.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 class net.simplace.sim.model.FWSimComponent
      See Also:
      • net.simplace.sim.util.FWSimFieldContainer#fillTestVariables(int aParamIndex, TEST_STATE aDefineOrCheck)
    • PhotoResponseToArray

      public static Double[] PhotoResponseToArray(InterpolationTable TAB)
      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