输出

简介#

sumo 允许生成大量不同的度量值。所有这些度量值都会将收集到的数据写入文件或套接字连接,遵循文件写入的通用规则。默认情况下,所有输出都是禁用的,必须单独触发。一些可用的输出(原始车辆位置转储行程信息车辆路径信息仿真状态统计)使用命令行选项触发,其他的则必须在 additional-files 中定义。

转换输出#

SUMO 写入的所有输出文件默认均为 XML 格式。然而,使用 Python 工具 xml2csv.py,您可以将任何输出文件转换为平面文件(CSV)格式,该格式可以用大多数电子表格软件打开。如果您需要更压缩但仍“标准化”的二进制版本,可以使用 xml2protobuf.py。此外,所有文件都可以通过文件扩展名 .gz 触发,以压缩形式(gzip)写入和读取。

分离重复运行的输出#

为了将多次仿真运行的输出分开,可以使用选项 --output-prefix <STRING>所有输出文件名添加前缀。当设置 --output-prefix TIME 时,所有输出都将使用仿真开始的时间作为前缀,从而自动将它们分开。

可用的输出文件#

下面列出了可用的输出,按主题/聚合类型分组。有关每个输出的更多信息,请点击其链接。

基于车辆的信息,未聚合#

  • 原始车辆位置转储:随时间变化的所有车辆位置 包含:所有模拟时间步长下所有车辆的位置和速度 用于:获取节点的移动(V2V,用于 ns-2)
  • 排放输出:每个仿真步长所有车辆的排放值
  • 完整输出:所有路段、车道和车辆的各种信息(非常适合可视化)
  • vtk 输出:生成众所周知的 VTK(可视化工具包)格式的文件,以显示每个车辆的位置和速度值
  • fcd 输出:浮动车数据包括每个车辆的名称、位置、角度和类型
  • 轨迹输出:遵循 Amitran 标准的轨迹数据,包括每个车辆的名称、位置、速度和加速度
  • 换道输出:每个车辆的换道事件及其相关的换道动机
  • 替代安全度量 (SSM):安全相关度量的输出,如车头时距、制动率等
  • 车辆类型探测:特定车辆类型随时间变化的车辆位置(已弃用,请改用带有 FCD 输出的 vType 过滤器)

模拟检测器#

路段或车道的值#

路口的值#

没有专门的格式用于路口交通。相反,可以通过放置测量路口交通的检测器来测量与路口相关的交通。

  • Tools/Output#generateTLSE1Detectors.py:在所有 TLS 控制的路口周围生成感应线圈检测器的脚本(在单个车道上进行点检测)
  • Tools/Output#generateTLSE2Detectors.py:在所有 TLS 控制的路口周围生成车道区域检测器的脚本(在单个车道上进行区域检测)
  • Tools/Output#generateTLSE3Detectors.py:在所有 TLS 控制的路口周围或任意路口列表生成多入口出口检测器的脚本。检测器可以配置为聚合或分离接近的路段,以及包含或排除路口内部。(在路段上进行区域检测)

或者,可以使用 edgeData 属性 edgesaggregate="true" 来聚合路段或车道的值,以获取路口的流量。

基于车辆的信息#

基于仿真(网络)的信息#

交通灯信息#

附加调试输出#

  • 选项 --link-output <FILE> 保存路口模型的调试数据。此数据显示每个车辆打算占用即将到达的路口多长时间。
  • 选项 --movereminder-output <FILE> 保存车辆设备、车道和输出设施之间交互的调试数据。仅在使用调试标志编译 sumo 时可用。
  • 选项 --railsignal-block-output <FILE> 保存有关铁路信号块的信息。对于每个受控的 railSignal 连接,会生成以下信息:
    • forwardBlock:从信号连接向前方向到达的所有车道,直到下一个铁路信号
    • bidiBlock:在正向块内遇到的构成反向轨道的所有车道,并跟随直到通过允许通行的铁路道岔后的下一个 railSignal
    • backwardBlock:从外部进入 forwardBlock 或 bidiBlock 的所有车道,向上游跟随到入口铁路信号
    • conflictLinks:从外部进入冲突区域(forwardBlock、bidiBlock、backwardBlock)的所有受控连接,编码为 <SIGNALID>_<LINKINDEX>

命令行输出(步长日志)#

