0-7035 Dygraph0

#### SPEED MEASURE

library(data.table)
library(ggplot2)
library(scales)
library(lubridate)
library(dygraphs)
library(dplyr)
library(tidyr)

setwd("C:/Users/subas/Syncplicity/MyProjects_IMP/TxDOT_07035/7035_TMC_All")
tmc_dat= fread("7035_TMC.csv")
tmc_dat= subset(tmc_dat, speed <105)
tmc_dat1= subset(tmc_dat, tmc_code=="112-08977"|tmc_code=="111-08371"|tmc_code=="112+07700"| tmc_code=="112-08496")
dim(tmc_dat1)
## [1] 857077      7
### time
tmc_dat1$ts= ydm_hms(tmc_dat1$measurement_tstamp)
tmc_dat1$date= date(tmc_dat1$measurement_tstamp)
tmc_dat1$year= year(tmc_dat1$measurement_tstamp)
tmc_dat1$year= month(tmc_dat1$measurement_tstamp)
tmc_dat1$day= day(tmc_dat1$measurement_tstamp)
tmc_dat1$wday= wday(tmc_dat1$measurement_tstamp, label = TRUE)
tmc_dat1$hour= hour(tmc_dat1$measurement_tstamp)
tmc_dat1$minute= minute(tmc_dat1$measurement_tstamp)
tmc_dat1$Epoch5=as.integer(tmc_dat1$hour*12+tmc_dat1$minute/5+1)
tmc_dat1$Epoch15=as.integer(ceiling(tmc_dat1$Epoch5/3))


wday1= tmc_dat1 %>% group_by(tmc_code, wday, hour) %>% summarize(Count=n(), Hourly_AvSpd=mean(speed, na.rm=TRUE),
                                                       Hourly_StdSpd=sd(speed, na.rm=TRUE))
ggplot(wday1, aes(x=hour, y=Hourly_AvSpd, fill=wday)) + 
  geom_point(size=.5, alpha = 0.1) + 
  facet_grid(wday ~.) +geom_smooth(col="black")+
  theme(legend.position="none") +theme_bw()

wday2= tmc_dat1 %>% group_by(date) %>% summarize(Count=n(), AvSpd=mean(speed, na.rm=TRUE),
                                                                 StdSpd=sd(speed, na.rm=TRUE))
head(wday2,24)
## # A tibble: 24 x 4
##    date       Count AvSpd StdSpd
##    <date>     <int> <dbl>  <dbl>
##  1 2017-01-01   458  65.6   8.28
##  2 2017-01-02   554  66.4   6.60
##  3 2017-01-03   735  65.5   6.70
##  4 2017-01-04   753  65.9   6.97
##  5 2017-01-05   771  65.1   6.96
##  6 2017-01-06   756  64.6   7.15
##  7 2017-01-07   579  65.6   7.07
##  8 2017-01-08   535  65.6   7.84
##  9 2017-01-09   706  66.3   6.55
## 10 2017-01-10   745  65.6   6.34
## # ... with 14 more rows
dygraph(data=data.table::data.table(wday2[c(1, 3)])) %>%
  dyRangeSelector()
wday2= tmc_dat1 %>% group_by(hour) %>% summarize(Count=n(), AvSpd=mean(speed, na.rm=TRUE),
                                                 StdSpd=sd(speed, na.rm=TRUE))
head(wday2,24)
## # A tibble: 24 x 4
##     hour Count AvSpd StdSpd
##    <int> <int> <dbl>  <dbl>
##  1     0 23445  65.1   7.24
##  2     1 22475  65.1   7.37
##  3     2 23674  64.8   6.95
##  4     3 24049  64.7   6.93
##  5     4 27437  65.1   7.49
##  6     5 33630  65.6   7.53
##  7     6 38669  65.4   7.81
##  8     7 40769  64.7   7.97
##  9     8 43270  64.5   7.73
## 10     9 44210  64.4   7.51
## # ... with 14 more rows
dygraph(data=data.table::data.table(wday2[c(1, 3)])) %>%
  dyRangeSelector()
wday2= tmc_dat1 %>% group_by(Epoch5) %>% summarize(Count=n(), AvSpd=mean(speed, na.rm=TRUE),
                                                 StdSpd=sd(speed, na.rm=TRUE))
