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)
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
an integer for the minimum temperature for growth
a numeric vector with the minimum temperature
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
logical, to return an object of class 'sf'
The number of days to reach the accumulated degree.days or the daily degree-days as defined with the argument return.as
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
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
Other temperature functions:
ETo()
,
crop_sensitive()
,
temperature()
Other GDD functions:
late_frost()
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