Obtain time-series of EV demand from sessions data set
Arguments
- sessions
tibble, sessions data set in standard format marked by
{evprof}
package- 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.
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)", legend_show = "onmouseover")
# 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)", legend_show = "onmouseover")