head(wday2,24)
## # A tibble: 24 x 4
##    Epoch5 Count AvSpd StdSpd
##     <int> <int> <dbl>  <dbl>
##  1      1  2015  64.9   7.34
##  2      2  1995  65.2   7.24
##  3      3  1986  65.0   7.67
##  4      4  1978  64.9   7.72
##  5      5  1980  65.1   7.26
##  6      6  1926  65.1   7.10
##  7      7  1977  65.3   6.92
##  8      8  1954  65.1   7.19
##  9      9  1917  65.4   7.29
## 10     10  1919  65.1   6.92
## # ... with 14 more rows
dygraph(data=data.table::data.table(wday2[c(1, 3)])) %>%
  dyRangeSelector()
wday2= tmc_dat1 %>% group_by(Epoch15) %>% summarize(Count=n(), AvSpd=mean(speed, na.rm=TRUE),
                                                   StdSpd=sd(speed, na.rm=TRUE))
head(wday2,24)
## # A tibble: 24 x 4
##    Epoch15 Count AvSpd StdSpd
##      <int> <int> <dbl>  <dbl>
##  1       1  5996  65.0   7.42
##  2       2  5884  65.0   7.36
##  3       3  5848  65.3   7.14
##  4       4  5717  65.2   7.03
##  5       5  5645  65.0   7.48
##  6       6  5568  65.1   7.37
##  7       7  5644  65.1   7.24
##  8       8  5618  65.1   7.38
##  9       9  5936  64.6   7.22
## 10      10  5930  64.9   6.78
## # ... with 14 more rows
dygraph(data=data.table::data.table(wday2[c(1, 3)])) %>%
  dyRangeSelector()

library(xts)
## Warning: package 'xts' was built under R version 3.6.3
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 3.6.2
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Attaching package: 'xts'
## The following objects are masked from 'package:dplyr':
## 
##     first, last
## The following objects are masked from 'package:data.table':
## 
##     first, last
wday2= tmc_dat1 %>% group_by(hour, date) %>% summarize(Count=n(), AvSpd=mean(speed, na.rm=TRUE),
                                                         StdSpd=sd(speed, na.rm=TRUE))
head(wday2,24)
## # A tibble: 24 x 5
## # Groups:   hour [1]
##     hour date       Count AvSpd StdSpd
##    <int> <date>     <int> <dbl>  <dbl>
##  1     0 2017-01-01    10  67.5   4.93
##  2     0 2017-01-02    14  67.4   4.48
##  3     0 2017-01-03    14  66.4   4.70
##  4     0 2017-01-04    16  70.2   6.53
##  5     0 2017-01-05    25  64.5   6.30
##  6     0 2017-01-06    26  61.7   7.86
##  7     0 2017-01-07    25  66.6   5.61
##  8     0 2017-01-08    15  66     6.11
##  9     0 2017-01-09    16  66.9   5.85
## 10     0 2017-01-10    26  65.7   5.78
## # ... with 14 more rows
dat2 <- spread(wday2[, c(2, 1, 4)],hour, AvSpd) 
timeseries <-xts(dat2 , order.by = dat2$date)
dygraph(timeseries) %>% 
  dyRangeSelector() 
wday2= tmc_dat1 %>% group_by(tmc_code, date) %>% summarize(Count=n(), AvSpd=mean(speed, na.rm=TRUE),
                                                      StdSpd=sd(speed, na.rm=TRUE))
head(wday2)
## # A tibble: 6 x 5
## # Groups:   tmc_code [1]
##   tmc_code  date       Count AvSpd StdSpd
##   <chr>     <date>     <int> <dbl>  <dbl>
## 1 111-08371 2017-01-01   159  65.5   5.15
## 2 111-08371 2017-01-02   208  65.7   4.02
## 3 111-08371 2017-01-03   229  66.2   3.94
## 4 111-08371 2017-01-04   261  65.3   4.07
## 5 111-08371 2017-01-05   271  65.0   3.95
## 6 111-08371 2017-01-06   258  64.8   4.58
dat2 <- spread(wday2[, c(2, 1, 4)],tmc_code, AvSpd) 
timeseries <-xts(dat2 , order.by = dat2$date)
dygraph(timeseries) %>% 
  dyRangeSelector() 

2020-05-05