Using a rolling median, filter the NDVI time series for each id.

filter_roll(DT, window = 3L, id = "id", method = "median")

Arguments

DT

data.table of NDVI time series

window

window size. default is 3.

id

id column. default is 'id'. See details.

method

median. no other options yet. let me know if you are looking for something else.

Value

filtered data.table with appended 'rolled' column of each id's rolling median, filtered NDVI time series.

Details

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.

See also

Examples

# 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