简介#
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 过滤器)
模拟检测器#
- 感应线圈检测器 (E1):模拟的感应线圈
- 瞬时感应线圈:模拟的未聚合感应线圈
- 车道区域检测器 (E2):捕获车道段的检测器(即模拟车辆跟踪摄像头)
- 多入口出口检测器 (E3):通过在定义的位置检测进入和退出事件来跟踪区域交通的模拟器
- 路径检测器:用于采样路径分布的检测器
路段或车道的值#
- 路段/车道交通:基于路段/车道的网络性能度量
- 聚合的 Amitran 度量:遵循 Amitran 标准的基于路段/车道的网络性能度量
- 路段/车道排放:基于路段/车道的车辆污染物排放
- 路段/车道噪声:基于路段/车道的车辆噪声排放;基于 Harmonoise
- 排队输出:基于车道的计算,计算路口前的实际排队长度
路口的值#
没有专门的格式用于路口交通。相反,可以通过放置测量路口交通的检测器来测量与路口相关的交通。
- Tools/Output#generateTLSE1Detectors.py:在所有 TLS 控制的路口周围生成感应线圈检测器的脚本(在单个车道上进行点检测)
- Tools/Output#generateTLSE2Detectors.py:在所有 TLS 控制的路口周围生成车道区域检测器的脚本(在单个车道上进行区域检测)
- Tools/Output#generateTLSE3Detectors.py:在所有 TLS 控制的路口周围或任意路口列表生成多入口出口检测器的脚本。检测器可以配置为聚合或分离接近的路段,以及包含或排除路口内部。(在路段上进行区域检测)
或者,可以使用 edgeData 属性 edges 和 aggregate="true" 来聚合路段或车道的值,以获取路口的流量。
基于车辆的信息#
- 行程信息:关于每个车辆行程的聚合信息(可选包含排放数据)
- 车辆路径信息:关于每个车辆在仿真运行期间路径的信息
- 停靠输出:关于车辆停靠以及人员和容器的装载/卸载的信息
- 电池使用情况:关于电动车电池状态的信息
- 碰撞输出:车辆之间以及车辆与行人之间碰撞的信息
基于仿真(网络)的信息#
- 仿真状态摘要统计:关于仿真当前状态的信息(车辆数量等)
- 仿真状态人员摘要统计:关于仿真中人员当前状态的信息(人员数量等)
- 统计输出:仿真的总体统计(车辆、瞬移、安全、人员、vehicleTripStatistics、rideStatistics 等)
交通灯信息#
- 交通灯状态:关于交通灯状态(信号灯)的信息
- 基于流的交通灯切换:关于负责特定连接的交通灯信号切换的信息
- 交通灯状态,按切换:关于交通灯信号状态(信号灯)的信息,仅在状态改变时写入
- 记录的程序:将状态序列存储为静态信号程序,可以加载并重新运行。
- 与 tls 耦合的车道区域检测器:由 tls 触发的模拟车辆跟踪摄像头
附加调试输出#
- 选项 --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:因以下任何原因而被瞬移的车辆次数(每当发出瞬移警告时都会给出这些原因)
如果仿真包含人员,则会添加以下输出:
- 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 时,网络参数对话框也会显示这些交通度量的运行平均值(可通过右键单击网络背景访问该对话框)。
