Obtain time-series of EV demand from sessions data set
Arguments
- sessions
tibble, sessions data set in standard format marked by
{evprof}
package (see this article)- dttm_seq
sequence of datetime values that will be the
datetime
variable of the returned time-series data frame.- by
character, being 'Profile' or 'Session'. When
by='Profile'
each column corresponds to an EV user profile.- resolution
integer, time resolution (in minutes) of the sessions datetime variables. If
dttm_seq
is defined this parameter is ignored.- mc.cores
integer, number of cores to use. Must be at least one, and parallelization requires at least two cores.
Details
Note that the time resolution of variables ConnectionStartDateTime
and
ChargingStartDateTime
must coincide with
resolution
parameter. For example, if a charging session in sessions
starts charging
at 15:32 and resolution = 15
, the load of this session won't be computed. To solve this,
the function automatically aligns charging sessions' start time according to
resolution
, so following the previous example the session would start at 15:30.
Examples
suppressMessages(library(lubridate))
suppressMessages(library(dplyr))
# Get demand with the complete datetime sequence from the sessions
sessions <- head(evsim::california_ev_sessions, 100)
demand <- get_demand(
sessions,
by = "Session",
resolution = 60
)
#> Warning: charging sessions are aligned to 60-minute resolution.
demand %>% plot_ts(ylab = "EV demand (kW)")
# Get demand with a custom datetime sequence and resolution of 15 minutes
sessions <- head(evsim::california_ev_sessions_profiles, 100)
dttm_seq <- seq.POSIXt(
as_datetime(dmy(08102018)) %>% force_tz(tz(sessions$ConnectionStartDateTime)),
as_datetime(dmy(11102018)) %>% force_tz(tz(sessions$ConnectionStartDateTime)),
by = "15 mins"
)
demand <- get_demand(
sessions,
dttm_seq = dttm_seq,
by = "Profile",
resolution = 15
)
#> Warning: charging sessions are aligned to 15-minute resolution.
demand %>% plot_ts(ylab = "EV demand (kW)")