python从SUMO中获取车辆平均行驶时间
2015-12-03 15:36
477 查看
1.SUMO的trip information文件
在SUMO的帮助文档中的simulation output中有如下说明。SUMO提供用来记录车辆trip信息的文件。文件的格式如下
<tripinfos> <tripinfo id="<VEHICLE_ID>" \ depart="<DEPARTURE_TIME>" departLane="<DEPARTURE_LANE_ID>" \ departPos="<DEPARTURE_POSITION>" departSpeed="<DEPARTURE_SPEED>" \ departDelay="<DEPARTURE_DELAY>" \ arrival="<ARRIVAL_TIME>" arrivalLane="<DEPARTURE_LANE_ID>" \ arrivalPos="<ARRIVAL_POSITION>" arrivalSpeed="<ARRIVAL_SPEED>" \ duration="<TRAVEL_TIME>" routeLength="<ROUTE_LENGTH>" \ waitSteps="<STEPS_WITH_HALTS>" rerouteNo="<REROUTE_NUMBER>" \ devices="<DEVICE_LIST>" vtype="<VEHICLE_TYPE_ID>"/> ... information about further vehicles ... </tripinfos>为了计算车辆的平均行驶时间,其实就是提取出每一个车辆记录中的duration属性,然后相加取平均。
2.python代码
# -*- coding: utf-8 -*- """ Created on Thu Dec 03 18:50:50 2015 @author: Luyixiao """ import bs4 soup = bs4.BeautifulSoup(open('E:/averageTime.xml')) soup = soup.body.tripinfos list = [] for child in soup.children: list.append(child) kk = list[0] for i in range(0,len(list)):#delete the blank record if list[i]==kk: list.pop(i) sum = 0 for t in list:#count the amount duration sum= sum+float(t['duration']) average = sum/len(list)#calculate the average time for per vehicle很简单的一个处理就可以获取车辆平均滞留时间,这一指标可以用来衡量区域交通的通畅情况。
相关文章推荐
- 关于Python中的yield
- Windows下Python pip的安装
- python 模块之os.path模块
- Python-排序
- Python之美[从菜鸟到高手]--生成器之全景分析
- [python]函数
- LeetCode解题报告-- Count and Say
- python与BeautifulSouop计算SUMO仿真的到达速率
- 【python】FTP客户端
- python一个进程——多线程threading的实现
- python调用API
- python 怎么模拟加header(如User-Agent、Content-Type等等)
- python入门--切片,迭代,列表生成
- python学习之路之案例0(实现登录功能,登录错误次数超过3次,自动退出登录)
- Python yield 使用浅析
- python 之html的headers提取操作
- Python xrange与range的区别
- Sublime 3 打造成 Python/Django IDE开发利器
- python 之模块之 xml.dom.minidom解析xml
- python中的StringIO模块