Create a tidy data frame, containing volume and occupancy,
for a single date and sensor.
Use pull_sensor_ids
to obtain metro sensor IDs.
pull_sensor(sensor, pull_date, fill_gaps = TRUE, .quiet = TRUE)
character, the sensor ID.
See documentation for pull_sensor_ids
to obtain metro sensor IDs.
character, the date of data to pull. Needs to by in "YYYY-MM-DD" format.
logical, whether to fill gaps in the time series with NA
values. Default is TRUE
logical, whether to hide messages. Default is TRUE
data frame containing variables volume, occupancy, sensor, date, time.
's worth of data for volume or occupancy for one sensor
A complete year usually results in a file that is around ~30-31KB.
Approximate time to pull one sensor's and one extension's
(v or c for volume or occupancy, respectively) data across
a year on a Mac is 1.33 minutes.
Also note that if you assign `pull_sensor()`'s output, the result is returned in-memory,
in-memory to do so. and there must be sufficient space
Other loop sensor functions:
pull_configuration()
,
pull_sensor_ids()
if (FALSE) {
# Simple example
loop_data <- pull_sensor(5474, "2018-10-14")
# Mapping example
date_range <- seq(as.Date("2019/01/01"), as.Date("2019/01/02"), by = "days")
loop_data <- pmap(list(8564, date_range), pull_sensor)
loops_full <- rbindlist(loop_data)
# Parallel mapping example
## takes longer if only pulling 1-2 days because libraries are copied to each core
library(parallel)
cl <- makeCluster(detectCores() - 1) # Leaving one core unused
params <- list(8564, date_range)
clusterSetRNGStream(cl, 1)
loop_data <- params %>%
lift(clusterMap, cl = cl)(fun = pull_sensor)
stopCluster(cl)
loops_full <- rbindlist(loop_data)
}