SUMO项目命令行工具使用指南
一、SUMO命令行工具概述
SUMO(Simulation of Urban MObility)是一套开源的交通模拟软件包,其中大部分工具都是命令行应用程序。目前只有sumo-gui和netedit这两个工具提供了图形界面。对于不熟悉命令行的用户,建议先学习基本的命令行操作技能。
二、启动SUMO命令行工具
SUMO应用程序是标准的可执行文件,可以通过在命令行中输入其名称来启动:
- Windows系统:
netgenerate.exe
- Linux系统:
netgenerate
如果启动时不带任何参数,应用程序会显示基本信息并退出,包括版本号、构建特性、版权信息和许可证等。
三、参数设置详解
3.1 参数类型
SUMO应用程序支持两种参数类型:
-
布尔型参数:不需要额外值,存在即表示true
- 示例:
--verbose
或--verbose=true
- 示例:
-
带值参数:需要指定参数值
- 示例:
--net mynet.net.xml
或--net=mynet.net.xml
- 示例:
3.2 参数缩写
常用参数支持缩写形式:
- 完整形式:
--net
(前面有两个短横线) - 缩写形式:
-n
(前面有一个短横线)
注意:不同应用程序中的相同缩写可能代表不同参数。
3.3 列表参数
对于需要多个值的参数,可以使用逗号分隔:
- 示例:
--additional-files file1.xml,file2.xml
四、配置文件使用
4.1 配置文件结构
配置文件是XML格式,根元素为<configuration>
。参数作为子元素,值存储在value
属性中。
示例配置文件:
<configuration>
<input>
<net-file value="test.net.xml"/>
<route-files value="test.rou.xml"/>
</input>
</configuration>
4.2 配置文件命名规范
不同工具建议使用不同的文件扩展名:
- sumo仿真配置:
.sumocfg
- netgenerate配置:
.netgcfg
- 其他工具也有相应规范
4.3 配置文件与命令行参数优先级
命令行参数会覆盖配置文件中相同的参数设置。如果需要追加而不是覆盖列表参数,可以使用+
语法:
- 示例:
+a additional.xml
五、常用工具选项
5.1 配置相关选项
| 选项 | 描述 | |------|------| | -c <文件>
| 加载指定配置文件 | | -C <文件>
| 保存当前配置到文件 | | --save-template <文件>
| 生成配置模板文件 | | --save-schema <文件>
| 生成XML Schema文件 |
5.2 日志和输出选项
| 选项 | 描述 | |------|------| | -v
| 启用详细输出 | | --log <文件>
| 将所有消息写入文件 | | --error-log <文件>
| 仅将错误和警告写入文件 | | --language <代码>
| 设置输出语言(如de、fr等) |
5.3 随机数选项
| 选项 | 描述 | |------|------| | --seed <数值>
| 设置随机数种子 | | --random
| 使用随机种子 |
六、文件输入输出处理
6.1 特殊文件路径
SUMO支持以下特殊文件路径:
/dev/null
或NUL
:不产生输出stdout
或-
:输出到标准输出stderr
:输出到标准错误<主机>:<端口>
:输出到网络套接字
6.2 环境变量引用
配置文件中可以引用环境变量:
<net-file value="${NETWORK_DIR}/network.net.xml"/>
6.3 时间格式
- 输入:支持秒数或"HH:MM:SS"格式
- 输出:默认使用秒数,
-H
选项可启用易读格式
七、Python工具使用
SUMO附带了许多Python工具,使用时需要:
- 安装Python 3.7或更高版本
- 设置SUMO_HOME环境变量
- 确保Python工具路径在系统PATH中
可以直接使用完整路径调用Python工具:
/path/to/sumo/tools/randomTrips.py [参数...]
八、最佳实践建议
- 对于复杂配置,优先使用配置文件而非命令行参数
- 启用XML验证(
-X always
)可以帮助发现输入文件错误 - 使用
--save-template
生成配置模板作为起点 - 为重现实验结果,固定随机数种子
- 使用版本控制管理配置和输入文件
通过掌握这些命令行工具的使用方法,您可以更高效地使用SUMO进行交通仿真和分析工作。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考