Subsets a mts_monitor object by datetime. This function allows for sub-day filtering as opposed to monitor_filterDate() which always filters to day-boundaries.

Datetimes can be anything that is understood by MazamaCoreUtils::parseDatetime(). For non-POSIXct values, the recommended format is "YYYY-mm-dd HH:MM:SS".

If either startdate or enddate is not provided, the start/end of the mts_monitor time axis will be used.

Timezone determination precedence assumes that if you are passing in POSIXct values then you know what you are doing.

  1. get timezone from startdate if it is POSIXct

  2. use passed in timezone

  3. get timezone from mts_monitor

monitor_filterDatetime(
  monitor = NULL,
  startdate = NULL,
  enddate = NULL,
  timezone = NULL,
  unit = "sec",
  ceilingStart = FALSE,
  ceilingEnd = FALSE
)

Arguments

monitor

mts_monitor object.

startdate

Desired start datetime (ISO 8601).

enddate

Desired end datetime (ISO 8601).

timezone

Olson timezone used to interpret startdate and enddate.

unit

Units used to determine time at end-of-day.

ceilingStart

Logical specifying application of ceiling_date to the startdate rather than floor_date

ceilingEnd

Logical specifying application of ceiling_date to the enddate rather than floor_date

Value

A subset of the given mts_monitor object. (A list with meta and data dataframes.)

Examples

library(AirMonitor)

Camp_Fire %>%
  monitor_timeRange()
#> [1] "2018-11-08 08:00:00 UTC" "2018-11-23 07:00:00 UTC"

# Reduced time range returned in "UTC"
Camp_Fire %>%
  monitor_filterDatetime(
    "2018-11-15 02:00:00",
    "2018-11-22 06:00:00",
    timezone = "America/Los_Angeles"
  ) %>%
  monitor_timeRange()
#> [1] "2018-11-15 10:00:00 UTC" "2018-11-22 13:00:00 UTC"

# Reduced time range returned in "America/Los_Angeles"
Camp_Fire %>%
  monitor_filterDatetime(
    "2018111502",
    "2018112206",
    timezone = "America/Los_Angeles"
  ) %>%
  monitor_timeRange(
    timezone = "America/Los_Angeles"
  )
#> [1] "2018-11-15 02:00:00 PST" "2018-11-22 05:00:00 PST"