sumo输出-实时

  • Post author:
  • Post category:其他


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

其中:

parameter description
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

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。