net.simplace.client.simulation.lap.lintul.LintulPhenology

LintulPhenology.java calculates the development stage (DevStage) of a crop based on the ratio between accumulated degree days and the a user-defined, crop and cultivar specific temperature sum requirement . In addition, based on the development stage, the date and the day of the year (DOY) when certain phenology events occur (e.g. anthesis, physiological maturity) are determined .

anthesis

The phenological development of the crop starts with the emergence day. This day is either determined by increasing the day of the year (DOY) when sowing occurs by a user-specified number of days. The sowing date (DOY when sowing occurs) is specified in the SimComponent "Management". Crop development between emergence and anthesis is triggered by the accumulated temperature sum (TSUM). TSUM is increased daily by the rate of effective temperature until anthesis (RTEFFAnt), which is an input either from the simComponent WeatherTransformer or from the SimComponent VernalisationAndPhotoresponse (if effective temperature depends on photoperiod and/or vernalisation requirements). The effective temperature in the WeatherTransformer is calculated as the difference between the average daily air temperature (AirTemperatureMean) and the base temperature of the crop before anthesis (BaseTempBeforeAnt as defined in the crop property file). Only days where AirTemperatureMean > BaseTempBeforeAnt are accounted for. The ratio between actual TSUM at a given day and the air temperature sum to anthesis (AirTemperatureSumAnthesis) is added daily to the development stage index (DevStage) as

\[ \begin{eqnarray} DevStage & = & TSUM / AirTemperatureSumAnthesis \end{eqnarray} \]

maturity

Similarly, crop development between anthesis and maturity is triggered by the accumulated temperature sum (TSUM). From anthesis to maturity the daily rate of effective temperature (RTEFFMat) is an input from the SimComponent WeatherTransformer where RTEFFMat is depends on the difference between the average daily air temperature (AirTemperatureMean) and the base temperature of the crop after anthesis (BaseTempBeforeMat as defined in the crop property file). Only days where AirTemperatureMean > BaseTempBeforeMat are accounted for. Again, the ratio between actual TSUM at a given day and the air temperature sum from anthesis to maturity (AirTemperatureSumMaturity) is added daily to the development stage index (DevStage) as

\[ \begin{eqnarray} DevStage & = & 1 + TSUM / AirTemperatureSumAnthesis \end{eqnarray} \]

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
constantcAirTemperatureSumAnthesisTemperature sum after energence when anthesis of plant is reachedDOUBLE°C d0.05000.0650.0
constantcAirTemperatureSumMaturityTemperature sum after emergency when maturity of plant is reachedDOUBLE°C d0.010000.01350.0
constantcAirTemperatureSumMilkripenessTemperature sum when milk ripeness of plant is reachedDOUBLE°C d0.07000.0-
inputcRelativeDayOfEmergenceDays between sowing and emergenceINTd036611
inputiDoHarvesttrue at the day of harvestBOOLEAN1--false
inputiDoSowtrue at the day of sowingBOOLEAN1--false
inputiRTEFFAntDaily effective temperature before anthesisDOUBLE°C0.040.00.0
inputiRTEFFMatDaily effective temperature after anthesisDOUBLE°C0.040.00.0
statesDevStageDevelopment stage of the crop (1.0=anthesis, 2.0=physiological maturityDOUBLE10.0-0.0
statesTSUMTemperature sum as accumulated effective temperature after emergenceDOUBLE°C d0.010000.00.0
raterDevStageRateincrement of the dev stageDOUBLEd-10.0-0.0
outAnthesisDOYDOY of AnthesisINT1--0
outAnthesisDateDate of AnthesisDATE1---
outCropCycleCountNumber of growth periods, starting with 0 and incremented on harvest. Used for crop rotation.INT101000
outEmergenceDOYDOY of EmergenceINT1--0
outEmergenceDateDate of EmergenceDATE1---
outIsAnthesistrue at the anthesis dateBOOLEAN1--false
outIsEmergencetrue at the emergence dateBOOLEAN1--false
outIsMaturitytrue at the maturity dateBOOLEAN1--false
outIsMilkripenesstrue at the milkripeness dateBOOLEAN1--false
outIsPhenologyEventtrue if either sowing/emergence/anthesis/maturity date occuredBOOLEAN1--false
outIsSowingtrue at the sowing dateBOOLEAN1--false
outMaturityDOYDOY of MaturityINT1--0
outMaturityDateDate of MaturityDATE1---
outMilkripenessDOYDOY of MilkripenessINT1--0
outMilkripenessDateDate of MilkripenessDATE1---
outRTEFFDaily effective temperature used to calculate the temperature sum and development stage at a given dayDOUBLE°C0.040.00.0
outSowingDOYDOY of SowingINT1--0
outSowingDateDate of SowingDATE1---



public class LintulPhenology extends
net.simplace.simulation.model.FWSimComponent {
// Public Constructors
public LintulPhenology();


// Public Instance Methods
public HashMap createVariables(); // Defines
net.simplace.simulation.model.FWSimComponent


create the FWSimVariables as interface for this SimComponent

// Protected Instance Methods
protected void init(); // Defines
net.simplace.simulation.model.FWSimComponent


initializes the fields by getting input and output FWSimVariables from VarMap
protected void process(); // Defines
net.simplace.simulation.model.FWSimComponent


process the algorithm and write the results back to VarMap
protected FWSimComponent clone(FWSimVarMap aVarMap);
// Defines net.simplace.simulation.model.FWSimComponent


creates a clone from this SimComponent for use in other threads


}



Hierarchy: java.lang.Object - net.simplace.simulation.model.FWSimComponent (net.simplace.simulation.util.FWSimFieldContainer) - LintulPhenology