| smooth.spline.raster | R Documentation |
This function uses the stats::smooth.spline() function to filter a
vegetation index time series of satellite data.
smooth.spline.raster( x, w = NULL, t = NULL, groupYears = TRUE, timeInfo = orgTime(x), df = 6, outDirPath = "./", ... )
x |
|
w |
|
t |
In case of MODIS composite, the corresponding
'composite_day_of_the_year' |
groupYears |
|
timeInfo |
Result from |
df |
|
outDirPath |
Output path, defaults to the current working directory. |
... |
Arguments passed to |
numeric values of 'df' (e.g., df = 6) are treated as yearly degrees of
freedom. Here, the length of the input time series is not relevant since df
is adapted to it with: df * ('length of _input_ timeserie in days' / 365).
The input length can differ from the output because of the 'pillow' argument
in orgTime().
character values of 'df' (e.g., df = "6"), on the other hand, are not
adopted to the length of the input time series.
Currently tested on MODIS and Landsat data. With M*D13 data, it is also possible to use the 'composite_day_of_the_year' layer and the 'VI_Quality' layer.
The filtered data and a text file with the dates of the output layers.
Matteo Mattiuzzi
whittaker.raster(), raster::raster().
## Not run:
# The full capacity of the following functions is currently available only
# with M*D13 data.
# !! The function is very new, double check the result!!
# You need to extract the: 'vegetation index', 'VI_Quality layer',
# and 'composite day of the year' layer.
# runGdal(product="MOD13A2",begin="2004340",extent="sicily",end="2006070",
# job="fullCapa",SDSstring="101000000010")
# Afterward extract it to:
options("MODIS_outDirPath")
# the only obligatory dataset is "x" (vegetatino index), get the 'vi' data on
# the source directory:
path <- paste0(options("MODIS_outDirPath"),"/fullCapa")
vi <- preStack(path=path, pattern="*_NDVI.tif$")
# `orgTime()` detects timing information of the input data and generates
# based on the arguments the output date information. For spline functions
# (in general) the start and end of the time series is always problematic.
# So there is the argument "pillow" (default 75 days) that adds
# (if available) some more layers on the two endings.
timeInfo <- orgTime(vi,nDays=16,begin="2005001",end="2005365",pillow=40)
# now re-run "preStack" with two differences, 'files' (output of the first
# `preStack()` call) and the 'timeInfo'.
# Here only the data needed for the filtering is extracted:
vi <- preStack(files=vi,timeInfo=timeInfo)
smooth.spline.raster(x=vi,timeInfo=timeInfo)
# Filter with weighting and time information:
# if the files are M*D13 you can use also use quality layers and the
# composite day of the year:
w <- stack(preStack(path=path, pattern="*_VI_Quality.tif$", timeInfo=timeInfo))
w <- makeWeights(w,bitShift=2,bitMask=15,threshold=6)
# you can also pass only the names
t <- preStack(path=path, pattern="*_composite_day_of_the_year.tif$", timeInfo=timeInfo)
smooth.spline.raster(x=vi,w=w,t=t,timeInfo=timeInfo)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.