概述#
sumo-gui 基本上与 sumo 是同一个应用程序,只是扩展了图形用户界面。
- 目的: 模拟定义的场景
- 系统: 可移植(已在 Linux/Windows 上测试);打开一个窗口
- 输入(强制): SUMO 配置文件(参见 sumo)
- 输出: sumo-gui 生成与 sumo 相同的输出
- 编程语言: C++
使用说明#

sumo-gui 的初始外观;可能与您看到的有所不同
作为一个基于窗口的应用程序,在 Windows 上通过双击鼠标左键启动 sumo-gui,在 Linux 上可能是单击。之后,应该会出现一个空窗口,类似于图片中显示的那个。
使用 "文件->打开模拟..." 菜单项或使用 "打开" 图标 (
),您应该能够加载现有的 sumo 配置文件,如果它具有正确的扩展名 ".sumocfg"。如果 sumo 配置文件 有错误,会报告错误,否则配置文件中引用的网络应该会显示出来。现在您可以按下 "播放" 按钮 (
) 开始模拟。模拟的工作方式与在命令行启动时相同。可以使用 "停止" 按钮 (
) 暂停模拟,再次按下 "播放" 按钮可以继续。停止时,也可以通过按下 "单步" 按钮 (
) 执行单步操作。
如果模拟正在运行,当前的模拟秒数会显示在 "数字" 字段中,位于 "时间:" 的右侧
(
)。点击 "时间:" 这个词,可以在显示 <秒> 和 <小时:分钟:秒> 之间切换。
时间显示旁边是延迟控制
(
)。这允许您通过在模拟步骤之间等待给定的毫秒数来减慢模拟速度。
Note
默认情况下,延迟 设置为 0。这可能导致模拟运行过快而无法看到任何车辆。如果发生这种情况,请增加延迟值。
除了加载模拟配置外,还可以通过使用 "文件->打开网络..." 菜单项或使用 "打开网络" 图标 (
) 来加载网络。请注意,sumo-gui 通常假设网络具有扩展名 ".net.xml",但也接受其他扩展名。
加载的模拟或网络都可以使用 "重新加载" 按钮 (
) 或菜单项 "文件->重新加载" 来重新加载。
如果加载了网络或模拟,则可以使用鼠标或键盘在网络中导航。可以按住鼠标左键将网络拖动到所有方向,并通过使用鼠标滚轮或按住鼠标右键并上下移动鼠标来缩放。为了精细缩放(一半缩放速度),在使用鼠标滚轮时按住 "Control" 键,要双倍速度则使用 "Shift"。
与视图交互#
基本导航#

一旦网络显示出来,就可以与视图进行交互。在视图中按下鼠标左键并按住移动,将移动网络。按住鼠标右键并上下移动鼠标会改变网络的缩放。也可以通过使用鼠标滚轮(按住 Shift 增加缩放速度,按住 Ctrl 降低速度)来改变缩放。缩放可以以屏幕中心或光标位置为中心。缩放样式可以通过
按钮选择。
您也可以通过直接设置网络坐标来控制网络的哪个部分可见,这些坐标将位于屏幕中心,同时设置缩放(给定值为 100 时,整个网络将适配到屏幕上)。这些设置可以通过使用
按钮打开视口编辑器来更改。从这个编辑器中,可以保存当前设置 (
) 或加载先前保存的设置(在视口编辑器中使用
)。
视口定义如下:
<viewport zoom="<ZOOM>" x="<X>" y="<Y>" angle="<ANGLE>"/>。它可以位于 gui-settings 文件中。
按下视图顶部菜单栏中的居中按钮 (
),将重置视口以显示整个网络。
断点#
模拟可以自动停止,以便调查特定的时间点。可以通过以下任何一种方法设置断点:
- 通过菜单 编辑->断点
- 通过设置选项 --breakpoints TIME1,TIME2,...
- 通过加载包含断点信息的配置文件
- 通过点击消息/警告日志区域中带下划线的时间值。断点将在该时间值 之前 5 秒处设置。此偏移量可以通过 '设置' 菜单(Ctrl + H)进行配置。要调查传送警告的原因,建议将偏移量设置为传送事件前 305 秒。
键盘快捷键#
各种菜单项都可以通过键盘快捷键访问。这些在菜单中直接有文档说明。(例如,Ctrl + l,Ctrl + e 打开边定位器,Ctrl + d 执行单步模拟)。其他快捷键如下:
- Ctrl + 左键单击:切换光标下对象的选择状态
- 方向键:移动视图
- Ctrl + 方向键:小幅移动视图
- Alt + 方向键:大幅移动视图
- Page Up / Page Down:改变模拟延迟
- +/-, 小键盘 +/-:放大/缩小
- Home/小键盘 Home:视图居中
- F9:打开视图设置对话框
- Shift + 左键单击:
- 车辆:开始追踪
- 重路由器:改变 routeProbReroute 概率
- 双击:停止追踪
- Ctrl + J:切换 '显示交叉口形状'
- Ctrl + K:切换 '显示辅助边形状'(使用选项 --alternative-net-file 加载)
对象属性 / 右键功能#
右键单击模拟对象可以访问附加信息:
- 复制对象 ID
- 对象参数对话框(菜单项 显示参数)
- 位置信息(x,y 和 lat,lon)
- 选择/取消选择对象
可以通过右键单击访问以下对象:
- 车辆(某些属性仅在使用特定模拟模型时可用,例如 MESO 或 子车道模型)
- 人员
- 车道
- 交叉口
- 交通信号灯(通过点击绿色/红色条)
- 检测器
- 重路由器
- 可变限速标志
- 兴趣点 (POI)
- 多边形
-
模拟(通过点击没有其他对象的背景)。也可以通过点击
按钮访问。Note
模拟参数包括通过详细输出可获得的所有值,例如出发、运行和到达的车辆。它还包括网络统计信息,例如边和节点的数量。
以下附加功能可通过右键单击获得:
-
追踪移动(车辆和人员)
Note
可以通过双击或上下文菜单禁用追踪。
- 激活附加可视化(人员和车辆)
- 为车辆选择冲突对象(车辆)。需要将车辆着色设置为 按选择 才能可见
- 关闭交通(边和车道)
- 设置限速(可变限速标志)
- 切换程序(交通信号灯)
- 可视化信号计划(交通信号灯)
绘制对象属性#
所有对象都支持其上下文菜单中的 显示参数 项。这将打开一个表格形式的对话框,如下所示:

