Prediction of phenological stages using a sequential model
Prediction of phenological stages using a sequential model
The function predicts phenological phases for a climate series from daily chill and heat requirements and daily chill and forcing heat data. The sequential model used in the function considers that chilling and heat have independent effects. It consists of an accumulation of chill up to the plant requirement, followed by heat up to forcing requirement, with no overlap between both phases. The function is independent of the method used to calculate chill and forcing heat, so that chill can be supplied as chill hours, chill units or chill portions (recommended, particularly for warm climates or in climate change studies), forcing heat accumulation can be supplied either as GDD or GDH. The function allows predicting several stages (or the same for different cultivars), by supplying a dataframe in which each row contains chill and heat requirements for a phenological stage.
phenology_sequential(GDH_day, Reqs, Start_chill)
Arguments
GDH_day: a dataframe with daily chilling and forcing accumulation. It must contain the columns Year, Month, Day, DOY, Chill, GD.
Reqs: a dataframe in which each row contains the chilling and forcing heat requirements of one phenological stage. It must contain the columns Creq (for chilling) and Freq (for forcing heat).
Start_chill: parameter indicating the day of the year when chill accumulation is supposed to start.
Returns
dataframe with the predicted dates of chilling requirement fulfillment and date of occurrence of each phenological stage defined in Reqs. Columns are Creq and Freq (chilling and forcing heat requirements for the phenological stage), Season, Creq_Year and Creq_DOY (year and day of the year in which chill requirements are fulfilled), Freq_Year and Freq_DOY (year and day of the year of occurrence the phenological stage).
Examples
data(Tudela_DW)data(Bigtop_reqs)library(magrittr)library(dplyr)library(lubridate)# Select the first two seasons in Tudela_DW example datasetTudela_Sel <- Tudela_DW %>% filter (Tudela_DW$Year<=2002)# Generate hourly temperatures from the example datasetTudela_HT <- hourly_temps(Tudela_Sel,42.13132)# Calculate chill as chill portions, starting on DOY 305Chill <- chill_portions(Tudela_HT,305)# Calculate forcing heat as growing degree hours (GDH) with the linear model,# using base temperature 4.7 C and no upper thresholdsGDH <- GDH_linear(Tudela_HT,4.7,999,999)# Combine Chill and GDH values in a dataframe with a format compatible with# the function phenology_sequentialTudela_CH <- merge(Chill,GDH)%>% select(Date, Year, Month, Day, DOY, Chill,GDH)%>% rename(GD=GDH)# Obtain the predicted dates using the example dataset with requirementsPhenology_BT <- phenology_sequential(Tudela_CH, Bigtop_reqs,305)