默认情况下,sumo 会打印一些“心跳”信息以指示其仍在运行。以下信息将每 100 个仿真步长打印一次:

  • Step #: 当前仿真时间
  • duration of the latest step in (ms):最新步长的持续时间(毫秒
  • real-time factor (step-length / duration). (RT):实时因子(步长/持续时间)。(RT
  • number of vehicles updated per second (UPS):每秒更新的车辆数(UPS
  • TraCI: 当前步长内 TraCI 处理所花费的时间(包括外部脚本)
  • vehicles TOT: 到目前为止已出发的车辆总数
  • ACT: 当前正在运行的车辆数
  • BUF: 延迟插入的车辆数

可以使用选项 --no-step-log 禁用此输出。其周期可以使用选项 --step-log.period TIME 配置。

命令行输出(详细模式)#

当使用选项 --verbose(简称 -v)运行仿真时,将打印以下数据(除非使用选项 --duration-log false 显式禁用):

车辆计数#

  • Inserted:进入仿真网络的车辆数
  • Loaded:从路径文件加载的车辆数。这可能与发出(emitted)的数量不同,原因有二:
    • 使用小于 1.0 的值运行选项 --scale
    • 网络拥堵,导致并非所有车辆都能在仿真时间结束前插入
  • Running:仿真结束时网络中当前活动的车辆数
  • Waiting:由于拥堵而尚未能插入网络的车辆数
  • Teleports:因以下任何原因而被瞬移的车辆次数(每当发出瞬移警告时都会给出这些原因)
    • 碰撞:车辆违反了其与前导车辆的 minGap 要求
    • 超时:车辆无法移动超过 --time-to-teleport 秒(默认 300)
      • wrong lane:车辆无法移动,因为它无法在当前车道上继续其路线,并且无法换到正确的车道
      • yield:车辆无法通过其没有优先权的路口
      • jam:车辆无法继续,因为下一个车道上没有空间

如果仿真包含人员,则会添加以下输出:

  • Inserted:从路径文件加载的人员数
  • Running:仿真结束时网络中活动的人员数
  • Jammed:人员被堵塞的次数

时间数据#

  • Duration:计算仿真时经过的时间(以挂在墙上的时钟测量)。
  • TraCI-Duration:处理 TraCI 命令所花费的经过时间(以挂在墙上的时钟测量)。这包括在 traci 客户端脚本中花费的时间。
  • "Real time factor":仿真时间 / 计算时间 的商数。如果一小时在 360 秒内仿真完成,则实时因子为 10。
  • UPS:(每秒更新次数)。平均每秒计算时间内执行的车辆更新次数。如果单个车辆更新平均花费一毫秒,则此值为 1000。

如果仿真中进行了路由,每个路由算法实例将报告:

  • 路由查询的数量
  • 为找到最佳路径而检查的路段数量
  • 路由的总时间和每次路由调用的平均时间

聚合交通度量#

当设置选项 --duration-log.statistics(快捷方式 -t)时,会自动启用详细输出(除非显式设置为 false),并打印所有车辆行程的以下平均值:

  • RouteLength:平均路径长度
  • Speed:平均行程速度
  • Duration:平均行程持续时间
  • WaitingTime:平均站立时间(非自愿)
  • TimeLoss:因驾驶速度低于期望速度而损失的平均时间(包括 WaitingTime)。期望速度考虑了车辆的 speedFactor
  • DepartDelay:车辆出发因道路空间不足而延迟的平均时间

    Note

    默认情况下,仅包含已到达的车辆。如果设置了选项 --tripinfo-output.write-unfinished,则运行中的车辆也将被包含在内。

  • DepartDelayWaiting:到仿真结束时因道路空间不足而无法插入的车辆的平均等待时间。(仅在设置了选项 --tripinfo-output.write-unfinished 时存在)

如果仿真包含行人(行走的人员),则会添加以下输出:

  • walks:输入中不同的 <walk> 元素的数量
  • RouteLength:平均行走长度
  • Duration:平均行走持续时间
  • TimeLoss:因以低于最大速度行走或停止而损失的平均时间

如果仿真包含乘客(乘坐车辆的人员),则会添加以下输出:

  • Rides:输入中不同的 <ride> 元素的数量
  • WaitingTime:等待乘车的平均时间
  • RouteLength:平均乘车长度
  • Duration:平均乘车持续时间
  • Bus rides:乘坐公共交通车辆在道路上行驶的乘车次数(公共交通通过设置 line 属性来识别)。
  • Train rides:乘坐公共交通车辆在轨道上行驶的乘车次数
  • Bike rides:车辆类别为 bicycle 的乘车次数
  • Aborted rides:因没有合适的车辆可用而无法完成的乘车

您也可以查看统计输出,了解整个仿真的更全面的统计信息,包括上述内容以及与安全、乘车和运输相关的其他统计信息。

设置此选项并使用 sumo-gui 时,网络参数对话框也会显示这些交通度量的运行平均值(可通过右键单击网络背景访问该对话框)。