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
#>      <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