SUMO 仿真结果统计分析

引言

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

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

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

获取实时统计结果

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

sumo-gui   --duration-log.statistics  -c    

启动 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      

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


    ...
    
    
    
    
    
    ...

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

你可能感兴趣的:(SUMO 仿真结果统计分析)