ADP2: Function for Implementing the Accumulated Developmental...

View source: R/ADP2.R

ADP2R Documentation

Function for Implementing the Accumulated Developmental Progress Method Using Minimum and Maximum Daily Temperatures

Description

Estimates the starting date (S, in day-of-year) and the parameters of a developmental rate model in the accumulated developmental progress (ADP) method using minimum and maximum daily air temperatures (Wagner et al., 1984; Shi et al., 2017a, b).

Usage

ADP2( S.arr, expr, ini.val, Year1, Time, Year2, DOY, Tmin, Tmax, 
      DOY.ul = 120, fig.opt = TRUE, control = list(), verbose = TRUE )

Arguments

S.arr

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

expr

a user-defined model that is used in the accumulated developmental progress (ADP) method

ini.val

a vector or a list that saves the initial values of the parameters in expr

Year1

the vector of the years in which a particular phenological event was recorded

Time

the vector of the occurrence times (in day-of-year) of a particular phenological event across many years

Year2

the vector of the years recording the climate data corresponding to the occurrence times

DOY

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

Tmin

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

Tmax

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

DOY.ul

the upper limit of DOY used to predict the occurrence time

fig.opt

an optional argument to draw the figures associated with the temperature-dependent developmental rate curve, the mean daily temperatures versus years, and a comparison between the predicted and observed occurrence times

control

the list of control parameters for using the optim function in the stats package

verbose

an optional argument allowing users to suppress the printing of computation progress

Details

It is better not to set too many candidate starting dates, as doing so will be time-consuming. If expr is selected as Arrhenius' equation, S.arr can be selected as the S obtained from the output of the ADTS2 function. Here, expr can be other nonlinear temperature-dependent developmental rate functions (see Shi et al. [2017b] for details). Further, expr can be any an arbitrary user-defined temperature-dependent developmental rate function, e.g., a function named myfun, but it needs to take the form of myfun <- function(P, x){...}, where P is the vector of the model parameter(s), and x is the vector of the predictor variable, i.e., the temperature variable.

\qquadThe function does not require that Year1 is the same as unique(Year2), and the intersection of the two vectors of years will be kept. The unused years that have phenological records but lack climate data will be showed in unused.years in the returned list.

\qquadThe numerical value of DOY.ul should be greater than or equal to the maximum Time.

\qquad Let r represent the temperature-dependent developmental rate, i.e., the reciprocal of the developmental duration required for completing a particular phenological event, at a constant temperature. In the accumulated developmental progress (ADP) method, when the annual accumulated developmental progress (AADP) reaches 100%, the phenological event is predicted to occurr for each year. Let \mathrm{AADP}_{i} denote the AADP of the ith year, which equals

\mathrm{AADP}_{i} = \sum_{j=S}^{E_{i}}\sum_{w=1}^{24}\frac{r_{ijw}\left(\mathrm{\mathbf{P}}; T_{ijw}\right)}{24},

where S represents the starting date (in day-of-year), E_{i} represents the ending date (in day-of-year), i.e., the occurrence time of a pariticular phenological event in the ith year, \mathrm{\mathbf{P}} is the vector of the model parameters in expr, T_{ijw} represents the estimated mean hourly temperature of the wth hour of the jth day of the ith year (in {}^{\circ}C or K), and r_{ijw} represents the developmental rate (per hour) at T_{ijw}, which is transferred to r_{ij} (per day) by dividing 24. This packages takes the method proposed by Zohner et al. (2020) to estimate the mean hourly temperature for each of 24 hours:

T_{w} = \frac{T_{\mathrm{max}} - T_{\mathrm{min}}}{2}\, \mathrm{sin}\left(\frac{w\pi}{12}- \frac{\pi}{2}\right)+\frac{T_{\mathrm{max}} + T_{\mathrm{min}}}{2},

where w represents the wth hour of a day, and T_{\mathrm{min}} and T_{\mathrm{max}} represent the minimum and maximum temperatures of the day, respectively.

\qquadIn theory, \mathrm{AADP}_{i} = 100\%, i.e., the AADP values of different years are a constant 100%. However, in practice, there is a certain deviation of \mathrm{AADP}_{i} from 100%. The following approach is used to determine the predicted occurrence time. When \sum_{j=S}^{F}\sum_{w=1}^{24}r_{ijw}/24 = 100\% (where F \geq S), it follows that F is the predicted occurrence time; when \sum_{j=S}^{F}\sum_{w=1}^{24}r_{ijw}/24 < 100\% and \sum_{j=S}^{F+1}\sum_{w=1}^{24}r_{ijw}/24 > 100\%, the trapezoid method (Ring and Harris, 1983) is used to determine the predicted occurrence time. Let \hat{E}_{i} represent the predicted occurrence time of the ith year. Assume that there are n-year phenological records. When the starting date S and the temperature-dependent developmental rate model are known, the model parameters can be estimated using the Nelder-Mead optiminization method (Nelder and Mead, 1965) to minimize the root-mean-square error (RMSE) between the observed and predicted occurrence times, i.e.,

\mathrm{\mathbf{\hat{P}}} = \mathrm{arg}\,\mathop{\mathrm{min}}\limits_{ \mathrm{\mathbf{P}}}\left\{\mathrm{RMSE}\right\} = \mathrm{arg}\,\mathop{\mathrm{min}}\limits_{ \mathrm{\mathbf{P}}}\sqrt{\frac{\sum_{i=1}^{n}\left(E_{i}-\hat{E}_i\right){}^{2}}{n}}.

Because S is not determined, a group of candidate S values (in day-of-year) need to be provided. Assume that there are m candidate S values, i.e., S_{1}, S_{2}, S_{3}, \cdots, S_{m}. For each S_{q} (where q ranges between 1 and m), we can obtain a vector of the estimated model parameters, \mathrm{\mathbf{\hat{P}}}_{q}, by minimizing \mathrm{RMSE}_{q} using the Nelder-Mead optiminization method. Then we finally selected \mathrm{\mathbf{\hat{P}}} associated with \mathrm{min}\left\{\mathrm{RMSE}_{1}, \mathrm{RMSE}_{2}, \mathrm{RMSE}_{3}, \cdots, \mathrm{RMSE}_{m}\right\} as the target parameter vector.

Value

TDDR

the temperature-dependent developmental rate matrix consisting of the year, day-of-year, estimated mean daily temperature (= (Tmin + Tmax)/2) and developmental rate columns

MAT

a matrix consisting of the candidate starting dates and the estimates of candidate model parameters with the corresponding RMSEs

Dev.accum

the calculated annual accumulated developmental progresses in different years

Year

The overlapping years between Year1 and Year2

Time

The observed occurrence times (day-of-year) in the overlapping years between Year1 and Year2

Time.pred

the predicted occurrence times in different years

S

the determined starting date (day-of-year)

par

the estimates of model parameters

RMSE

the RMSE (in days) between the observed and predicted occurrence times

unused.years

the years that have phenological records but lack climate data

Note

The entire minimum and maximum daily temperature data set for the spring of each year should be provided. In TDDR, the first column of Year saves the years, the second column of DOY saves the day-of-year values, the third column of Temperature saves the estimated mean daily air temperatures (= (Tmin + Tmax)/2) from the starting date to the occurrence times, and the fourth column of Rate saves the calculated developmental rates corresponding to the estimated mean daily temperatures.

Author(s)

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.

References

Nelder, J.A., Mead, R. (1965) A simplex method for function minimization. Computer Journal 7, 308-313. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1093/comjnl/7.4.308")}

Ring, D.R., Harris, M.K. (1983) Predicting pecan nut casebearer (Lepidoptera: Pyralidae) activity at College Station, Texas. Environmental Entomology 12, 482-486. \Sexpr[results=rd]{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. \Sexpr[results=rd]{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. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1093/aesa/sax063")}

Wagner, T.L., Wu, H.-I., Sharpe, P.J.H., Shcoolfield, R.M., Coulson, R.N. (1984) Modelling insect development rates: a literature review and application of a biophysical model. Annals of the Entomological Society of America 77, 208-225. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1093/aesa/77.2.208")}

Zohner, C.M., Mo, L., Sebald, V., Renner, S.S. (2020) Leaf-out in northern ecotypes of wide-ranging trees requires less spring warming, enhancing the risk of spring frost damage at cold limits. Global Ecology and Biogeography 29, 1056-1072. \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1111/geb.13088")}

See Also

predADP2

Examples


data(apricotFFD)
data(BJDAT)
X1 <- apricotFFD
X2 <- BJDAT

Year1.val  <- X1$Year
Time.val   <- X1$Time
Year2.val  <- X2$Year
DOY.val    <- X2$DOY
Tmin.val   <- X2$MinDT
Tmax.val   <- X2$MaxDT
DOY.ul.val <- 120
S.arr0     <- 46

#### Defines a re-parameterized Arrhenius' equation ########################### 
Arrhenius.eqn <- function(P, x){
  B  <- P[1]
  Ea <- P[2]
  R  <- 1.987 * 10^(-3)
  x  <- x + 273.15
  10^12*exp(B-Ea/(R*x))
}
##############################################################################

#### Provides the initial values of the parameter of Arrhenius' equation #####
ini.val0 <- list( B = 20, Ea = 14 )
##############################################################################

# The usage is similar to that of the "ADP" function. There is only a need to 
#   replace "Temp = Temp.val" with "Tmin = Tmin.val, Tmax = Tmax.val" when using 
#   the "ADP2" function.

spphpr documentation built on April 11, 2025, 6:11 p.m.

Related to ADP2 in spphpr...