Calculate the instantaneous rate of green-up.

calc_irg(DT, id = "id", year = "yr", scaled = TRUE)

Arguments

DT

data.table of model parameters (output from model_params).

id

id column. default is 'id'. See details.

year

year column name. default is 'yr'.

scaled

boolean indicating if irg should be rescaled between 0-1 within id and year. If TRUE, provide id and year. Default is TRUE.

Value

Extended data.table 'irg' column of instantaneous rate of green-up calculated for each day of the year, for each individual and year.

Details

The DT argument expects a data.table of model estimated parameters for double logistic function of NDVI for each year and individual. Since it is the rate of green-up, model parameters required are only xmidS and scalS.

The scaled argument is used to optionally rescale the IRG result to 0-1, for each year and individual.

The id argument is used to split between sampling units. This may be a point id, polygon id, pixel id, etc. depending on your analysis. This should match the id provided to filtering functions. The formula used is described in Bischoff et al. (2012):

$$IRG = (exp((t + xmidS) / scalS)) / (2 * scalS * (exp(1) ^ ((t + xmidS) / scalS)) + (scalS * (exp(1) ^ ((2 * t) / scalS))) + (scalS * exp(1) ^ ((2 * xmidS) / scalS)))$$

(See the "Getting started with irg vignette" for a better formatted formula.)

See also

Other irg: irg

Examples

