本实验在王佳琳建好的黑龙江高速公路真实路网的邻接矩阵基础上,尝试得到OD点的最短路径。进而运用一日的黑龙江收费数据,计算各段link的交通量。

本实验更正了上一次实验的基础数据,由200个点更正为199个点。

library(HVS)
library(magrittr)
library(knitr)
load("D:/R/packages/HVS/data-raw/hlj_roadnet.RData")
load("D:/R/packages/HVS/data-raw/hrbs.RData")
load("D:/R/packages/HVS/data-raw/indextable.RData")
result <- dijkstra_matrix(weight_mat = hlj_roadnet)
mileage <- result[[1]]
path <- result[[2]]
dim(hrbs)

编码转序号

hrbs$ENSEQ <- indextoseq(hrbs$ENSTATIONINDEX)
hrbs$EXSEQ <- indextoseq(hrbs$EXSTATIONINDEX)

去掉序号为0的,即编码找不到的

hrbs <- hrbs[hrbs$ENSEQ != 0 & hrbs$EXSEQ != 0,]
dim(hrbs)

路径匹配

hrbs$path <- mapply(function(O,D) path[[O]][[D]],hrbs$ENSEQ,hrbs$EXSEQ)
head(hrbs$path)

拆分link

hrbs$link <- lapply(hrbs$path,extract_link)
head(hrbs$link)

得到所有link

alllink <- all_link(hlj_roadnet)
alllink

计算所有link单日交通量

library(parallel)
cores <- detectCores()
cluster <- makePSOCKcluster(cores)
l <- parLapply(cluster,alllink,caculate_natureflow,hrbs$link)
names(l) <- alllink
d <- data.frame(traffic_volumn = simplify2array(l))
d$seqlink <- rownames(d)
d$indexlink <- seqlinktoindexlink(rownames(d))
head(d,20)


ahorawzy/HVS documentation built on May 29, 2019, 1:52 a.m.