Skip to content
Snippets Groups Projects
Commit b1c8f75b authored by Laura A DeCicco's avatar Laura A DeCicco
Browse files

Merge pull request #12 from ldecicco-USGS/master

Trying to optimize mixed time zone information.
parents 1daafa3c 76419a89
No related branches found
No related tags found
No related merge requests found
...@@ -59,21 +59,27 @@ basicWQPData <- function(url){ ...@@ -59,21 +59,27 @@ basicWQPData <- function(url){
c("EST","EDT","CST","CDT","MST","MDT","PST","PDT","AKST","AKDT","HAST","HST")) c("EST","EDT","CST","CDT","MST","MDT","PST","PDT","AKST","AKDT","HAST","HST"))
timeZoneStart <- as.character(timeZoneLibrary[retval$ActivityStartTime.TimeZoneCode]) timeZoneStart <- as.character(timeZoneLibrary[retval$ActivityStartTime.TimeZoneCode])
timeZoneEnd <- as.character(timeZoneLibrary[retval$ActivityEndTime.TimeZoneCode]) timeZoneEnd <- as.character(timeZoneLibrary[retval$ActivityEndTime.TimeZoneCode])
timeZoneStart[is.na(timeZoneStart)] <- ""
timeZoneEnd[is.na(timeZoneEnd)] <- ""
if(any(!is.na(timeZoneStart))){ if(any(!is.na(timeZoneStart))){
if(length(unique(timeZoneStart)) == 1){ if(length(unique(timeZoneStart)) == 1){
retval$ActivityStartDateTime <- with(retval, as.POSIXct(paste(ActivityStartDate, ActivityStartTime.Time),format="%Y-%m-%d %H:%M:%S", tz=unique(timeZoneStart))) retval$ActivityStartDateTime <- with(retval, as.POSIXct(paste(ActivityStartDate, ActivityStartTime.Time),format="%Y-%m-%d %H:%M:%S", tz=unique(timeZoneStart)))
} else { } else {
# warning("Mixed time zone information")
if(any(is.na(timeZoneStart))){ mostCommonTZ <- names(sort(summary(as.factor(timeZoneStart)),decreasing = TRUE)[1])
warning("Missing time zone information, all dateTimes default to user's local time")
retval$ActivityStartDateTime <- with(retval, as.POSIXct(paste(ActivityStartDate, ActivityStartTime.Time), format="%Y-%m-%d %H:%M:%S"),tz=Sys.timezone()) retval$ActivityStartDateTime <- with(retval, as.POSIXct(paste(ActivityStartDate, ActivityStartTime.Time),
} else { format="%Y-%m-%d %H:%M:%S",
for(i in seq_along(row.names(retval))){ tz=mostCommonTZ))
timeZone <- timeZoneStart[i] additionalTZs <- names(sort(summary(as.factor(timeZoneStart)),decreasing = TRUE)[-1])
retval$ActivityStartDateTime[i] <- with(retval, as.POSIXct(paste(ActivityStartDate[i], ActivityStartTime.Time[i]), format="%Y-%m-%d %H:%M:%S",tz=timeZone)) for(i in additionalTZs){
} retval$ActivityStartDateTime[timeZoneStart == i] <- with(retval[timeZoneStart == i,],
as.POSIXct(paste(ActivityStartDate, ActivityStartTime.Time),
format="%Y-%m-%d %H:%M:%S",
tz=i))
} }
} }
} }
...@@ -81,20 +87,23 @@ basicWQPData <- function(url){ ...@@ -81,20 +87,23 @@ basicWQPData <- function(url){
if(length(unique(timeZoneEnd)) == 1){ if(length(unique(timeZoneEnd)) == 1){
retval$ActivityEndDateTime <- with(retval, as.POSIXct(paste(ActivityEndDate, ActivityEndTime.Time), format="%Y-%m-%d %H:%M:%S",tz=unique(timeZoneEnd))) retval$ActivityEndDateTime <- with(retval, as.POSIXct(paste(ActivityEndDate, ActivityEndTime.Time), format="%Y-%m-%d %H:%M:%S",tz=unique(timeZoneEnd)))
} else { } else {
warning("Mixed time zone information") mostCommonTZ <- names(sort(summary(as.factor(timeZoneEnd)),decreasing = TRUE)[1])
if(any(is.na(timeZoneEnd))){
warning("Missing time zone information, all dateTimes default to user's local time") retval$ActivityEndDateTime <- with(retval, as.POSIXct(paste(ActivityEndDate, ActivityEndTime.Time),
retval$ActivityEndDateTime <- with(retval, as.POSIXct(paste(ActivityEndDate, ActivityEndTime.Time), format="%Y-%m-%d %H:%M:%S"), tz=Sys.timezone()) format="%Y-%m-%d %H:%M:%S",
} else { tz=mostCommonTZ))
for(i in seq_along(row.names(retval))){ additionalTZs <- names(sort(summary(as.factor(timeZoneEnd)),decreasing = TRUE)[-1])
retval$ActivityEndDateTime[i] <- with(retval, as.POSIXct(paste(ActivityEndDate[i], ActivityEndTime.Time[i]), format="%Y-%m-%d %H:%M:%S",tz=timeZoneEnd[i])) for(i in additionalTZs){
} retval$ActivityEndDateTime[timeZoneEnd == i] <- with(retval[timeZoneEnd == i,],
as.POSIXct(paste(ActivityEndDate, ActivityEndTime.Time),
format="%Y-%m-%d %H:%M:%S",
tz=i))
} }
} }
} }
if(any(retval$ActivityEndDate != "")){ if(any(retval$ActivityEndDate != "")){
retval$ActivityEndDate <- as.Date(retval$ActivityEndDate) retval$ActivityEndDate[retval$ActivityEndDate != ""] <- as.Date(retval$ActivityEndDate[retval$ActivityEndDate != ""])
} }
return(retval) return(retval)
......
...@@ -74,10 +74,18 @@ getRDB1Data <- function(obs_url,asDateTime=FALSE){ ...@@ -74,10 +74,18 @@ getRDB1Data <- function(obs_url,asDateTime=FALSE){
if(length(unique(timeZone)) == 1){ if(length(unique(timeZone)) == 1){
data[,regexpr('d$', dataType) > 0] <- as.POSIXct(data[,regexpr('d$', dataType) > 0], "%Y-%m-%d %H:%M", tz = unique(timeZone)) data[,regexpr('d$', dataType) > 0] <- as.POSIXct(data[,regexpr('d$', dataType) > 0], "%Y-%m-%d %H:%M", tz = unique(timeZone))
} else { } else {
# warning("Mixed time zone information")
for(i in seq_along(row.names(data))){ mostCommonTZ <- names(sort(summary(as.factor(timeZone)),decreasing = TRUE)[1])
data[i,regexpr('d$', dataType) > 0] <- as.POSIXct(data[i,regexpr('d$', dataType) > 0], "%Y-%m-%d %H:%M", tz = timeZone[i])
data[,regexpr('d$', dataType) > 0] <- as.POSIXct(data[,regexpr('d$', dataType) > 0], "%Y-%m-%d %H:%M", tz = mostCommonTZ)
additionalTZs <- names(sort(summary(as.factor(timeZone)),decreasing = TRUE)[-1])
for(i in additionalTZs){
data[timeZone == i,regexpr('d$', dataType) > 0] <- as.POSIXct(data[,regexpr('d$', dataType) > 0], "%Y-%m-%d %H:%M", tz = i)
} }
# for(i in seq_along(row.names(data))){
# data[i,regexpr('d$', dataType) > 0] <- as.POSIXct(data[i,regexpr('d$', dataType) > 0], "%Y-%m-%d %H:%M", tz = timeZone[i])
# }
} }
} else { } else {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment