Learn R Programming

spphpr (version 1.1.4)

predADD: Prediction Function of the Accumulated Degree Days Method Using Mean Daily Temperatures

Description

Predicts the occurrence times using the accumulated degree days method based on observed or predicted mean daily air temperatures (Aono, 1993; Shi et al., 2017a, b).

Usage

predADD(S, T0, AADD, Year2, DOY, Temp, DOY.ul = 120)

Value

Year

the years with climate data

Time.pred

the predicted occurrence times (day-of-year) in different years

Arguments

S

the starting date for thermal accumulation (in day-of-year)

T0

the base temperature (in \({}^{\circ}\)C)

AADD

the expected annual accumulated degree days

Year2

the vector of the years recording the climate data for predicting the occurrence times

DOY

the vector of the dates (in day-of-year) for which climate data exist

Temp

the mean daily air temperature data (in \({}^{\circ}\)C) corresponding to DOY

DOY.ul

the upper limit of DOY used to predict the occurrence time

Author

Peijian Shi pjshi@njfu.edu.cn, Zhenghong Chen chenzh64@126.com, Jing Tan jmjwyb@163.com, Brady K. Quinn Brady.Quinn@dfo-mpo.gc.ca.

Details

In the accumulated degree days (ADD) method (Shi et al., 2017a, b), the starting date (\(S\)), the base temperature (\(T_{0}\)), and the annual accumulated degree days (AADD, which is denoted by \(k\)) are assumed to be constants across different years. Let \(k_{i}\) denote the AADD of the \(i\)th year, which equals

$$k_{i} = \sum_{j=S}^{E_{i}}\left(T_{ij}-T_{0}\right),$$

where \(E_{i}\) represents the ending date (in day-of-year), i.e., the occurrence time of a particular phenological event in the \(i\)th year, and \(T_{ij}\) represents the mean daily temperature of the \(j\)th day of the \(i\)th year (in \({}^{\circ}\)C). If \(T_{ij} \le T_{0}\), \(T_{ij} - T_{0}\) is defined to be zero. In theory, \(k_{i} = k\), i.e., the AADD values of different years are a constant. However, in practice, there is a certain deviation of \(k_{i}\) from \(k\) that is estimated by \(\overline{k}\) (i.e., the mean of the \(k_{i}\) values). The following approach is used to determine the predicted occurrence time. When \(\sum_{j=S}^{F}\left(T_{ij}-T_{0}\right) = \overline{k}\) (where \(F \geq S\)), it follows that \(F\) is the predicted occurrence time; when \(\sum_{j=S}^{F}\left(T_{ij}-T_{0}\right) < \overline{k}\) and \(\sum_{j=S}^{F+1}\left(T_{ij}-T_{0}\right) > \overline{k}\), the trapezoid method (Ring and Harris, 1983) is used to determine the predicted occurrence time.

References

Aono, Y. (1993) Climatological studies on blooming of cherry tree (Prunus yedoensis) by means of DTS method. Bulletin of the University of Osaka Prefecture. Ser. B, Agriculture and life sciences 45, 155\(-\)192 (in Japanese with English abstract).

Ring, D.R., Harris, M.K. (1983) Predicting pecan nut casebearer (Lepidoptera: Pyralidae) activity at College Station, Texas. Environmental Entomology 12, 482\(-\)486. tools:::Rd_expr_doi("10.1093/ee/12.2.482")

Shi, P., Chen, Z., Reddy, G.V.P., Hui, C., Huang, J., Xiao, M. (2017a) Timing of cherry tree blooming: Contrasting effects of rising winter low temperatures and early spring temperatures. Agricultural and Forest Meteorology 240\(-\)241, 78\(-\)89. tools:::Rd_expr_doi("10.1016/j.agrformet.2017.04.001")

Shi, P., Fan, M., Reddy, G.V.P. (2017b) Comparison of thermal performance equations in describing temperature-dependent developmental rates of insects: (III) Phenological applications. Annals of the Entomological Society of America 110, 558\(-\)564. tools:::Rd_expr_doi("10.1093/aesa/sax063")

See Also

ADD

Examples

Run this code

data(apricotFFD)
data(BJDAT)
X1 <- apricotFFD
X2 <- BJDAT
Year1.val  <- X1$Year
Time.val   <- X1$Time
Year2.val  <- X2$Year
DOY.val    <- X2$DOY
Temp.val   <- X2$MDT
DOY.ul.val <- 120
S.val      <- 65
T0.val     <- -0.5 
AADD.val   <- 235.5282

res2 <- predADD( S = S.val, T0 = T0.val, AADD = AADD.val, 
                 Year2 = Year2.val, DOY = DOY.val, Temp = Temp.val, 
                 DOY.ul = DOY.ul.val )
res2


ind1  <- res2$Year %in% intersect(res2$Year, Year1.val)
ind2  <- Year1.val %in% intersect(res2$Year, Year1.val)
RMSE1 <- sqrt( sum((Time.val[ind2]-res2$Time.pred[ind1])^2) / length(Time.val[ind2]) ) 
RMSE1 


Run the code above in your browser using DataLab