ybfastmonitorNorm: Detects forest cover disturbances as structural change in the...

Description Usage Arguments Details Value Author(s) References See Also Examples

Description

This function detects forest cover disturbances as structure change at sub-annual scales in the time series of satellite images. The function is a wrapper around bfastmonitor function, but this implementation allows for spatial normalisation of the time series to reduce seasonality before apply bfastmonitor in sequential manner (see Hamunyela et al., 2016). Spatial normalisation is performed within this function.The function is intended for near real-time deforestation monitoring using satellite image time series. NOTE: This function is meant to be called within the rasterEngine function. See the usage example below.

Usage

1
2
3
4
ybfastmonitorNorm(inraster, myear = myear, plotT = F, history = c("all"),
  my_dates = my_dates, spatiaNormPercentile,
  minumum_observations = minumum_observations, magThreshold = magThreshold,
  type = type, spatialNormalise = spatialNormalise)

Arguments

inraster

Input raster stack. Note that this input is literally the a local space-time data cube around the pixel being processes, whose dimensions are defined by the user.

myear

The start datetime for the minotoring period. This parameter has to be defined either a decimal year (e.g. 2015.356) if the start of the monitoring period is not at the begining of the year or as a integer year (e.g. 2015) if the monitoring period start at the begining of the year

plotT

Logical. If TRUE, the time series for each pixel would be plotted during the monitoring.

history

Specification of the start of the stable history period.See bfastmonitor function. Here, the default is "all", which means all observations in the history period would be used for stable period.

my_dates

A vector containing the acquisition date for each image/layer in the image stack.

spatiaNormPercentile

The upper percentile ( e.g. 95 percentile ) for determining the value to use to spatially normalise the values in the local data cube. Spatial normalisation is done to reduce seasonal variation in the data cube and also to reduce inter-sensor differences in the time series (data cube) when using multi-sensor time series.

minumum_observations

The minimum number of valid observations that must be in the pixel time series for such pixel to be analysed for forest cover disturbances. Set to 0 if there is no restriction on the minimum observations.

magThreshold

Magnitude of change threshold for accepting or rejecting the detected change is forest cover distrubance. It can only be a negative value. Set to 0 if each negative change detected must be accepted as true forest cover change.

type

Character specifying the type of monitoring process e.g. "OLS-MOSUM" or "OLS-CUSUM". See bfastmonitor function for more details.

Details

To be completed.

Value

Returns a vector containing (1) the timing of a forest cover disturbance (the datetime of the image in which the disturbance is detected), (2) and the magnitude of change (the difference between the predicted and observed value)

Author(s)

Eliakim Hamunyela

References

1. Hamunyela, E., Verbesselt, J., Herold, M. (2016) Using spatial context to improve early detection of deforestationfrom Landsat time series. Remote Sensing of Environment,172, 126–138. http://dx.doi.org/10.1016/j.rse.2015.11.006

2. Verbesselt J, Zeileis A, Herold M (2012). Near real-time disturbance detection using satellite image time series. Remote Sensing Of Environment, 123, 98–108. http://dx.doi.org/10.1016/j.rse.2012.02.022

See Also

bfastmonitor

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
## Not run: 

#create a raster stack
ra <- raster(ncols=360, nrows=180)
ra[] <- rnorm(ncell(ra))
for (i in 1: 86){
ro <- raster(ncols=360, nrows=180)
ro[] <- rnorm(ncell(ro))
ra <- stack(ra, ro)
}
 #generate fake  date stamps for layers
imagedate <- decimal_date(seq(as.Date("2010-1-1"), as.Date("2016-12-30"), by = "month"))

#single pixel processing example:
rad <- rasterEngine(inraster=rasterBrick, fun=ybfastmonitorNorm,window_dims=c(15,15),
                   args=list(myear = 2014,,my_dates =imagedate,spatiaNormPercentile =95,plotT = F,history = c("all"), minumum_observations = 5, magThreshold =0,type = "OLS-MOSUM"))

#paralell processing example:
## register the cores
sfQuickInit(cpus=5)
rad <- rasterEngine(inraster=ra, fun=ybfastmonitorNorm,window_dims=c(15,15),
                   args=list(myear = 2014,,my_dates =imagedate,spatiaNormPercentile =95,plotT = F,history = c("all"), minumum_observations = 5, magThreshold =0,type = "OLS-MOSUM"))
writeRaster(rad, filename="test.tif",datatype ="FLT4S", overwrite=TRUE)
# Unregister the cores
sfQuickStop()

## End(Not run)

hamun001/STEF documentation built on May 23, 2019, 8:37 a.m.