TrendRaster {greenbrown}  R Documentation 
This function computes temporal trend and trend breakpoints on multitemporal raster data. To calculate trends on the values of each grid cell the function Trend
is used. Before using these methods on satellite time series (especially NDVI time series) the descriptions and recommendations in Forkel et al. (2013) should be considered.
TrendRaster(r, start = c(1982, 1), freq = 12, method = c("AAT", "STM", "SeasonalAdjusted"), mosum.pval = 0.05, h = 0.15, breaks = 0, funSeasonalCycle = MeanSeasonalCycle, funAnnual = mean, ...)
r 
multilayer raster object of class 
start 
beginning of the time series (i.e. the time of the first observation). The default is c(1982, 1), i.e. January 1982 which is the usual start date to compute trends on longterm series of satellite observations of NDVI. See 
freq 
The frequency of observations. The default is 12 for monthly observations. Use 24 for bimonthly observations, 365 for daily observations or 1 for annual observations. See 
method 
method to be used for trend calculation with the following options:

mosum.pval 
Maximum pvalue for the OLSMOSUM test in order to search for breakpoints. If p = 0.05, breakpoints will be only searched in the time series trend component if the OLSMOSUM test indicates a significant structural change in the time series. If p = 1 breakpoints will be always searched regardless if there is a significant structural change in the time series or not. See 
h 
minimal segment size either given as fraction relative to the sample size or as an integer giving the minimal number of observations in each segment. See 
breaks 
maximal number of breaks to be calculated (integer number). By default the maximal number allowed by h is used. See 
funSeasonalCycle 
a function to estimate the seasonal cycle of the time series if

funAnnual 
function to aggregate time series to annual values if 
... 
additional arguments as for 
The maximum number of breakpoints should be specified in this function. If breaks=0
no breakpoints will be computed. If breaks=1
one breakpoint can be detected at maximum per grid cell. In this case the result will be reported for two time series segments (SEG1 before the breakpoint, SEG2 after the breakpoint).
Some of the trend methods are very slow. Applying them on multitemporal raster datasets can take some time. Especially the methods that work on the full temporal resolution time series (STM and SeasonalAdjusted) are slower than the method AAT. Especially if breakpoints are computed the computations take longer. The computation of breakpoints can be suppressed by choosing breaks=0. For large rasters it is recommended to first split the raster dataset in several tiles and to compute the trends on each tile separately. The use of a high performance computing infrastructure it also advantageous.
All methods work with missing observations (for example missing NDVI observation in winter months with snow cover). Missing observation have to be flagged with NA. All time steps have to be included in the RasterBrick for trend analysis. If complete time steps are missing, they need to be included as layers (filled with NA values) in the RasterBrick to form a continuous time series.
The function returns a RasterBrick with different trend and breakpoint statistics. The layers are named:
LengthSEG
length of the time series segment
BP
date of the trend breakpoints
SlopeSEG
slope of the trend in each segment
PvalSEG
pvalue of the trend in each segment
The choosen number of breaks
will define the number of raster layers of the result.
Matthias Forkel <matthias.forkel@geo.tuwien.ac.at> [aut, cre]
Forkel, M., N. Carvalhais, J. Verbesselt, M. Mahecha, C. Neigh and M. Reichstein (2013): Trend Change Detection in NDVI Time Series: Effects of InterAnnual Variability and Methodology.  Remote Sensing 5.
Trend
, TrendClassification
, TrendSegmentsRaster
, NamesTrendRaster
# load a multitemporal raster dataset of Normalized Difference Vegetation Index data(ndvimap) ndvimap plot(ndvimap, 8) # calculate trend: annual aggregation method AATmap < TrendRaster(ndvimap, start=c(1982, 1), freq=12, method="AAT", breaks=1) plot(AATmap) # trend on seasonal adjusted time series based, no breakpoints MACmap < TrendRaster(ndvimap, start=c(1982, 1), freq=12, method="SeasonalAdjusted", breaks=0, funSeasonalCycle=MeanSeasonalCycle) plot(MACmap) # trend based on seasontrend model STMmap < TrendRaster(ndvimap, start=c(1982, 1), freq=12, method="STM", breaks=0) plot(STMmap) # classify the results in greening/browning/no trend MACmap.cl < TrendClassification(MACmap, min.length=(8*12)) STMmap.cl < TrendClassification(STMmap, min.length=(8*12)) par(mfrow=c(1,2)) # set the tiles of the plot plot(MACmap.cl, col=brgr.colors(3), main="Method MAC") plot(STMmap.cl, col=brgr.colors(3), main="Method STM")