SUMO中是否可通过附加文件批量导出所有TLS状态?
是否需要为每个信号灯ID单独编写命令
是的,你提到的 <timedEvent type="SaveTLSStates" source="<TLS_ID>" dest="<OUTPUT_FILE>"/> 附加文件配置,其source属性仅支持填写单个交通信号灯(TLS)的ID,原生不支持同时指定多个ID,所以如果使用该配置方式,需要为每一个你需要导出状态的TLS单独编写对应的命令条目。
一次性导出所有TLS状态的实现方法
你可以通过两种方式实现一次性导出所有信号灯状态,不需要逐个手动编写配置:
- 脚本批量生成附加文件配置:先执行命令
netconvert --sumo-net-file 你的路网文件.net.xml --tls-output tls_ids.xml导出当前路网中所有TLS的ID列表,再写个简单的Python/Shell脚本遍历ID列表,自动生成所有对应的<timedEvent>条目并写入附加文件即可。 - 直接使用SUMO原生启动参数实现全量导出:启动SUMO仿真时添加参数
--tls-state-log 你的输出文件路径,不需要额外编写附加文件配置,即可直接导出仿真过程中所有交通信号灯的全部状态变化记录,输出内容结构和SaveTLSStates的输出结构完全一致。
内容的提问来源于stack exchange,提问作者KatrinaKing
相关产品推荐
相关产品推荐

