前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python与BeautifulSouop计算SUMO仿真的到达速率

python与BeautifulSouop计算SUMO仿真的到达速率

作者头像
钱塘小甲子
发布2019-01-29 09:53:50
5210
发布2019-01-29 09:53:50
举报

1.到达速率

到达速率就是外部车辆进入优化路网在单位时间内的流量,每个进入的lane有不同的到达速率。

2.到达速率的获取

代码语言:javascript
复制
# -*- coding: utf-8 -*-
"""
Created on Wed Dec 02 17:16:44 2015

@author: Luyixiao
"""

import bs4
soup = bs4.BeautifulSoup(open('E:/arrivalRate.xml'))

soup = soup.body.routes
list = []

for child in soup.children:#遍历子节点,并存在List中,用来排序  
    print cnt  
    list.append(child)  
    cnt = cnt+1
    
kk = list[0]
for i in range (0, len(list)):#删除冗余的节点信息  
    if list[i] == kk:  
        print i  
        list.pop(i)
        
list.pop(0)
list.pop(0)
list.pop(0)#前期处理,删除不必要的记录

inputLane = ['-47150988#4','-160896555','47157274#0','24474520#0',\
'39960687#0','73897135','40113020#0','-24474520#4','226657316#0',\
'24576919','11624985#0','178493002#0','-46975399#1','178441747#0',\
'-47150994#1']#建立进入路网的lane链表
cnt = 0
listTemp = []
for cnt in range(len(inputLane)):
    listTemp.append(0)
    
aVec = {}

aVec=dict(zip(inputLane,listTemp))#利用链表建立字典(Dict),lane为key,对应一小时车流次数为value
        
for item in list:#累加,计算数率。由于记录为一小时,所以累加即为速度
    if item.route['edges'].split(' ')[0] in aVec:
        aVec[item.route['edges'].split(' ')[0]] = aVec[item.route['edges'].split(' ')[0]]+1

aVec.items()

最后的字典的键就是进入的lane,值就是速率

1.到达速率

到达速率就是外部车辆进入优化路网在单位时间内的流量,每个进入的lane有不同的到达速率。

2.到达速率的获取

代码语言:javascript
复制
# -*- coding: utf-8 -*-
"""
Created on Wed Dec 02 17:16:44 2015

@author: Luyixiao
"""

import bs4
soup = bs4.BeautifulSoup(open('E:/arrivalRate.xml'))

soup = soup.body.routes
list = []

for child in soup.children:#遍历子节点,并存在List中,用来排序  
    print cnt  
    list.append(child)  
    cnt = cnt+1
    
kk = list[0]
for i in range (0, len(list)):#删除冗余的节点信息  
    if list[i] == kk:  
        print i  
        list.pop(i)
        
list.pop(0)
list.pop(0)
list.pop(0)#前期处理,删除不必要的记录

inputLane = ['-47150988#4','-160896555','47157274#0','24474520#0',\
'39960687#0','73897135','40113020#0','-24474520#4','226657316#0',\
'24576919','11624985#0','178493002#0','-46975399#1','178441747#0',\
'-47150994#1']#建立进入路网的lane链表
cnt = 0
listTemp = []
for cnt in range(len(inputLane)):
    listTemp.append(0)
    
aVec = {}

aVec=dict(zip(inputLane,listTemp))#利用链表建立字典(Dict),lane为key,对应一小时车流次数为value
        
for item in list:#累加,计算数率。由于记录为一小时,所以累加即为速度
    if item.route['edges'].split(' ')[0] in aVec:
        aVec[item.route['edges'].split(' ')[0]] = aVec[item.route['edges'].split(' ')[0]]+1

aVec.items()

最后的字典的键就是进入的lane,值就是速率

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年12月03日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.到达速率
  • 2.到达速率的获取
  • 1.到达速率
  • 2.到达速率的获取
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档