# Load data.table library(data.table) # Read in example data ndvi <- fread(system.file("extdata", "ndvi.csv", package = "irg")) # Filter and scale NDVI time series filter_ndvi(ndvi)
#> id yr DayOfYear NDVI SummaryQA filtered winter rolled top #> 1: 7652 2002 3 -1367 3 4099 4099 4099 7443.400 #> 2: 7035 2002 14 -304 3 5382 5382 5382 7462.900 #> 3: 4368 2002 1 374 2 3702 3702 3702 6709.800 #> 4: 5196 2002 15 635 3 5180 5180 5180 7288.100 #> 5: 12377 2002 9 685 2 4621 4621 4621 7645.100 #> --- #> 2526: 13322 2012 356 1257 2 4708 4708 4708 7776.250 #> 2527: 9537 2012 356 144 2 4536 4536 4536 7155.475 #> 2528: 18592 2012 362 1031 2 4011 4011 4011 7184.300 #> 2529: 2163 2012 356 2172 2 5022 5022 5022 7566.600 #> 2530: 2941 2012 356 -197 2 2839 2839 2839 5491.750
scale_doy(ndvi)
#> id yr DayOfYear NDVI SummaryQA filtered winter rolled top #> 1: 7652 2002 3 -1367 3 4099 4099 4099 7443.400 #> 2: 7035 2002 14 -304 3 5382 5382 5382 7462.900 #> 3: 4368 2002 1 374 2 3702 3702 3702 6709.800 #> 4: 5196 2002 15 635 3 5180 5180 5180 7288.100 #> 5: 12377 2002 9 685 2 4621 4621 4621 7645.100 #> --- #> 2526: 13322 2012 356 1257 2 4708 4708 4708 7776.250 #> 2527: 9537 2012 356 144 2 4536 4536 4536 7155.475 #> 2528: 18592 2012 362 1031 2 4011 4011 4011 7184.300 #> 2529: 2163 2012 356 2172 2 5022 5022 5022 7566.600 #> 2530: 2941 2012 356 -197 2 2839 2839 2839 5491.750 #> t #> 1: 0.005479452 #> 2: 0.035616438 #> 3: 0.000000000 #> 4: 0.038356164 #> 5: 0.021917808 #> --- #> 2526: 0.972602740 #> 2527: 0.972602740 #> 2528: 0.989041096 #> 2529: 0.972602740 #> 2530: 0.972602740
#> id yr DayOfYear NDVI SummaryQA filtered winter rolled top #> 1: 7652 2002 3 -1367 3 4099 4099 4099 7443.400 #> 2: 7035 2002 14 -304 3 5382 5382 5382 7462.900 #> 3: 4368 2002 1 374 2 3702 3702 3702 6709.800 #> 4: 5196 2002 15 635 3 5180 5180 5180 7288.100 #> 5: 12377 2002 9 685 2 4621 4621 4621 7645.100 #> --- #> 2526: 13322 2012 356 1257 2 4708 4708 4708 7776.250 #> 2527: 9537 2012 356 144 2 4536 4536 4536 7155.475 #> 2528: 18592 2012 362 1031 2 4011 4011 4011 7184.300 #> 2529: 2163 2012 356 2172 2 5022 5022 5022 7566.600 #> 2530: 2941 2012 356 -197 2 2839 2839 2839 5491.750 #> t scaled #> 1: 0.005479452 0 #> 2: 0.035616438 0 #> 3: 0.000000000 0 #> 4: 0.038356164 0 #> 5: 0.021917808 0 #> --- #> 2526: 0.972602740 0 #> 2527: 0.972602740 0 #> 2528: 0.989041096 0 #> 2529: 0.972602740 0 #> 2530: 0.972602740 0
# Guess starting parameters model_start(ndvi)
#> id yr DayOfYear NDVI SummaryQA filtered winter rolled top #> 1: 7035 2003 NA NA NA NA 5382 NA 7462.900 #> 2: 7035 2009 NA NA NA NA 5382 NA 7462.900 #> 3: 7035 2011 NA NA NA NA 5382 NA 7462.900 #> 4: 7035 2011 NA NA NA NA 5382 NA 7462.900 #> 5: 5196 2002 61 375 2 NA 5180 NA 7288.100 #> --- #> 2526: 18592 2007 257 7245 0 7245 4011 7245 7184.300 #> 2527: 9537 2012 257 7292 0 7292 4536 7292 7155.475 #> 2528: 12377 2012 262 7773 1 7773 4621 7905 7645.100 #> 2529: 9537 2009 271 6508 0 6508 4536 7256 7155.475 #> 2530: 18592 2009 271 6360 0 6360 4011 7255 7184.300 #> t scaled xmidS_start xmidA_start #> 1: NA NA 0.4767123 0.7150685 #> 2: NA NA 0.4575342 NA #> 3: NA NA 0.4986301 0.7780822 #> 4: NA NA 0.4986301 0.7780822 #> 5: 0.1643836 NA 0.4328767 0.8164384 #> --- #> 2526: 0.7013699 1 0.4493151 0.7753425 #> 2527: 0.7013699 1 0.4000000 0.8027397 #> 2528: 0.7150685 1 0.3342466 NA #> 2529: 0.7397260 1 0.4630137 NA #> 2530: 0.7397260 1 0.4575342 NA
# Double logistic model parameters given starting parameters for nls mods <- model_params( ndvi, return = 'models', xmidS = 'xmidS_start', xmidA = 'xmidA_start', scalS = 0.05, scalA = 0.01 ) # Fit double logistic curve to NDVI time series fit <- model_ndvi(mods, observed = FALSE) # Calculate IRG for each day of the year calc_irg(fit)
#> Warning: NAs found in DT, IRG will be set to NA.
#> id yr xmidS xmidA scalS scalA t #> 1: 7035 2003 0.4964268 0.7941240 0.05571006 0.02009981 0.000000000 #> 2: 7035 2003 0.4964268 0.7941240 0.05571006 0.02009981 0.002739726 #> 3: 7035 2003 0.4964268 0.7941240 0.05571006 0.02009981 0.005479452 #> 4: 7035 2003 0.4964268 0.7941240 0.05571006 0.02009981 0.008219178 #> 5: 7035 2003 0.4964268 0.7941240 0.05571006 0.02009981 0.010958904 #> --- #> 40256: 9537 2011 0.4726820 0.7933188 0.03355896 0.02187694 0.989041096 #> 40257: 9537 2011 0.4726820 0.7933188 0.03355896 0.02187694 0.991780822 #> 40258: 9537 2011 0.4726820 0.7933188 0.03355896 0.02187694 0.994520548 #> 40259: 9537 2011 0.4726820 0.7933188 0.03355896 0.02187694 0.997260274 #> 40260: 9537 2011 0.4726820 0.7933188 0.03355896 0.02187694 1.000000000 #> fitted irg #> 1: 1.348922e-04 6.496844e-05 #> 2: 1.416909e-04 9.216899e-05 #> 3: 1.488321e-04 1.207399e-04 #> 4: 1.563332e-04 1.507500e-04 #> 5: 1.642123e-04 1.822720e-04 #> --- #> 40256: 1.299656e-04 2.316706e-07 #> 40257: 1.146611e-04 1.664797e-07 #> 40258: 1.011583e-04 1.063996e-07 #> 40259: 8.924512e-05 5.102939e-08 #> 40260: 7.873459e-05 0.000000e+00