Description Usage Arguments Details Value Author(s) References See Also Examples
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.
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)
|
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 |
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 |
To be completed.
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)
Eliakim Hamunyela
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
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)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.