Using a rolling median, filter the NDVI time series for each id.
filter_roll(DT, window = 3L, id = "id", method = "median")
data.table of NDVI time series
window size. default is 3.
id column. default is 'id'. See details.
median. no other options yet. let me know if you are looking for something else.
filtered data.table with appended 'rolled' column of each id's rolling median, filtered NDVI time series.
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.
Other filter:
filter_ndvi()
,
filter_qa()
,
filter_top()
,
filter_winter()
# Load data.table
library(data.table)
# Read example data
ndvi <- fread(system.file("extdata", "sampled-ndvi-MODIS-MOD13Q1.csv", package = "irg"))
filter_qa(ndvi, ndvi = 'NDVI', qa = 'SummaryQA', good = c(0, 1))
#> id NDVI SummaryQA DayOfYear yr filtered
#> 1: 0 0.1864 3 11 2015 NA
#> 2: 1 0.0541 2 3 2015 NA
#> 3: 2 0.1781 3 11 2015 NA
#> 4: 3 0.1024 2 5 2015 NA
#> 5: 4 0.0898 2 3 2015 NA
#> ---
#> 801: 2 0.1179 2 364 2019 NA
#> 802: 3 0.0789 2 364 2019 NA
#> 803: 4 0.1572 2 364 2019 NA
#> 804: 5 0.0763 2 364 2019 NA
#> 805: 6 0.1197 2 362 2019 NA
filter_winter(ndvi, probs = 0.025, limits = c(60L, 300L), doy = 'DayOfYear', id = 'id')
#> id NDVI SummaryQA DayOfYear yr filtered winter
#> 1: 0 0.1864 3 11 2015 0.3076500 0.3076500
#> 2: 1 0.0541 2 3 2015 0.3163400 0.3163400
#> 3: 2 0.1781 3 11 2015 0.2649875 0.2649875
#> 4: 3 0.1024 2 5 2015 0.2301750 0.2301750
#> 5: 4 0.0898 2 3 2015 0.2177150 0.2177150
#> ---
#> 801: 2 0.1179 2 364 2019 0.2649875 0.2649875
#> 802: 3 0.0789 2 364 2019 0.2301750 0.2301750
#> 803: 4 0.1572 2 364 2019 0.2177150 0.2177150
#> 804: 5 0.0763 2 364 2019 0.3163400 0.3163400
#> 805: 6 0.1197 2 362 2019 0.3149325 0.3149325
filter_roll(ndvi, window = 3L, id = 'id')
#> id NDVI SummaryQA DayOfYear yr filtered winter rolled
#> 1: 0 0.1864 3 11 2015 0.3076500 0.3076500 0.3076500
#> 2: 1 0.0541 2 3 2015 0.3163400 0.3163400 0.3163400
#> 3: 2 0.1781 3 11 2015 0.2649875 0.2649875 0.2649875
#> 4: 3 0.1024 2 5 2015 0.2301750 0.2301750 0.2301750
#> 5: 4 0.0898 2 3 2015 0.2177150 0.2177150 0.2177150
#> ---
#> 801: 2 0.1179 2 364 2019 0.2649875 0.2649875 0.2649875
#> 802: 3 0.0789 2 364 2019 0.2301750 0.2301750 0.2301750
#> 803: 4 0.1572 2 364 2019 0.2177150 0.2177150 0.2177150
#> 804: 5 0.0763 2 364 2019 0.3163400 0.3163400 0.3163400
#> 805: 6 0.1197 2 362 2019 0.3149325 0.3149325 0.3149325