library(sf)
library(mapview)
library(raster)
library(jsonlite)
library(dplyr)
library(tidyr)
library(sp)
library(mapview)
library(chron)
library(stringr)
library(ggplot2)
load("C:/Users/fagne/OneDrive/r-files/CIET/data/LogradourosPoA.Rda")
vias = c("EDGAR PIRES DE CASTRO", " JUCA BATISTA", "    A J RENNER", "AZENHA", "IPIRANGA", "JOAO PESSOA", "PROTASIO ALVES", "SERTORIO", "GETULIO VARGAS", "CEL APARICIO BORGES", "GETULIO VARGAS", "ASSIS BRASIL", "JOAO DE OLIVEIRA REMIAO", "BENTO GONCALVES", "CARLOS GOMES", "JOAO DE OLIVEIRA REMIAO", "MANOEL ELIAS", "EDVALDO PEREIRA PAIVA", "CAVALHADA", "PRESIDENTE CASTELO BRANCO", "PRAIA DE BELAS", "SEVERO DULLIUS", "WENCESLAU ESCOBAR", "EDUARDO PRADO", "DONA TEODORA", "FARRAPOS", "VOLUNTARIOS DA PATRIA", "BORGES DE MEDEIROS", "INDEPENDENCIA", "VINTE QUATRO DE OUTUBRO", "   MOSTARDEIRO")
aoi_boundary_HARVsub = aoi_boundary_HARV[aoi_boundary_HARV$NMIDELOG == "OSVALDO ARANHA",]
for (via in vias) {
  aoi_boundary_HARVsubTemp = aoi_boundary_HARV[aoi_boundary_HARV$NMIDELOG == via,]
  aoi_boundary_HARVsub = rbind(aoi_boundary_HARVsub, aoi_boundary_HARVsubTemp)
}

dim(aoi_boundary_HARVsub)
## [1] 1269   22
pal = mapviewPalette("mapviewTopoColors")
paletta = colorRampPalette(c("#00afb9","#f08700"), space="Lab" )
mapview(aoi_boundary_HARVsub, zcol= 'sentidoDuplo', color = paletta,  lwd=5, layer.name = "aoi_boundary_HARV", alpha = 1,
       legend = TRUE, map.types=c("CartoDB.DarkMatter", "CartoDB.Positron","OpenStreetMap", "Esri.WorldImagery", "Esri.WorldStreetMap", "OpenTopoMap"))
load("C:/Users/fagne/OneDrive/r-files/CIET/waze_download/waze.Rda")
waze = waze %>%
  filter(str_detect(dia, "feira"))
