#' Radiotracking logger failure detection
#'
#' @description Detects gaps in logger files based on keep alive times
#'
#' @param logger_data logger data.frame from read_logger_folder
#' @param aliveTime time threshold [minutes] between two logger entries
#'
#' @return data.frame with station name, receiver, start and end timestamps of failure
#'
#' @author Marvin Ludwig, Jannis Gottwald
#'
#' @export
#'
loggerTimegaps <- function(logger_data, aliveTime = 6){
# only the keepAlive signals
logger_data <- logger_data[logger_data$max_signal == 0,]
logger_data$receiver <- as.character(logger_data$receiver)
# for every receiver:
ur <- unique(logger_data$receiver)
res <- lapply(seq(length(ur)), function(x){
cur <- logger_data[logger_data$receiver == ur[x],]
cur <- cur[order(cur$timestamp),]
# time difference between two signals
cur$timediff <- 0
for(i in seq(nrow(cur)-1)){
cur$timediff[i+1] <- difftime(cur$timestamp[i+1], cur$timestamp[i], units = "min")
}
# find hole timestamps
gaps <- which(cur$timediff > aliveTime)
return(data.frame(station = cur$Name[gaps],
receiver = cur$receiver[gaps],
start = cur$timestamp[gaps -1],
end = cur$timestamp[gaps]))
})
res <- do.call(rbind, res)
return(res)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.