如何在SUMO中正确限制边缘流量输出至指定边缘ID列表?
解决SUMO edgeData指定边缘列表报错的问题
核心问题原因
报错提示“unknown edge '123456'”,说明你配置的边缘ID要么在当前路网中不存在,要么多个边缘ID的分隔格式错误。SUMO的edges属性要求用空格分隔多个边缘ID,如果直接写一串数字会被识别成单个边缘ID,而这个ID不存在就会触发报错。
正确配置步骤
1. 确认有效边缘ID
先确认路网中实际存在的边缘ID:
- 用sumo-gui打开路网文件,右键目标边缘,选择
Show selection info查看ID - 用命令导出全路网边缘列表:
从导出的netdump -n your_net.net.xml --edges > edge_list.txtedge_list.txt中复制需要的有效边缘ID。
2. 编写正确的edgeData配置
如果要指定多个边缘,用空格分隔每个ID,示例:
<edgeData id="edges" file="XX.edge.xml" freq="5" edges="edge_01 edge_02 edge_03"/>
如果需要排除部分边缘、输出其余所有边缘,可改用excludeEdges属性:
<edgeData id="edges" file="XX.edge.xml" freq="5" excludeEdges="edge_04 edge_05"/>
3. 验证配置有效性
先通过命令行验证配置是否合法:
sumo -c your_config.sumocfg --check-config
无报错后再用sumo-gui打开配置文件即可正常运行。
内容的提问来源于stack exchange,提问作者SheepSheepSheep
相关产品推荐
相关产品推荐

