sumo输出-实时

SUMO 作为一款常用的交通系统仿真软件,其仿真结果常被用于统计分析,例如计算某条道路上单位时间内的车流量,某种交通灯控制策略对行车延时的影响等。

SUMO 提供了多种获取统计结果的方式。本文主要介绍两种:

  • 设置参数 --duration-log.statistics ,自动获取实时统计结果。参考网址
  • 设置参数 --tripinfo-output,得到仿真数据文件,再进行后续分析。参考网址

获取实时统计结果

在启动 SUMO 时,添加参数 --duration-log.statistics,即

sumo-gui   --duration-log.statistics  -c  <config_file_name.sum.cfg>  

启动 sumo 之后,鼠标右键点击绿色背景区域,选择 " Show Parameters" 就可以得到如下图所示的实时统计结果:

sumo_statistic1.gif

其中:

parameterdescription
loaded vehicles已经生成的车辆数目
running vehicles正在路上运行的车辆数目
arrived vehicles已经到达终点的车辆数目
avg.trip.length车辆平均行驶距离
avg.trip.duration车辆平均行驶时间
avg.trip.time loss平均延迟时间 = 平均行驶时间 - 按照期望速度行驶所需时间 (上述程序中为 16m/s)
avg.trip.speed平均车速 = 平均行驶距离 / 平均行驶时间

实际上,不添加上述参数也可以获得一些统计结果,只不过添加参数之后统计结果更多一些。

获取仿真数据文件

如果自己想要的统计结果不在上述统计参数中,则需要导出仿真数据,手动分析。
例如,我们不仅想知道平均延迟时间,还想知道延迟时间的标准差,后者反映了交通控制策略的公平性。

为了得到输出数据,在启动 SUMO 时,添加参数 --tripinfo-output,即

sumo-gui  --tripinfo-output  my_output_file.xml   -c  <config_file_name.sumo.cfg>    

仿真结束之后,数据都存放在了 my_output_file.xml 文件中,内容如下:

<tripinfos xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/tripinfo_file.xsd">
    ...
    <tripinfo id="v.146.3" depart="1460.01" departLane="end2_junction_0" departPos="65.63" departSpeed="16.00" departDelay="0.00" arrival="1517.92" arrivalLane="junction_end1_0" arrivalPos="486.40" arrivalSpeed="16.00" duration="57.91" routeLength="916.20" waitingTime="0.00" waitingCount="0" stopTime="0.00" timeLoss="-0.00" rerouteNo="0" devices="tripinfo_v.146.3" vType="vtypeauto" speedFactor="1.15" vaporized=""/>
    <tripinfo id="v.141.4" depart="1410.01" departLane="end2_junction_1" departPos="62.21" departSpeed="16.00" departDelay="0.00" arrival="1521.18" arrivalLane="junction_end4_0" arrivalPos="486.40" arrivalSpeed="16.00" duration="111.17" routeLength="937.79" waitingTime="47.57" waitingCount="1" stopTime="0.00" timeLoss="52.56" rerouteNo="0" devices="tripinfo_v.141.4" vType="vtypeauto" speedFactor="1.15" vaporized=""/>
    <tripinfo id="v.141.10" depart="1410.01" departLane="end4_junction_1" departPos="137.72" departSpeed="16.00" departDelay="0.00" arrival="1521.28" arrivalLane="junction_end2_0" arrivalPos="486.40" arrivalSpeed="15.99" duration="111.27" routeLength="862.28" waitingTime="52.29" waitingCount="1" stopTime="0.00" timeLoss="57.38" rerouteNo="0" devices="tripinfo_v.141.10" vType="vtypeauto" speedFactor="1.15" vaporized=""/>
    <tripinfo id="v.142.4" depart="1420.01" departLane="end2_junction_1" departPos="101.56" departSpeed="16.00" departDelay="0.00" arrival="1522.44" arrivalLane="junction_end4_1" arrivalPos="486.40" arrivalSpeed="16.00" duration="102.43" routeLength="898.44" waitingTime="36.47" waitingCount="1" stopTime="0.00" timeLoss="46.27" rerouteNo="0" devices="tripinfo_v.142.4" vType="vtypeauto" speedFactor="1.15" vaporized=""/>
    <tripinfo id="v.142.10" depart="1420.01" departLane="end4_junction_1" departPos="57.82" departSpeed="16.00" departDelay="0.00" arrival="1522.53" arrivalLane="junction_end2_0" arrivalPos="486.40" arrivalSpeed="15.99" duration="102.52" routeLength="942.18" waitingTime="33.74" waitingCount="1" stopTime="0.00" timeLoss="43.64" rerouteNo="0" devices="tripinfo_v.142.10" vType="vtypeauto" speedFactor="1.15" vaporized=""/>
    ...
</tripinfos>

这里包含了每一辆车的详细行驶信息。由于输出的是 xml 文件,我们可以借助 python 的 xml.etree.ElementTree module 提取其中的数据并分析。这里就不再赘述了。



作者:isl_qdu
链接:https://www.jianshu.com/p/9e6f7d6b7119
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值