Using a rolling median, filter the NDVI time series for each id.
filter_roll(DT, window = 3L, id = "id", method = "median")
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
#> <int> <num> <num> <num> <num> <num>
#> 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
#> <int> <num> <num> <int> <num> <num> <num>
#> 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
#> <int> <num> <num> <int> <num> <num> <num> <num>
#> 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