Trims the date range of an mts object to local time date boundaries which are within the time range of the mts object. This has the effect of removing partial-day data records at the start and end of the timeseries and is useful when calculating full-day statistics.
By default, multi-day periods of all-missing data at the beginning and end
of the timeseries are removed before trimming to date boundaries. If
trimEmptyDays = FALSE
all records are retained except for partial days
beyond the first and after the last date boundary.
Day boundaries are calculated using the specified timezone
or, if
NULL
, mts$meta$timezone
. Leaving timezone = NULL
, the
default, results in "local time" date filtering which is the most
common use case.
mts_trimDate(mts = NULL, timezone = NULL, trimEmptyDays = TRUE)
mts object.
Olson timezone used to interpret dates.
Logical specifying whether to remove days with no data at the beginning and end of the time range.
A subset of the incoming mts time series object.
(A list with meta
and data
dataframes.)
library(MazamaTimeSeries)
UTC_week <- mts_filterDate(
example_mts,
startdate = 20190703,
enddate = 20190706,
timezone = "UTC"
)
# UTC day boundaries
range(UTC_week$data$datetime)
#> [1] "2019-07-03 00:00:00 UTC" "2019-07-05 23:00:00 UTC"
# Trim to local time day boundaries
local_week <- mts_trimDate(UTC_week)
range(local_week$data$datetime)
#> [1] "2019-07-03 07:00:00 UTC" "2019-07-05 06:00:00 UTC"