Using upper quantile (default = 0.925) of multi-year MODIS data, determine the top NDVI for each id.
filter_top(DT, probs = 0.925, id = "id")
filtered data.table with appended 'top' column of each id's top (quantile) NDVI value.
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_roll()
,
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
filter_top(ndvi, probs = 0.925, 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
#> top
#> <num>
#> 1: 0.8735000
#> 2: 0.8632175
#> 3: 0.8707500
#> 4: 0.8635525
#> 5: 0.8476000
#> ---
#> 801: 0.8707500
#> 802: 0.8635525
#> 803: 0.8476000
#> 804: 0.8632175
#> 805: 0.8632000