Using lower quantile (default = 0.025) of multi-year MODIS data, determine the "winterNDVI" for each id.
filter_winter(
DT,
probs = 0.025,
limits = c(60L, 300L),
doy = "DayOfYear",
id = "id"
)
data.table of NDVI time series
quantile probability to determine "winterNDVI". default is 0.025.
integer vector indicating limit days of absolute winter (snow cover, etc.). default is c(60, 300): 60 days after Jan 1 and 65 days before Jan 1.
julian day column. default is 'DayOfYear'.
id column. default is 'id'. See details.
filtered data.table with appended 'winter' column of each id's "winterNDVI" baseline 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_top()
# 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