Growing degree days (GDD) are a measure of heat accumulation used topredict plant and animal development rates. It can be, however,calculated using several approaches. Thepollen packageallows for three different versions of the GDD calculations. The goal ofthis vignette is to describe and show examples of calculating GDD usingdifferent methods.
Let’s start with attaching a set of package used in thisvignette:
Next, we will use thegdd_data dataset - a data framewith three columns:
day - this could be a date in real datatmax - this value would represent a maximum temperaturein real datatmin - this value would represent a minimum temperaturein real datadata("gdd_data",package ="pollen")head(gdd_data)#> day tmax tmin#> 1 1 2 2#> 2 2 2 2#> 3 3 2 2#> 4 4 2 2#> 5 5 2 2#> 6 6 2 2We can vizualize thegdd_data dataset using theggplot2 package:
df_plot1<-pivot_longer(gdd_data, tmax:tmin)p1<-ggplot(df_plot1)+geom_line(aes(day, value,color = name))p1Thepollen package allows for calculations ofgrowing degree days (GDD) using thegdd() function. Thisfunction accepts up to five arguments:
tmax - daily maximum temperaturetmin - daily minimum temperaturetbase - base temperaturetbase_max - maximum base temperaturetype - type of the GDD calculations. Either “B”, “C”,or “D”. The default is “C”.The last argument is inspired by the article by Baskerville and Emin(1969) (see Figure 1 in the mentioned paper).
"B" - The heat units are calculated based on thedifference between the mean daily temperature and the threshold(tbase). In the case when the value oftmin islower thantbase, then it is replaced bytbase"C" - same as type"B" and when thevalue oftmax is larger thantbase_max, thenit is replaced bytbase_max"D"- same as type"B" and when thevalue oftmax is larger thantbase_max, thenno heat units are addedgdd_data$type_b<-gdd(tmax = gdd_data$tmax,tmin = gdd_data$tmin,tbase =5,type ="B")gdd_data$type_c<-gdd(tmax = gdd_data$tmax,tmin = gdd_data$tmin,tbase =5,tbase_max =20,type ="C")gdd_data$type_d<-gdd(tmax = gdd_data$tmax,tmin = gdd_data$tmin,tbase =5,tbase_max =20,type ="D")head(gdd_data)#> day tmax tmin type_b type_c type_d#> 1 1 2 2 0 0 0#> 2 2 2 2 0 0 0#> 3 3 2 2 0 0 0#> 4 4 2 2 0 0 0#> 5 5 2 2 0 0 0#> 6 6 2 2 0 0 0Finally, let’s compare these three types:
df_plot2<-pivot_longer(gdd_data, type_b:type_d)p2<-ggplot(df_plot2)+geom_line(aes(day, value,color = name))p2The above figure clearly shows that the selection of the calculationmethod (type) can make a large difference in the outputvalues. Therefore, it is crucial to select thetype andother parameters (tbase andtbase_max) thatare appropriate for the studied phase in the plant or animaldevelopment.