Klasse Phenology

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.models.lintul5.Phenology
Alle implementierten Schnittstellen:
net.simplace.sim.util.FWSimFieldContainer

public class Phenology extends net.simplace.sim.model.FWSimComponent
Lintul5 - Simple generic model for simulation of crop growth - Phenology part

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).

  1. Irradiation
  2. PotentialEvapoTranspiration
  3. WaterBalance
  4. Phenology
  5. RadiationUseEfficiency
  6. 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.

Changes to vernalisation

Introduced a lower limit for the vernalisation factor (see (O))

References

  • (L5) Joost Wolf, User guide for LINTUL5, Wageningen UR, Wageningen, 2012
  • (L4V) Joost Wolf, User guide for LINTUL4(V), Wageningen UR, Wageningen, 2012
  • (O) Ottman, M.J., Anthony Hunt, L., White, J.W., 2013. Photoperiod and vernalization effect on anthesis date in winter-sown spring wheat regions. Agronomy Journal 105, 1017-1025.
Autor:
G. Krauss
Siehe auch:

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcDTSMTBincrease in temperature sum as dependent on mean daily temperatureDOUBLEARRAY°C d---
constantcDVSIinitial development stage of crop (from 0 to 2)DOUBLE1--0.0
constantcIDEMDay of emergenceINT103660
constantcIDPLDay of plantingINT103660
constantcIDSLdevelopment from emergence to flowering depends on temperature (=0), temperature + day length (=1), temperature + day length + vernalisation (=2)INT1--0
constantcMinimalVernalisationFactorlower threshold for the vernalisation factorDOUBLE10.01.00.0
constantcPHOTTBtable of development rate reduction until flowering by daylengthDOUBLEARRAY1---
constantcPLstart at plantingBOOLEAN1--true
constantcPhotoperiodTableFactorCorrection factor of development rate (y-values) in dependence of day length [cPhotoperiodTableHour] (c.f. PHOTTB)DOUBLEARRAY1-- 0.0 1.0 1.0 1.0
constantcPhotoperiodTableHourDay length (x-values) for correction factor of development [cPhotoperiodTableFactor] (c.f. PHOTTB)DOUBLEARRAYh-- 0.0 8.0 12.0 18.0
constantcTBASEMlower threshold temp. for temperature sum increase before emergenceDOUBLE°C-30.050.00.0
constantcTEFFMXmax. eff. temp. for temperature sum increase before emergenceDOUBLE°C-30.050.030.0
constantcTSUM1temperature sum required for vegetative period (from emergence to flowering)DOUBLE°C d0.07000.01050.0
constantcTSUM2temperature sum required for generative periodDOUBLE°C d0.07000.01000.0
constantcTSUMBranchingtemperature sum from emergence to branching (optional)DOUBLE°C d0.07000.0700.0
constantcTSUMEMrequired temperature sum for crop emergenceDOUBLE°C d0.07000.060.0
constantcTSUMMilkripenesstemperature sum from anthesis to milkripeness (optional)DOUBLE°C d0.07000.0700.0
constantcTsumIncrementTableMeanTempAverage temperature (x-values) for daily increase in temperature [cTsumIncrementTableRate] (c.f. DTSMTB)DOUBLEARRAY°C-- -5.0 0.0 30.0 45.0
constantcTsumIncrementTableRateDaily increase in temperature sum (y-values) as function of av. temperature [cTsumIncrementTableMeanTemp] (c.f. DTSMTB)DOUBLEARRAY°C-- 0.0 0.0 30.0 30.0
constantcVBASEVernalisation base thermal dayDOUBLEd--0.0
constantcVERNRTVernalisation factor dependend by average temperatureDOUBLEARRAY1---
constantcVERSATVernalisation max thermal dayDOUBLEd--0.0
constantcVernalisationDevStagemaximal devstage up to which vernalisation is appliedDOUBLE1--0.3
constantcVernalisationTableMeanTempMean Temperature (x-values) for vernal day rate [cVernalisationTableRate] (c.f. VERNRT)DOUBLEARRAY°C-- 0.0 1.0
constantcVernalisationTableRateVernal day rate (y-values) as function of mean temperature [cVernalisationTableMeanTemp] (c.f. VERNRT)DOUBLEARRAY1-- 1.0 1.0
inputiDDLPPhotoperiodic daylengthDOUBLEh--0.0
inputiDoHarvestharvestingBOOLEAN1--false
inputiDoInitializereinitBOOLEAN1--false
inputiDoSowsowingBOOLEAN1--false
inputiTMAXmaximal air temperature during day (output of routine WEATHR)DOUBLE°C--0.0
inputiTMINminimal air temperature during day (output of routine WEATHR)DOUBLE°C--0.0
statesDVSdevelopment stage of crop (from 0 to 2)DOUBLE10.0-0.0
statesTSULPtemperature sum from sowing/plantingDOUBLE°C d0.0-0.0
statesTSUMtemperature sum from emergenceDOUBLE°C d0.0-0.0
statesTSUMLtemperature sum from emergence inclusive day length effectDOUBLE°C d0.0-0.0
statesVERNvernalisation daysDOUBLEd--0.0
raterDTSULPincrease in temperature sum from planting or sowingDOUBLE°C--0.0
raterDTSUMactual increase in temperature sum from emergence without reduction (RDAYL)DOUBLE°C--0.0
raterDTSUMLactual increase in temperature sum from emergence with reduction for day length (RDAYL)DOUBLE°C--0.0
raterDVRrate of phenological developmentDOUBLEd-1--0.0
raterRVERNRvernal day increase rateDOUBLE1--0.0
outAnthesisDOYDOY of AnthesisINT11366-
outAnthesisDateDate of AnthesisDATE1---
outBranchingDOYDOY of BranchingINT11366-
outBranchingDateDate of BranchingDATE1---
outCropCycleCountPeriod of SowingINT1010000
outEMERGhas emergedBOOLEAN1--false
outEmergenceDOYDOY of EmergenceINT11366-
outEmergenceDateDate of EmergenceDATE1---
outFLOWhas floweredBOOLEAN1--false
outHasBranchedhas branchedBOOLEAN1--false
outIDEMERGDay of emergenceINT1--0
outIsAnthesistrue if Anthesis dateBOOLEAN1--false
outIsBranchingtrue if Anthesis dateBOOLEAN1--false
outIsEmergencetrue if Emergence dateBOOLEAN1--false
outIsMaturitytrue if maturity dateBOOLEAN1--false
outIsMilkripenesstrue if milkripeness dateBOOLEAN1--false
outIsPhenologyEventtrue if sowing/emergence/anthesis/maturity dateBOOLEAN1--false
outIsSowingtrue if Sowing dateBOOLEAN1--false
outMATURITYis matureBOOLEAN1--false
outMILKRIPENESSmilkripeness has occuredBOOLEAN1--false
outMaturityDOYDOY of MaturityINT11366-
outMaturityDateDate of MaturityDATE1---
outMilkripenessDOYDOY of MaturityINT11366-
outMilkripenessDateDate of MaturityDATE1---
outSOWis sownBOOLEAN1--false
outSowingDOYDOY of SowingINT11366-
outSowingDateDate of SowingDATE1---
outVernalisationFactorvernalisation factorDOUBLE10.01.00.0
outWithCropcrop is presentBOOLEAN1--false
  • Verschachtelte Klassen - Übersicht

    Von Klasse geerbte verschachtelte Klassen/Schnittstellen net.simplace.sim.model.FWSimComponent

    net.simplace.sim.model.FWSimComponent.TEST_STATE
  • Feldübersicht

    Von Klasse geerbte Felder net.simplace.sim.model.FWSimComponent

    iFieldMap, iFrequence, iInputMap, iJexlRule, iMasterComponentGroup, iName, iOrderNumber, isComponentGroup, iSimComponentElement, iSimModel, iVarMap
  • Konstruktorübersicht

    Konstruktoren
    Konstruktor
    Beschreibung
    Empty constructor used by class.forName()
    Phenology(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)
     
  • Methodenübersicht

    Modifizierer und Typ
    Methode
    Beschreibung
    protected void
     
    protected net.simplace.sim.model.FWSimComponent
    clone(net.simplace.sim.util.FWSimVarMap aVarMap)
    creates a clone from this SimComponent for use in other threads
    HashMap<String,net.simplace.sim.util.FWSimVariable<?>>
     
    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
     
    protected void
     
    protected void
     
    protected void
     
    protected void
     
    protected void
     

    Von Klasse geerbte Methoden 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

    Von Klasse geerbte Methoden java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Konstruktordetails

    • Phenology

      public Phenology(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)
      Parameter:
      aName -
      aFieldMap -
      aInputMap -
      aSimComponentElement -
      aVarMap -
      aOrderNumber -
    • Phenology

      public Phenology()
      Empty constructor used by class.forName()
  • Methodendetails

    • createVariables

      public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> createVariables()
      Angegeben von:
      createVariables in Schnittstelle net.simplace.sim.util.FWSimFieldContainer
      Angegeben von:
      createVariables in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • FWSimComponent.createVariables()
    • init

      protected void init()
      Angegeben von:
      init in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • FWSimComponent.init()
    • initValues

      protected void initValues()
    • initOnSowing

      protected void initOnSowing()
    • initOnFirstCalculationDay

      protected void initOnFirstCalculationDay()
    • resetOnHarvest

      protected void resetOnHarvest()
    • process

      protected void process()
      Angegeben von:
      process in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • 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.
      Angegeben von:
      fillTestVariables in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • Ungültige Referenz
        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
      Angegeben von:
      clone in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)