You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取SUMO交通岛内部Edge ID及直观对比仿真结果

关于SUMO与sumolib的两个问题解答

1. 用sumolib获取交通岛内部Edge ID列表

要获取交通岛内部的Edge ID列表,核心是利用sumolib中Junction类的getInternalEdges()方法,操作步骤如下:

  • 读取路网文件得到Net对象
  • 通过交通岛对应的交叉口ID获取Junction实例
  • 调用getInternalEdges()获取内部Edge对象,遍历提取ID即可得到列表

示例代码:

import sumolib

# 读取路网文件
net = sumolib.net.readNet("your_network.net.xml")
# 替换为目标交通岛的交叉口ID
island_junction = net.getJunction("target_island_id")
# 提取内部Edge ID列表
internal_edge_ids = [edge.getID() for edge in island_junction.getInternalEdges()]

注:交通岛在SUMO中属于特殊类型的交叉口(Junction),其内部边会被归类为该交叉口的内部边。

2. 对比SUMO仿真场景结果的方法

简便直观的对比方式

使用SUMO自带的sumo-gui对比模式:

  • 打开sumo-gui后,通过File > Compare选项加载多个场景的输出文件(如tripinfo.xml、vehroute.xml)
  • 工具会分栏展示不同场景的仿真数据,可直观对比车辆路径、行程时间、延误等核心指标

多场景批量对比方案

当场景数量较多时,SUMO自带工具的可视化能力有限,建议自行编写Python脚本处理:

  • 用sumolib读取各场景的输出文件(如summary.xml、tripinfo.xml)
  • 提取关键统计指标(平均行程时间、总延误、最大排队长度等)
  • 借助matplotlib或seaborn绘制对比图表,或生成统计汇总表格

交通岛内部边标注

内容的提问来源于stack exchange,提问作者Yong Jin Park

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:52:15