congestionamentos = waze
congestionamentos$sentido = "C/B"
congestionamentos_m_a = congestionamentos[congestionamentos$hora > "07:00:00",]
congestionamentos_m_a = congestionamentos_m_a[congestionamentos_m_a$hora < "09:00:00",]
congestionamentos_m_a = congestionamentos_m_a[congestionamentos_m_a$pubMillis  >= "2019-11-13",]
congestionamentos_m_a = congestionamentos_m_a[congestionamentos_m_a$pubMillis  < "2019-11-14",]
vias_de_interesse = c('Av. Osvaldo Aranha', 'Av. Ipiranga', 'Av. João Pessoa', 'Av. da Azenha', 'Av. Protásio Alves', 'Av. Sertório', 'Av. Carlos Gomes', 'Av. Getúlio Vargas', 'Av. Assis Brasil', 'Av. Cel. Aparício Borges', 'Est. João de Oliveira Remião', 'Av. Bento Gonçalves', 'R. Da. Teodora', 'Av. Manoel Elias', 'Av. da Cavalhada', 'Av. A. J. Renner', 'Av. Farrapos', 'Av. João Pessoa - Pista Esq.', 'Av. João Pessoa - Pista Dir.', 'Av. Edvaldo Pereira Paiva', 'Av. Pres. Castello Branco', 'Av. Praia de Belas - Pista Esq.', 'Av. Praia de Belas - Pista Dir.', 'Av. Praia de Belas', 'Av. Severo Dullius', 'Av. Wenceslau Escobar', 'Av. Edgar Pires de Castro', 'Av. Juca Batista', 'Av. Eduardo Prado', 'R. Voluntários da Pátria', 'Av. Borges de Medeiros', 'R. 24 de Outubro', 'Av. Independência', 'Av. Independência - Pista Dir.', 'Av. Independência - Pista Esq.', 'R. Mostardeiro')
congestionamentos_m_a = subset(congestionamentos_m_a,street %in% vias_de_interesse)
#congestionamentos_m_a = congestionamentos_m_a[!duplicated(congestionamentos_m_a[9]),]
#congestionamentos_m_a = congestionamentos_m_a[!duplicated(congestionamentos_m_a[4]),]
lista = list()
nomes_linhas = list()
pracaAlfandega = as.data.frame(cbind(c(-51.23105), c(-30.02961)))
for (i in 1:length(congestionamentos_m_a$country)) {
  nomes_linhas[i] = i
  teste = congestionamentos_m_a$line[i]
  teste = as.data.frame(teste)
  inicioLinha = head(teste,1)
  fimLinha = tail(teste,1)
  #ACinicioLinha = pointDistance(antonioCarvalho, inicioLinha, lonlat=TRUE)
  #ACfimLinha = pointDistance(antonioCarvalho, fimLinha, lonlat=TRUE)
  inicioLinha = pointDistance(pracaAlfandega, inicioLinha, lonlat=TRUE)
  fimLinha = pointDistance(pracaAlfandega, fimLinha, lonlat=TRUE)
  if (fimLinha < inicioLinha) {
    congestionamentos_m_a$sentido[i] = "B/C"
  }
  l1 = cbind(c(teste$x),c(teste$y))
  Sl1 = Line(l1)
  S1 = Lines(list(Sl1), ID=i)
  lista[i] = S1
}
Sl = SpatialLines(lista)
class(Sl)
## [1] "SpatialLines"
## attr(,"package")
## [1] "sp"
options(scipen = 999)
data = min(congestionamentos_m_a$date)
minimo = as.character(min(congestionamentos_m_a$hora)) 
maximo = as.character(max(congestionamentos_m_a$hora))
totalFilas = sum(congestionamentos_m_a$length)

#paste("Extensão de congesionamentos:", sum(congestionamentos_m_a$length))
extensaoTotalVias = round(sum(ifelse(aoi_boundary_HARVsub$sentidoDuplo == 0, aoi_boundary_HARVsub$GEOM_LEN, aoi_boundary_HARVsub$GEOM_LEN * 2))*1000,0)
indiceCongestionamentos = paste(round(sum(congestionamentos_m_a$length)/sum(ifelse(aoi_boundary_HARVsub$sentidoDuplo == 0, aoi_boundary_HARVsub$GEOM_LEN, aoi_boundary_HARVsub$GEOM_LEN * 2))/10, 2), "%", sep = "")

indiceBC = paste(round(sum(congestionamentos_m_a[congestionamentos_m_a$sentido =="B/C", c('length')])/sum(ifelse(aoi_boundary_HARVsub$sentidoDuplo == 0, aoi_boundary_HARVsub$GEOM_LEN, aoi_boundary_HARVsub$GEOM_LEN * 2))/10, 2), "%", sep = "")
indiceCB= paste(round(sum(congestionamentos_m_a[congestionamentos_m_a$sentido =="C/B", c('length')])/sum(ifelse(aoi_boundary_HARVsub$sentidoDuplo == 0, aoi_boundary_HARVsub$GEOM_LEN, aoi_boundary_HARVsub$GEOM_LEN * 2))/10, 2), "%", sep = "")

Mapa de Congestionamentos

Congestionamentos identificados na data de 2019-11-13 entre 07:13:46 e 08:58:35. Os dados das vias relacionadas demonstram uma extensão total 84325 metros de filas de congestimento. A extensão total das vias relacionadas é de 325329 metros, o que resulta em um índice de congestionamento de 25.92%; distribuídos da seguinte forma: Índice de congestionamentos no sentido CENTRO/BAIRRO de 3.67% e sentido BAIRRO/CENTRO de 22.25%

Índices de Congestionamento