This a heuristic tool in phenology that measures heat accumulation and is used to predict plant and animal development rates. Growing degree-days are calculated by taking the integral of warmth above a base temperature.

GDD(object, ..., tbase = 10)

# S3 method for default
GDD(object, tmin, ..., tbase = 10)

# S3 method for data.frame
GDD(object, day.one, ..., tbase = 10)

# S3 method for array
GDD(object, day.one, ..., tbase = 10)

# S3 method for sf
GDD(object, day.one, ..., tbase = 10, as.sf = TRUE)

Arguments

object

a numeric vector with the maximum temperature, or a data.frame with geographical coordinates (lonlat), or an object of class sf with geometry 'POINT' or 'POLYGON', or an array with two dimensions containing the maximum and minimum temperature, in that order. See details

...

additional arguments passed to methods. See details

tbase

an integer for the minimum temperature for growth

tmin

a numeric vector with the minimum temperature

day.one

a vector of class Date or any other object that can be coerced to Date (e.g. integer, character YYYY-MM-DD) for the starting day to capture the climate data

as.sf

logical, to return an object of class 'sf'

Value

The number of days to reach the accumulated degree.days or the daily degree-days as defined with the argument return.as

Details

Additional arguments:

equation character to specify the equation to be used, one of "default", "a", "b" or "c". See Equations below

tbase_max optional, the maximum tbase temperature, required if equation = "c"

return.as character (one of, the default, "acc" or "daily", "ndays") to select if the function returns the accumulated gdd, or the daily values of gdd across the series, or the number of days required to reach a certain number of degree.days

degree.days an integer for the accumulated degree-days required by the organism. Optional if return.as = "daily" or return.as = "acc"

last.day: an object (optional to span) of class Date or any other object that can be coerced to Date (e.g. integer, character YYYY-MM-DD) for the last day of the time series. For data.frame, array and sf methods

span: an integer (optional to last.day) or a vector with integers (optional if last.day is given) for the length of the time series to be captured. For data.frame, array and sf methods

S3 Methods:

The array method assumes that object contains climate data available in your R section; this requires an array with two dimensions, 1st dimension contains the day temperature and 2nd dimension the night temperature, see help("temp_dat", package = "climatrends") for an example on input structure.

The data.frame and sf methods assumes that the climate data will e fetched from a remote (cloud) source that be adjusted using the argument data.from

Equations:

"default": GDD = ((tmax + tmin) / 2) - tbase

"a": adjust tmean = tbase if tmeam < tbase

"b": adjust tmin = tbase if tmin < tbase, adjust tmax = tbase if tmax < tbase

"c": adjust tmin = tbase if tmin < tbase, adjust tmax = tbase_max if tmax < tbase_max

References

Prentice I. C., et al. (1992) Journal of Biogeography, 19(2), 117.

Baskerville, G., & Emin, P. (1969). Ecology, 50(3), 514-517. doi:10.2307/1933912

See also

Other temperature functions: ETo(), crop_sensitive(), temperature()

Other GDD functions: late_frost()

Examples

data("innlandet", package = "climatrends")

# use the default equation
GDD(innlandet$tmax, innlandet$tmin, tbase = 2)
#>         gdd
#>       <dbl>
#> 1:     0.00
#> 2:     0.00
#> 3:     0.00
#> 4:     0.00
#> 5:     0.00
#> ---        
#> 178: 130.98
#> 179: 135.32
#> 180: 141.84
#> 181: 150.12
#> 182: 152.30

# set the equation "b", which is a better option for this case
# tmin = tbase if tmin < tbase 
# tmax = tbase if tmax < tbase
GDD(innlandet$tmax, innlandet$tmin, tbase = 2, equation = "b")
#>         gdd
#>       <dbl>
#> 1:     0.00
#> 2:     0.00
#> 3:     0.00
#> 4:     0.00
#> 5:     0.00
#> ---        
#> 178: 143.04
#> 179: 147.38
#> 180: 153.89
#> 181: 162.18
#> 182: 164.89


#####################################################

# return as the number of days required to reach a certain accumulated GDD
# use equation "c", which adjusts tmax base on a tbase_max
data("temp_dat", package = "climatrends")

GDD(temp_dat, 
    day.one = "2013-10-27", 
    degree.days = 90, 
    return.as = "ndays", 
    tbase_max = 32,
    equation = "c")
#>       gdd
#>     <int>
#> 1:      8
#> 2:      8
#> 3:      8
#> 4:     10
#> 5:      8
#> 6:     10
#> 7:      8
#> 8:      8
#> 9:      8
#> 10:     9