轨迹文件生成

简介#

本教程介绍如何生成车辆轨迹文件。除了 SUMO 之外,还将使用 Tools/TraceExporter。该工具需要 Python 环境才能执行,目前支持生成 ns2/ns3、Shawn、OMNET 和 PHEM 的轨迹文件。

仿真场景#

要生成车辆轨迹,您需要一个仿真场景,至少包含道路网络和路径。您可以访问 Tutorials/Hello SUMOTutorials/quick startTutorials/Quick Start old style 来了解如何获取场景。

生成 SUMO 轨迹#

假设您已经拥有场景和一个名为 "myConfig.sumocfg" 的配置文件。当然,它可能有不同的名称。您应该能够使用您的配置文件启动 SUMO,如下所示:

sumo -c myConfig.sumocfg

现在,我们使用仿真来获取 fcd 输出,这是一种 SUMO 格式的轨迹文件。该文件稍后将被转换为 Tools/TraceExporter 支持的应用程序之一的轨迹文件。我们按如下方式生成 fcd 输出

sumo -c myConfig.sumocfg --fcd-output sumoTrace.xml

通过这种方法,我们获得了文件 "sumoTrace.xml"。

转换轨迹#

我们现在可以将 SUMO 格式的车辆轨迹转换为另一种格式。现在,假设您想要一个 ns2 移动性文件。我们可以使用以下命令从获得的 fcd 输出 生成一个:

traceExporter.py --fcd-input sumoTrace.xml --ns2mobility-output ns2mobility.tcl

我们获得了文件 "ns2mobility.tcl",可以将其作为输入提供给 ns2。

更多可能性#

输出选项#

Tools/TraceExporter 为 ns2/ns3、OMNET、Shawn 和 PHEM 生成文件。请访问 Tools/TraceExporter 手册页面,了解有关如何生成这些文件的更多信息。查找 "output options"。

不同的渗透率#

Tools/TraceExporter 允许使用 --penetration <FLOAT> 定义不同的设备/渗透率。<FLOAT> 将是导出车辆的比例,其中 1 等于 100%。这意味着,如果您希望 10% 的车辆出现在您的 ns2 轨迹中,请使用:

traceExporter.py --penetration 0.1 \
 --fcd-input sumoTrace.xml --ns2-mobilityoutput ns2mobility.tcl

--seed <FLOAT> 允许您为选择要导出的车辆提供不同的随机数初始化种子。

限制时间#

您可以使用 --begin <TIME>--end <TIME> 选项来限制要导出的时间步长。所有在 --begin 之前和 --end 之后的时间步长都将被忽略。

此外,您可以强制 Tools/TraceExporter 仅转换每 nth 个时间步长,使用选项 --delta <TIME>。请注意,该值应该是仿真中使用的时间步长长度的倍数。

更多信息#