This function calculates the non-visual direct response (nvRD). It takes into account the assumed response dynamics of the non-visual system and processes the light exposure signal to quantify the effective direct input to the non-visual system (see Details).
Arguments
- MEDI.vector
Numeric vector containing the melanopic EDI data.
- Illuminance.vector
Numeric vector containing the Illuminance data.
- Time.vector
Vector containing the time data. Can be
POSIXct()
,hms::hms()
,lubridate::duration()
,difftime()
.- epoch
The epoch at which the data was sampled. Can be either a
lubridate::duration()
or a string. If it is a string, it needs to be either"dominant.epoch"
(the default) for a guess based on the data, or a validlubridate::duration()
string, e.g.,"1 day"
or"10 sec"
.
Details
The timeseries is assumed to be regular. Missing values in the light data will be replaced by 0.
References
Amundadottir, M.L. (2016). Light-driven model for identifying indicators of non-visual health potential in the built environment [Doctoral dissertation, EPFL]. EPFL infoscience. doi:10.5075/epfl-thesis-7146
See also
Other metrics:
bright_dark_period()
,
centroidLE()
,
disparity_index()
,
duration_above_threshold()
,
exponential_moving_average()
,
frequency_crossing_threshold()
,
interdaily_stability()
,
intradaily_variability()
,
midpointCE()
,
nvRC()
,
nvRD_cumulative_response()
,
period_above_threshold()
,
pulses_above_threshold()
,
threshold_for_duration()
,
timing_above_threshold()
Examples
# Dataset 1 with 24h measurement
dataset1 <-
tibble::tibble(
Id = rep("A", 60 * 24),
Datetime = lubridate::as_datetime(0) + lubridate::minutes(0:(60*24-1)),
Illuminance = c(rep(0, 60*8), rep(sample(1:1000, 16, replace = TRUE), each = 60)),
MEDI = Illuminance * rep(sample(0.5:1.5, 24, replace = TRUE), each = 60)
)
# Dataset 2 with 48h measurement
dataset2 <-
tibble::tibble(
Id = rep("B", 60 * 48),
Datetime = lubridate::as_datetime(0) + lubridate::minutes(0:(60*48-1)),
Illuminance = c(rep(0, 60*8), rep(sample(1:1000, 16, replace = TRUE), each = 60),
rep(0, 60*8), rep(sample(1:1000, 16, replace = TRUE), each = 60)),
MEDI = Illuminance * rep(sample(0.5:1.5, 48, replace = TRUE), each = 60)
)
# Combined datasets
dataset.combined <- rbind(dataset1, dataset2)
# Calculate nvRD per ID
dataset.combined.nvRD <- dataset.combined %>%
dplyr::group_by(Id) %>%
dplyr::mutate(
nvRD = nvRD(MEDI, Illuminance, Datetime)
)