列出的每个属性或通用参数都伴随以下符号之一:
: 属性不改变
: 属性可能改变但无法绘制
: 属性可能改变并且可以绘制。左键单击绘图符号将打开一个绘图窗口。
一个绘图窗口(加速度随时间变化)如下所示:

点击额外的属性绘图符号会打开新的绘图窗口。通过激活 '多图' 复选框,任何额外的属性绘图将被添加到该绘图窗口中,而不是打开新的绘图窗口。
当鼠标在绘图窗口上移动时,最接近鼠标光标的绘图点会高亮显示,其 x 和 y 值以蓝色打印在绘图轴上。
选择对象#
sumo-gui 允许选择任意的网络元素,如边、车道和交叉口,这些可以保存到文件中(也可以从文件加载)以供进一步处理。选择可以通过在元素的上下文菜单(右键单击)中选择 "添加到选中项" 或在按住 "Control" 键的同时左键单击元素来完成。
选中的元素可以保存/加载,并在编辑菜单中的 "编辑选中项" 对话框中查看。列表包含 objectType:objectId 形式的条目,每个条目占一行:
edge:someEdge
edge:someOtherEdge
junction:myJunction
大多数网络对象可以根据其选择状态进行着色(按选择着色),选中的网络元素可以在 netedit 中作为组进行操作。
自动加载选择#
通过设置选项 --selection-file FILE,可以在启动时将如上所述的选择文件提供给 sumo-gui。 在模拟开始时加载的任何对象都将立即被选中。 任何未在模拟开始时加载的人员、车辆或容器将在稍后模拟时间加载时被选中。
定位对象#
所有模拟对象都可以通过其 ID 使用定位对话框
进行定位。点击此按钮会打开一个用于选择对象类型的子菜单。以下类型可用:
选择对象类型后,会打开一个对话框,提供一个文本框用于输入对象 ID。对象搜索在输入第一个字符后开始,直到找到以这些字符开头的对象 ID。一旦在对象列表中被选中,视图可以居中于该对象。
隐藏未选中项 按钮将对象列表限制为该类型的选中对象。主菜单栏中的 定位菜单 还包含一个复选框,用于切换是否在对象定位器对话框中列出内部边和内部交叉口。
截图#
当前视图可以通过按合适的按钮
从 sumo-gui 内部捕获为光栅或矢量图像文件(称为快照)。如果矢量图像文件类型不可用,则表示此功能在构建过程中未被激活。
影响模拟#
目前,从 GUI 可以进行的交互是有限的。这在未来会改变(见下文)。
切换交通信号灯#
通过右键单击交叉口的彩色条,弹出菜单允许在所有已加载的信号计划之间切换。特殊程序 off 始终可用,可用于将交叉口切换为优先交叉口。
关闭和打开边和车道#
通过右键单击车道,可以通过选择选项 关闭车道 或 关闭边 来关闭每条车道(或相应的边)的所有交通(vClass 为 authority 和 ignoring 的除外)。同样,可以通过选择 重新打开车道 或 重新打开边 来重新开放车道或边供交通使用。
缩放交通量#
顶部菜单栏中的 '缩放交通' 输入允许上下缩放交通量。这与 sumo 选项 --scale 的工作方式相同。任何加载的流量的频率/概率按比例缩放,任何新加载的车辆也将被缩放。
设置车辆速度因子#
当追踪车辆时(在车辆上 Shift-单击或车辆上下文菜单选项 '开始追踪'),会显示一个新的 speedFactor 滑块。 该滑块允许将 speedFactor 设置为 0 到 2 之间的值。
设置重路由器概率#
当加载带有 routeProbReroute 定义的重路由器时,方向箭头将显示在可用路线分叉的地方。在重路由器图标或方向箭头上 Shift-单击会将 100% 概率设置给其中一个可用路线。重复单击将在路线之间循环,并再次将 100% 设置给一条路线。
启动和停止车辆#
从车辆上下文菜单中,可以使当前车辆停止(在最早可能的位置以最大减速度)。如果车辆当前已停止,也可以使其中止当前停止。
移除车辆#
从车辆上下文菜单中,可以从模拟中移除当前车辆。
激活检测器#
以下检测器支持从其上下文菜单覆盖检测:
- 感应线圈 (e1Detector):覆盖将检测时间设置为 0(就像有车辆停在检测器上一样)
- 车道区域检测器 (e2Detector):覆盖将车辆数设置为 1
如果覆盖处于活动状态,上下文菜单允许重置覆盖。
覆盖检测可以影响交通信号灯的运行(类型为 'actuated' 和 'NEMA')。为此,使其检测器可见很有用。
计划中的交互#
未来计划为探索性模拟提供更多交互:
- 动态更改模拟选项(例如 --scale, --time-to-teleport, ....)
- 添加交通
- 更改车辆或车辆类型参数
- 测试 TraCI 函数调用
理解您所看到的内容#
路权#
在每条车道的末端和交叉口的起点,有一个小的彩色条,表示路权。当一条车道有多个目标车道时,该条会分成更小的部分,每个部分指示一个连接的规则。颜色定义如下:
- FOO 交通信号灯,绿灯相位,车辆有路权
- FOO 交通信号灯,绿灯相位,车辆必须让行某些车流
- FOO 交通信号灯,红灯相位,车辆必须等待
- FOO 交通信号灯,红/黄灯相位,表示即将变绿,车辆必须等待
- FOO 交通信号灯,黄灯相位,车辆应尽可能停车
- FOO 交通信号灯,关闭/闪烁,车辆必须让行
- FOO 交通信号灯,关闭/无信号,车辆有路权
- FOO 无控制,车辆有路权
- FOO 无控制,车辆必须让行某些车流
- FOO 无控制,右侧优先规则,所有车辆让行最右侧进入车道
- FOO 无控制,停车标志/受控,右转箭头,车辆必须停车然后让行
- FOO 无控制,全向停车,所有车辆必须停车然后按到达顺序行驶
- FOO 无控制,拉链式,车辆必须执行拉链式并道
- FOO 死胡同,车辆不得驶入
- FOO 可疑死胡同,存在出边但车辆无法继续前往任何地方
Note
如果车辆在模拟中刹车,可以通过以下步骤直接识别负责的冲突车辆(如果有的话):
- 将车辆着色设置为 按选择 着色
- 右键单击刹车车辆,然后单击 选择冲突对象 冲突车辆将被着色为选择颜色(通常为蓝色)。
道路访问权限#
道路访问权限 是构建多模式场景的重要工具。为了更好地理解道路网络配置,有多种方法支持根据权限进行着色。
默认着色#
默认着色方案(统一)旨在以现实的方式为道路着色,并显示一些基本的访问权限。道路颜色具有以下含义:
- FOO 人行道 (
allow="pedestrian") - FOO 自行车道 (
allow="bicycle") - FOO 公交车道 (
allow="bus") - FOO 水道 (
allow="ship") - FOO 关闭的车道 (
allow="authority") - FOO 禁止通行的边(所有车道上
disallow="all") - FOO netedit 中的绿色草坪 (
disallow="all") - FOO sumo-gui 中不可见的绿色草坪 (
disallow="all") - FOO 道路上的轨道
- FOO 任何不允许乘用车通行的事物
- FOO 任何其他事物
按 权限代码 着色#
每种可能的访问权限组合都由一个唯一的数字代码表示。每条车道的代码可以从车道参数对话框(权限代码)中获取。车道着色方案 权限代码 允许为每个代码分配一个单独的颜色。这可以用于根据用户需求进行任意着色(默认着色方案可以被视为这种着色类型的特例)。
显示特定车辆类别的权限#
为了调查网络中的连通性,快速高亮允许特定车辆类别的车道通常很有用。这可以通过主菜单完成,选择 编辑->选择允许...的车道->所需的车辆类别。
这会将当前选择更改为允许指定车辆类别的所有车道的集合,并将着色方案更改为 按选择着色。所有允许所选车辆类别的车道将以蓝色显示(默认情况下)。
连通性#
在每个交叉口,所有允许穿越交叉口的进入车道都有一个或多个白色箭头,以显示允许的行驶方向。但是,这些箭头只提供部分信息,因为每条车道可能比箭头数量有更多的连接。例如,当一条车道在交叉口后指向同一边上的两条车道时,即使存在两个不同的连接,也只会绘制一个箭头。
- 要查看所有连接,请激活交叉口可视化选项 显示车道到车道连接。连接线的颜色对应于路权的颜色。
- 交叉口的每个连接都有一个从 0 开始的唯一下标,围绕交叉口顺时针排列。这些下标可以使用交叉口可视化选项 显示链接交叉口下标 来显示。
- 每个由交通信号灯控制的连接都有一个关于该信号灯的唯一下标。默认情况下,每个交通信号灯控制一个交叉口,这些下标与上面提到的 链接交叉口下标 相同。在控制多个交叉口的联合交通信号灯的情况下,下标是不同的。此外,下标可以由用户自由定制(例如,定义信号组)。这些下标使用交叉口可视化选项 显示链接 tls 下标 来显示。
检查连通分量#
您可以通过右键单击车道,然后使用 '选择可达项' 菜单选项,显示从特定车道可达的所有网络组件。会打开一个新菜单,您必须在其中选择要检查的车辆类别。选择车辆类别后,所有可达车道将被添加到车道选择中,边着色模式将设置为 '按选择着色'。 因此,所有可达车道将显示为蓝色,所有不可达车道将显示为灰色。
按可达性着色#
使用'选择可达项' 功能后,您也可以将边着色模式设置为 '按可达性着色'。 这将根据从起点到达该边的行驶时间为每条边着色。 以下着色选项在这方面很有用:
- 重新校准彩虹:将颜色配置为遇到的行驶时间的数据范围
- '隐藏低于阈值' (0):将不可达边显示为灰色,因为它们的值设置为 -1。(必须在使用 '重新校准彩虹' 之前激活)
- '显示边颜色值':显示每条边的实际行驶时间
- 禁用 '恒定文本大小' 用于 '显示边颜色值':在缩小时避免显示混乱
模拟模式/模型:微观还是中观?子车道?#
- 在中观模拟下:无法选择/显示车道。通过右键单击边或进一步选择 "显示参数" 将显示 "段" 信息(参见下面的示例图像)。
- 在微观模拟下:当图标 "查看工具提示" 被切换时,每条车道 ID 可以通过鼠标悬停显示。 每条车道都可以被选择。
- 如果使用了特定模型,例如子车道和 IDM,可以通过右键单击道路使用者(车辆、行人、火车...)并进一步选择 "显示参数" 来查看相应信息。
更改模拟的外观/可视化#
视图设置菜单允许更改和自定义模拟的外观和可视化。要打开可视化设置,请使用视图顶部菜单栏中的
。
要自定义模拟,可以进行更改,例如背景着色、街道和车辆外观以及 POI 的可视化。此外,可以将设置保存到注册表(
。
当前设置文件显示在视图设置窗口顶部栏的下拉菜单中,您可以在其中切换回默认设置。
常见可视化设置#
不同的模拟对象(如车辆、车道、人员和检测器)有单独的设置。有些选项适用于所有(或大多数)这些对象:
- 大小选项
- 放大倍数:绘制更大的对象以使其更可见
- 最小尺寸:不绘制小于最小尺寸的对象
- 缩小时以恒定大小绘制:缩小时自动增加绘制大小以保持视觉大小恒定。
- ID 选项
- 显示 ID:启用绘制对象 ID
- 恒定文本大小:切换视觉文本大小在缩放时是否保持恒定
- 大小:绘制的 ID 大小
- 颜色:绘制的 ID 颜色
- 背景:绘制的 ID 背景颜色
- 显示名称:显示可选名称(使用 'name' 属性或 'name'
<param>)
- 着色选项:按某些属性着色并更改颜色值/范围
- 显示颜色值:显示用于着色的数值(文本配置选项与 ID 相同)
车辆可视化设置#
车辆形状方案#
| 名称 | 描述 |
|---|---|
| triangle | 所有车辆均为三角形 |
| boxes | 所有车辆均为方形 |
| simple shapes | 所有车辆具有简单的汽车形状 |
| raster images | 所有车辆都使用为其类型加载的位图绘制,使用属性 imgFile(使用 简单形状 作为后备) |
Note
当使用 imgFile 作为形状时,必须在 视图设置 菜单中选择车辆显示为 "光栅图像"。
车辆着色方案#
| 名称 | 度量 | 描述 |
|---|---|---|
| given vehicle/type/route color | - | 车辆定义中给定的颜色,后备为类型颜色,再后备为路线颜色 |
| uniform | - | 所有车辆统一着色 |
| given/assigned vehicle color | - | 车辆定义中给定的颜色 |
| given/assigned type color | - | 车辆类型定义中给定的颜色 |
| given/assigned route color | - | 车辆路线定义中给定的颜色 |
| depart position as HSV | - | 每个车辆的出发位置,相对于网络中心,用于为车辆着色。方向用作 H(ue),距中心的距离用作 S(aturation),V(alue) 始终为 1。 |
| arrival position as HSV | - | 每个车辆的到达位置,相对于网络中心,用于为车辆着色。方向用作 H(ue),距中心的距离用作 S(aturation),V(alue) 始终为 1。 |
| direction/distance as HSV | - | 车辆出发位置和到达位置之间的方向和距离,用于为车辆着色。方向用作 H(ue),距中心的距离用作 S(aturation),V(alue) 始终为 1。 |
| by speed | m/s | 当前车速 |
| by action step | - | 当前步骤中的操作,下一个停止点或其他情况 |
| by waiting time | s | 车辆停止的时间 |
| by accumulated waiting time | s | 车辆最近停止的总时间(默认:过去 300 秒内) |
| by time since last lanechange | s | 自上次变道以来的时间。颜色也表示上次变道的方向(负值表示向右变道)。 |
| by max speed | m/s | 车辆的最大速度 |
| by CO2 emissions | g/s | 车辆当前排放的 CO2 量 |
| by CO emissions | g/s | 车辆当前排放的 CO 量 |
| by PMx emissions | g/s | 车辆当前排放的 PMx 量 |
| by NOx emissions | g/s | 车辆当前排放的 NOx 量 |
| by HC emissions | g/s | 车辆当前排放的 HC 量 |
| by fuel consumption | l/s | 消耗的燃料 |
| by electricity consumption | kWh/s | 消耗的电量(仅适用于电动汽车) |
| by noise emissions | dbA | 车辆产生的噪音 |
| by reroute number | count | 该车辆已被重新路由的次数 |
| by selection | - | 为选中和未选中的车辆着色不同 |
| by offset from best lane | count | 车辆为遵循其路线必须立即执行的变道次数 |
| by acceleration | m/s^2 | 当前车辆加速度 |
| by time gap | s | 假设速度恒定,与前导车辆碰撞的时间 |
| by depart delay | s | 实际插入时间与预定出发时间之间的差异 |
| by time loss | s | 自出发以来因行驶速度低于期望速度而造成的总时间损失 |
| by stop delay | s | 下一个(或当前)公共交通站点的出发延迟(定义了 'until' 时间) |
| by stop arrival delay | s | 下一个(或当前)公共交通站点的到达延迟(定义了 'arrival' 时间) |
| by lateral speed | m/s | 车辆的横向速度 |
| by param (numerical) | value | 给定车辆、设备或模型 参数的数值 |
| random | - | 随机车辆颜色 |
| by angle | - | 按车辆的航向角着色 |
切换项#
- 显示转向灯/刹车灯
- 显示刹车距离
- 显示路线索引:当在车辆上下文菜单中激活 显示路线 时,每个高亮显示的边都标注了其在路线中的索引(允许分析循环路线)
- 显示停车信息:当在车辆上下文菜单中激活 显示路线 时,车辆标注了失败的停车尝试次数,每个停车区域标注了最后的目标选择分数
- 显示最小间距
- 显示 蓝牙范围
- 随几何形状缩放长度(参见 长度-几何不匹配)
缩放#
车辆大小受以下功能影响:
- 放大倍数:设置一个恒定的缩放因子
- 缩小时以恒定大小绘制:增加车辆大小(相对于道路网络),从而在缩小时保持可见 也可以根据其属性缩放车辆大小。
- 缩放大小:选择按给定属性(例如速度)缩放。用户可以配置一个缩放因子表,对应于数值列表(带自动插值)。这类似于颜色插值。
- 随几何形状缩放长度:在边长度值不匹配的网络中(例如,给定的长度值大于从几何形状导出的值),禁用此选项会产生差异 - 车辆可以绘制得比其在车道上实际延伸的长度更长/更短。
文本注释#
支持以下文本注释:
- vehicle id:渲染车辆 ID,如果定义了 'line' 属性,也会渲染
- vehicle color value:形成着色基础的数值(例如速度)被渲染
- vehicle scale value:形成缩放基础的数值(例如加速度)被渲染。仅对文本值激活缩放并将缩放因子设置为 1 可能很有用。
- Vehicle text param:渲染车辆上设置的任何通用参数。这也支持通过 TraCI 访问的任何虚拟参数
每个文本都可以配置其大小、颜色和背景颜色。通过激活选项 仅限选中项,文本注释将仅限于具有 选中 状态的车辆。
边/车道可视化设置#
表 2.1 车道着色方案
| 名称 | 度量 | 描述 |
|---|---|---|
| uniform | - | 所有道路边使用相同颜色绘制。自行车道为棕色,人行道为灰色,禁止通行的车道(不允许任何车辆类别)为透明。 |
| by selection (lane-/streetwise) | - | 选中的车道与未选中的车道绘制不同 |
| by permission code | - | 所有车道根据允许的车辆类别着色。每条车道的代码可以从车道参数对话框(权限代码)中获取。 |
| by allowed speed (lanewise) | m/s | 该车道允许的最大速度 |
| by current occupancy (lanewise, brutto) | % / 100 | 车辆覆盖的空间量(包括 minGap) |
| by current occupancy (lanewise, netto) | % / 100 | 车辆覆盖的空间量(不包括 minGap) |
| by first vehicle waiting time (lanewise) | s | 车道上第一辆车等待的时间 |
| by lane number (streetwise) | - | 该边拥有的车道数 |
| by CO2 emissions | g/s | 每米车道的平均 CO2 排放量 |
| by CO emissions | g/s | 每米车道的平均 CO 排放量 |
| by PMx emissions | g/s | 每米车道的平均 PMx 排放量 |
| by NOx emissions | g/s | 每米车道的平均 NOx 排放量 |
| by HC emissions | g/s | 每米车道的平均 HC 排放量 |
| by fuel consumption | l/s | 每米车道的平均燃料消耗量 |
| by electricity consumption | kWh/s | 每米车道的平均电量消耗量 |
| by noise emission | dBa | 车道上车辆产生的噪音 |
| by global travel time | s | 从权重文件加载的该边上的行驶时间 |
| by global speed percentage | % | 根据从加载的权重文件中的行驶时间,该边允许的最大速度的分数 |
| by given length/geometrical length | 几何长度与用户指定的边长度不同的因子 | |
| by angle | 从起点到终点测量的边的角度(不包括中间几何形状) | |
| by loaded weight | 使用选项 --weight-files, --weight-attribute 加载的值 | |
| by priority | 网络构建期间使用的路权优先级 | |
| by height at start | m | 车道起点的 z 坐标 |
| by height at segment start | m | 每个几何段起点的 z 坐标 |
| by inclination | % | 车道起点和终点之间每米的平均高度变化 |
| by segment inclination | % | 每个几何段起点和终点之间的平均高度变化 |
| by average speed | m/s | 车道上车辆的平均速度 |
| by average relative speed | % | 车道上车辆的平均速度占允许速度的百分比 |
| by routing device assumed speed | m/s | 重路由设备计算的平均速度 |
| by insertion backlog | 当前因插入而延迟在车道上的车辆数 | |
| by TAZ | 按该边所属的 TAZ 颜色着色(如果加载了带颜色的 TAZ) | |
| by param (numerical, streetwise) | 按下拉列表中所有已知边参数配置的边参数着色。 | |
| by param (numerical, lanewise) | 按下拉列表中所有已知车道参数配置的车道参数着色。 | |
| by edgeData (numerical, streetwise) | 按下拉列表中所有已加载 edgeData 属性配置的 edgeData 属性着色。 | |
| by edgeData (numerical, streetwise) | 按下拉列表中所有已加载 edgeData 属性配置的 edgeData 属性着色。 | |
| by distance (kilometrage) | m | 边起点处的里程值(负值表示里程下降) |
| by abs distance (kilometrage) | m | 边起点处的里程值 |
| by reachability (traveltime) | s | 从最近使用的 '选中可达性' 位置到达该边的行驶时间 |
| by thread index | 计算该车道的线程索引(使用选项 --threads 运行时) | |
| free parking spaces | 该边上的空闲 parkingArea 空间总数 | |
| by live edgeData | 按当前模拟中正在记录的选定 meanData id 的选定属性值着色(通过两个下拉列表配置) |
表 2.2 车道缩放方案
| 名称 | 度量 | 描述 |
|---|---|---|
| by selection (lane-/streetwise) | - | 选中的车道与未选中的车道绘制不同 |
| by allowed speed (lanewise) | m/s | 该车道允许的最大速度 |
| by current occupancy (lanewise, brutto) | % / 100 | 车辆覆盖的空间量(包括 minGap) |
| by current occupancy (lanewise, netto) | % / 100 | 车辆覆盖的空间量(不包括 minGap) |
| by first vehicle waiting time (lanewise) | s | 车道上第一辆车等待的时间 |
| by lane number (streetwise) | - | 该边拥有的车道数 |
| by CO2 emissions | g/s | 每米车道的平均 CO2 排放量 |
| by CO emissions | g/s | 每米车道的平均 CO 排放量 |
| by PMx emissions | g/s | 每米车道的平均 PMx 排放量 |
| by NOx emissions | g/s | 每米车道的平均 NOx 排放量 |
| by HC emissions | g/s | 每米车道的平均 HC 排放量 |
| by fuel consumption | l/s | 每米车道的平均燃料消耗量 |
| by electricity consumption | kWh/s | 每米车道的平均电量消耗量 |
| by noise emission | dBa | 车道上车辆产生的噪音 |
| by global travel time | s | 从权重文件加载的该边上的行驶时间 |
| by global speed percentage | % | 根据从加载的权重文件中的行驶时间,该边允许的最大速度的分数 |
| by given length/geometrical length | 几何长度与用户指定的边长度不同的因子 | |
| by angle | 从起点到终点测量的边的角度(不包括中间几何形状) | |
| by loaded weight | 使用选项 --weight-files, --weight-attribute 加载的值 | |
| by priority | 网络构建期间使用的路权优先级 | |
| by average speed | m/s | 车道上车辆的平均速度 |
| by average relative speed | % | 车道上车辆的平均速度占允许速度的百分比 |
除了车道/边着色外,还可以显示车道边界、链接装饰、轨道、边名称、街道名称、内部边名称,并隐藏宏连接器。边名称以及街道和内部边名称将始终缩放到所选大小,无论选择哪个缩放步骤。
加载形状和兴趣点#
多边形形状和兴趣点 (POI) 可以在 .sumocfg 配置文件中加载,也可以通过 文件 菜单中的 打开形状 选项交互式加载。
形状和 POI 可以根据其唯一 ID 定位,其外观也可以自定义。
显示背景图像#
除了更改模拟结构的外观外,还可以将额外的背景图像("装饰")加载到 sumo-gui 中。为此,使用
打开可视化设置,如果还没有到那里,请选择 "背景" 面板(见下图)。您将看到一个包含以下列的表格:file、centerX、centerY、width、height、rotation、layer 和 relative。

装饰 GUI。
现在,如果您点击 "图片文件" 列的第一行,应该可以输入图像文件的完整路径。按 RETURN 确认路径应强制 sumo-gui 加载并显示该文件,位于道路网络下方,如图所示:

背景图像(装饰)示例。
目前,sumo-gui 可以加载 .gif、.png、.jpeg 和 .bmp 文件。如果构建时支持 gdal,则也可以使用其他格式,如 .tif。
现在,您可以使用 centerX、centerY、width、height 和 rotation 列来定位/拉伸/旋转图像。
当将 relative 列设置为 1 时,位置和大小值将被视为屏幕相对像素值,而不是网络相对米值。
对齐装饰后,可以使用对话框中的 "保存装饰" 按钮保存它们。同样,可以通过按 "加载装饰" 按钮加载先前保存的装饰。
在 XML 中定义装饰时,单行如下所示:
<decal file="background.gif" centerX="550.00" centerY="1530.00" width="64.00" height="64.00" rotation="0.00"/>
支持以下属性
| 属性名称 | 值类型 | 描述 |
|---|---|---|
| file | 路径 (字符串) | 图片文件,背景图像的全名 |
| centerX | 浮点数 | 中心 x,图像中心在坐标系中的 x 位置(以米为单位) |
| centerY | 浮点数 | 中心 y,图像中心在坐标系中的 y 位置(以米为单位) |
| width | 浮点数 | 图像在坐标系中的宽度(以米为单位) |
| height | 浮点数 | 图像在坐标系中的高度(以米为单位) |
| rotation | 浮点数 | 图像的角度(以度为单位) |
| layer | 浮点数 | 图像绘制的图层,距地面的高度(以米为单位) |
| screenRelative | 布尔值 | 相对,位置和大小是相对于屏幕的像素坐标,而不是网络坐标 |
| centerZ | 浮点数 | 对象中心在坐标系中的 z 位置(以米为单位),仅在 3D 可视化中使用,代替 layer |
| tilt | 浮点数 | 对象的倾斜角度,仅在 3D 可视化中使用 |
| roll | 浮点数 | 对象的滚动角度,仅在 3D 可视化中使用 |
Note
装饰配置的内容也可以嵌入到视图设置文件中,从而在启动时加载。参见配置文件
Note
当加载具有嵌入地理参考的图像文件(例如 GeoTIFF)并且模拟网络也具有地理参考时,图像将自动定位。
Caution
当加载带有关联世界文件的图像时,该文件必须以 WGS84 (lon,lat) 编码。
Note
网络的背景图像可以使用 tileGet 工具 或使用 osmWebWizard 下载。
透明度#
可视化中的所有图像文件都支持透明度。对于车辆、pois 和多边形,可以通过 TraCI 更改颜色并设置 alpha 通道来动态设置此透明度。
所有设置了颜色的对象(通过输入文件或可视化设置)都支持 (红,绿,蓝,Alpha) 颜色值。
3D 特定设置#
场景由定向光源("太阳")照亮。光颜色源自灰度范围,可以通过 3D 特定的可视化设置进行更改。太阳亮度值范围从 0(=黑色)到 255(=白色),代表灰度漫射光。环境光值是漫射光的一半。
3D 场景背景颜色可以设置为任何 RGB 颜色。OSG 标准背景颜色为 (51,51,102)。
此外,可以设置交通信号灯相关项目的可见性(参见自动生成的 3D 环境)。
配置文件#
sumo-gui 使用与 SUMO 相同的配置文件。可以通过调用 sumo --help 获取识别的选项,或者通过调用 sumo --save-template <file> --save-commented 保存具有默认设置的配置文件。
GUI 类别中的选项特定于 sumo-gui
- --gui-settings-file(快捷方式 -g)允许加载先前保存的 gui-settings 文件(见下文)
- -S, --start:打开 GUI 后立即启动模拟(无需点击 开始 按钮)
- -Q, --quit-on-end:模拟结束后关闭 GUI
- -d, --delay:设置初始模拟延迟以防止模拟运行过快
- --window-size WIDTH,HEIGHT:设置初始窗口大小(默认情况下恢复先前的大小)
- --window-pos X,Y:设置初始窗口位置(默认情况下恢复先前的位置)
下面显示了一个加载 gui 设置的 sumo 配置:
example.sumocfg
<configuration>
<net-file value="yournetwork.net.xml"/>
<gui-settings-file value="viewsettings.xml"/>
</configuration>
您可以使用 打开模拟 对话框加载 example.sumocfg,或使用命令行 sumo-gui -c example.sumocfg。
您可以使用 XML 模式定义文件来设置 sumo-gui 配置: sumoConfiguration.xsd。****
GUI 设置文件#
在 视图设置 对话框中配置的所有设置都可以保存到文件中,并在新的模拟中重复使用。我们将此类文件称为 gui-settings 文件。此类文件还可以包含有关断点、tls 追踪器、截图、模拟延迟和背景图像的信息。
获取 gui-settings 文件的最简单方法是通过 视图设置 对话框
。只需修改设置并保存
。
请注意,通过这种方式获得的 gui-settings 文件仅在保存前激活了相应的复选框时才包含有关视口(缩放和偏移)、延迟、断点和装饰的信息。
viewsettings.xml
<viewsettings>
<scheme name="...">
...
</scheme>
<viewport zoom="200" x="100" y="-100" angle="0.00"/>
<delay value="42"/>
<decal file="background.gif" centerX="550.00" centerY="1530.00" width="64.00" height="64.00" rotation="0.00"/>
<breakpoint value="42"/>
<breakpoint value="1337"/>
</viewsettings>
最小设置文件#
可以通过名称单独引用预定义的方案:
<viewsettings>
<scheme name="real world"/>
</viewsettings>
名称可以是 "原生" 方案之一("standard", "real world", ...)或用户存储在注册表中的任何方案。
断点#
有多种方法可以加载预定义的断点。
断点元素可以直接包含在 gui-settings 文件中:<breakpoint value="1337"/>
或者,可以在 gui-settings 文件中指定断点文件定义:
<viewsettings>
...
<breakpoints-file value="breakpoints.txt"/>
</viewsettings>
断点文件应每行包含一个时间值。 可以通过在 gui 中设置断点并使用保存菜单选项(编辑->编辑断点->保存)来获取适合加载断点的文件。
另一种设置断点的方法是使用 sumo 选项 --breakpoints 加载逗号分隔的时间值列表(快捷方式 -B)。这绕过了对 gui-settings 文件的需求。
TLS 追踪#
一个或多个交通信号灯的TLS 相位追踪器可以在模拟开始时通过加载以下形式的项来打开
<viewsettings>
...
<tracker tl="TLSID"/>
</viewsettings>
截图#
可以通过向配置添加元素在预定时间截取屏幕截图:
<viewsettings>
<snapshot file="myScreenshot.png" time="42"/>
</viewsettings>
其他视图设置#
3D 场景光照可以通过以下方式定义(支持索引 0 - 9):
<light index="0" centerX="671.02" centerY="639.20" centerZ="200"/>
多视图#
使用 (
)-按钮,可以为同一模拟打开多个查看窗口。可视化设置可以为每个视图独立设置。查看窗口可以使用主菜单栏中的 窗口 菜单进行管理。
当向 sumo 选项 --gui-settings-file 传递多个文件时,模拟开始时会为每个文件打开一个查看窗口。
3D 可视化#
当 sumo-gui 使用 OpenSceneGraph (OSG) 支持编译时,会出现一个额外的 (
)-按钮以打开新的 3D 视图。用于测试的预编译 Windows 版本可在此处获取here。可选地,通过提供命令行选项 --osg-view true,sumo-gui 会在启动时打开 3D 视图。
3D 视口#
3D 场景的视图可以使用两种方法更改:相机可以通过鼠标和键盘移动,或者视图可以在视口对话框中定义。下表总结了可用于控制视图的鼠标操作和按键。
| 名称 | 描述 |
|---|---|
F |
在 terrain 和 ego 相机操纵器模式之间切换(默认:terrain) |
Up arrow |
沿视图方向移动 |
Down arrow |
远离视图方向移动 |
Left arrow |
向左横向移动 |
Right arrow |
向右横向移动 |
| LMB drag | 在 terrain 模式下移动位置 |
| MMB drag | 在 terrain 模式下旋转视图(以视图目标为枢轴点) |
| RMB drag | 在 terrain 模式下缩放视图 |
| Mouse movement | 在 ego 模式下旋转视图(以眼睛位置为枢轴点) |
使用
按钮打开视口编辑器。相机位置本身列在左列,而右侧的 "LookAt" 坐标定义了要查看的目标。"LookAt" 坐标由 OSG 自动归一化为长度 1。
与网络元素和车辆的交互方式与 2D 视图中相同:通过在对象上右键单击可获得上下文相关的选项。
渲染统计信息#
OSG 通过按 I 键在 3D 视图顶部绘制一些渲染统计信息(例如每秒帧数)。多次按该键将显示不同的统计信息,最后再次隐藏它们。
自动生成的 3D 环境#
只有一部分常规网络组件已移植到 3D 视图(目前)。当前显示以下内容:
- 边(带人行道路缘石)
- 交叉口
- 行人过街处
- 交通信号灯
自动生成的交通信号灯有不同的变体,可以通过 3D 部分的 GUI 设置独立显示/隐藏:
- 停止线上方的气泡,根据其所属的连接改变颜色
- 带有杆和信号的详细模型(对于大型道路是悬臂梁或信号桥;单个行人信号放置在街道对面)

半自动 3D 交通信号灯#
除了自动生成的交通信号灯外,还可以选择在网络中的自定义位置和方向放置一个位于杆上的单个交通信号灯。装饰表将文件列中的以下魔法条目解释为单个交通信号灯:tl:<TL_ID>:<TLLINKINDEX>。当前信号状态将根据交通信号灯 <TL_ID> 的 tlLinkIndex <TLLINKINDEX> 相应更新。
添加 3D 对象#
静态模型#
可以通过 GUI 设置的装饰表加载单个 3D 对象。 OSG 支持的文件格式(例如 obj, 3ds)的 3D 对象文件将加载到场景中,并使用装饰表中的偏移值进行定位。对于大型场景,构建一个包含 sumo-gui 中使用的所有元素(例如建筑物)的单个 3D 对象可能是有利的。
此外,可以加载与 2D 视图中相同的背景图像。
车辆模型#
一些基本的车辆模型随 SUMO 一起在 data/3D 目录中提供。自定义车辆模型可以在相应车辆类型的 osgFile 属性中指定(参见车辆类型)。如果无法使用自定义模型,则会被替换为指向行驶方向的圆锥形状。
限制#
Caution
3D 可视化仍处于试验阶段
- 没有行人和自行车模型
- 模拟多辆车辆时存在性能问题
- 重新加载会使先前的 3D 场景保留在原处
可视化边相关数据#
多个应用程序为一个或多个时间间隔生成边相关度量。
- edgeData 输出文件
- 由 randomTrips.py 使用选项 --weights-output-prefix 生成的边概率文件
- marouter 网络负载输出
- 运行 sumo 时使用选项 --device.rerouting.output 生成的来自 device.rerouting 的平滑行驶时间。
- countEdgeUsage.py
- edgeDataFromFlow.py 将检测器计数转换为 edgeData
- routeSampler.py 使用选项 --mismatch-output 写入实现的计数以及与输入计数的差额
- netedit 可用于创建和修改 edgeData 文件
这些文件可以与 duarouter 和 sumo 一起使用以影响车辆路由。
sumo-gui 还可以可视化包含的数据,以查看各种交通度量随时间的变化(无需同时运行模拟)。
加载数据#
可以通过设置选项 --edgedata-files 来加载用于可视化的 edgedata 文件。 以此方式加载时,模拟结束时间将自动调整到数据范围的末尾。
也可以在 sumo-gui 中从菜单使用 文件->打开 EdgeData 加载 edgedata 文件。
所有属性都将被加载,并可以在街道可视化设置中选择。
使用实时数据#
代替从文件加载数据,您可以可视化模拟当前正在收集的聚合数据。
为此,您需要将着色设置为 '按 live edgeData',并选择已配置的 edgeData(或 laneData)元素的 ID。
这将始终显示当前聚合间隔(因此收集的数据在新间隔开始时重置为 0)。通过使用选项 --edgedata-output FILE 或 --lanedata-output FILE,您可以快速配置在整个模拟过程中聚合的数据收集。
按数据着色#
要利用加载的数据,必须在可视化设置对话框中将街道着色设置为 按 edgeData 着色。 重新校准彩虹 按钮可用于生成一个着色方案,该方案跨越所选属性的加载数据范围。
Note
在 gui-settings 对话框中,'重新校准彩虹' 函数可用于使着色适应当前属性的数据范围。
Note
edgeData 是基于时间的,因此只有当模拟时间推进到相应数据间隔的开始时间时才会显示。确保在使用 重新校准彩虹 之前将模拟推进到时间 0(步进一次)或用于生成 edgeData 的任何开始时间。要查看更多数据帧,请使用延迟或断点推进模拟。
定义着色方案时,可以始终为缺失数据配置专用颜色('无数据')。
按数据缩放#
要利用加载的数据来增加道路的视觉宽度,必须在可视化设置对话框中将街道缩放设置为 按 edgeData 缩放宽度。选择缩放方案后,属性选择元素变为活动状态,该元素列出所有可用的 edgeData 属性,必须用于选择所需的缩放属性。
使用示例#
可视化形状和兴趣点#
在模拟视图中显示任意文本#
要在模拟视图中显示任意文本,最简单的方法是放置一个 alpha 通道为 0(不可见)的 poi 元素, 将其 type 属性设置为要显示的文本,并加载在所需颜色和大小下显示 poi 类型的 gui 设置。
<poi id="textPlacement0" type="my custom text" x="myX" y="myY" color="0,0,0,0"/>
要使用另一种文本大小或颜色,可以使用 poi 参数并在 "显示 poi 文本参数" 复选框旁边选择该参数:
<poi id="textPlacement2" x="myX2" y="myY2" color="0,0,0,0">
<param key="anykey" value="my custom text in another size or color"/>
<poi>
同样的技巧可以重复用于多边形。
您也可以使用 traci.simulation.writeMessage 将自定义消息放入底部消息窗口。
在模拟视图中显示自定义徽标#
背景图像(装饰)支持属性 screenRelative,以相对于屏幕而不是网络放置对象。这允许将徽标放置在固定位置。
显示路线和路线相关信息#
- 要在模拟中显示车辆的路线,请右键单击并选择 显示当前路线 或 显示所有路线。
- 要仅显示当前路线的剩余部分,请选择 显示未来路线。
- 即将到来的停靠点及其计划时间(或触发条件)会自动沿路线显示。要仅显示循环路线(例如公共交通)的下一轮,请禁用复选框 '显示循环路线'
- 轨道车辆的方向反转将沿路线显示,文本为 'reverse' 和一个索引。
- 要显示沿路线的每条边的索引,可以激活车辆可视化选项 '显示路线索引'
- 要显示人员的路线,请右键单击并选择 显示当前路线。要在步行区域上显示轨迹,请选择 显示步行区域路径。
- 要在模拟中高亮显示任意一组边,请创建一个选择文件并按选择对边着色
- 要可视化路线文件中的所有路线,请使用工具 Tools/Routes#route2poly.py 或 Tools/Routes#route2sel.py
- 要可视化到达或离开任何边的车辆数量,请使用工具 Tools/Routes\countEdgeUsage
调查内部边和车道#
内部边定义了穿越交叉口的运动。默认情况下,它们隐藏在交叉口形状后面,以提供更美观的可视化。有时,了解哪个内部车道对应哪个运动是很有意义的,因为它们的 ID 可能在输出或错误消息中被引用。以下可视化设置很有帮助:
- 交叉口设置:
- 禁用 绘制交叉口形状(使用快捷键 Ctrl + J 切换)
- 显示内部边名称
- 显示内部交叉口名称
- 显示链接交叉口下标(以查看 ID 和链接下标之间的对应关系)
- 边设置:
- 将宽度放大 0.1 倍(否则形状会重叠,难以理解)
- 按选择着色(为单个车道着色更容易理解内部交叉口前后的几何形状)
在对象定位器菜单中,激活 "显示内部结构" 复选框,以便它们出现在边和交叉口定位器对话框中。它们位于对象列表的末尾,因为它们的 ID 以 ':' 开头。
调查在交叉口处停止#
- 选择车辆可视化设置 "按选择着色"
- 右键单击车辆并激活 "选择冲突对象"
导致车辆停止或减速的冲突车辆将被高亮显示。
