概述#
traceExporter.py 用于将 SUMO 的 fcd 输出 转换和过滤为不同的“轨迹文件”格式:OMNET、Shawn、ns2/ns3、PHEM。
- 目的: 轨迹文件转换/生成
- 系统: 可移植(已在 Linux/Windows 上测试);在命令行运行
- 输入(必填): SUMO fcd 输出
- 输出: 一个或多个“轨迹文件”及其他补充文件
- 编程语言: Python
简介#
不同的应用程序读取“车辆轨迹”,即主要包含随时间变化的车辆位置的文件。 traceExporter.py 通过将 SUMO 的 fcd 输出 转换为几种受支持的格式来生成此类文件。可以生成以下文件,按应用程序分类:
- OMNET: 移动性轨迹 (.xml)
- Shawn: 快照文件 (.xml)
- ns2/ns3: 轨迹文件、活动文件和移动性文件 (均为 *.tcl)
- PHEM: .dri 文件、.str 文件、.fzp 文件、.flt 文件
- GPSDAT csv 轨迹 (id,date,x,y,status,speedKMH)
- GPX
- KML
- Kepler-JSON
- IPG 轨迹 (实验性)
- SSAM 轨迹
- POI (可在 sumo-gui 中可视化 GPS 失真和采样)
- fcd 输出 (用于将文件限制在特定区域或时间间隔)
安装#
traceExporter.py 随 SUMO 一起提供,位于 <SUMO_HOME>/tools/ 目录下。必须安装 Python。
使用说明#
您可以使用如下命令将给定的 fcd 输出 转换为特定格式:
traceExporter.py --fcd-input myFCDoutput.xml --omnet-output myOMNETfile.xml
在上面的例子中,将为 OMNET 构建一个文件。
下面将描述命令行选项。
输入选项#
traceExporter.py 通常只需要 fcd 输出 作为输入。在某些情况下,必须提供获取 fcd 输出 时使用的网络。 如果所需的输出需要额外的文件(如网络),但未指定此类文件,traceExporter.py 会给出错误消息。定义输入文件的选项如下:
| 选项 | 描述 |
|---|---|
| --fcd-input <FILE> -i <FILE> |
要转换的 fcd 输出文件(如果给定数值,则解释为要监听的端口) |
| --net-input <FILE> -n <FILE> |
使用的网络文件;主要用于导出网络 |
所有只需读取一次输入的输出都支持从套接字读取。为此,只需提供一个数字作为文件名,脚本将打开一个端口进行监听。之后,您可以启动 sumo 并将相应的端口作为输出,例如:traceExporter.py --fcd-input 43214 ... 后面需要跟上 sumo --fcd-output localhost:43214。这至少适用于 OMNET、Shawn、GPSDAT、GPX、POI 和 fcd 过滤。
输出选项#
以下是 traceExporter.py 的输出选项,按应用程序分类。
PHEM#
| 选项 | 描述 |
|---|---|
| --dri-output <FILE> | 生成名为 <FILE> 的 PHEM .dri 文件 |
| --str-output <FILE> | 生成名为 <FILE> 的 PHEM .str 文件;注意,必须使用 --net-input 选项提供仿真期间使用的 SUMO 网络 |
| --fzp-output <FILE> | 生成名为 <FILE> 的 PHEM .fzp 文件 |
| --flt-output <FILE> | 生成名为 <FILE> 的 PHEM .flt 文件 |
OMNET#
| 选项 | 描述 |
|---|---|
| --omnet-output <FILE> | 生成名为 <FILE> 的 OMNET 移动性轨迹 |
Shawn#
| 选项 | 描述 |
|---|---|
| --shawn-output <FILE> | 生成名为 <FILE> 的 Shawn 快照文件 |
ns2/ns3#
| 选项 | 描述 |
|---|---|
| --ns2config-output <FILE> | 生成名为 <FILE> 的 ns2 配置文件 |
| --ns2activity-output <FILE> | 生成名为 <FILE> 的 ns2 活动文件 |
| --ns2mobility-output <FILE> | 生成名为 <FILE> 的 ns2 移动性文件 |
GPSDAT#
| 选项 | 描述 |
|---|---|
| --gpsdat-output <FILE> | 生成名为 <FILE> 的 GPSDAT 文件 |
GPX#
| 选项 | 描述 |
|---|---|
| --gpx-output <FILE> | 生成名为 <FILE> 的 GPX 文件 |
PoI#
| 选项 | 描述 |
|---|---|
| --poi-output <FILE> | 生成名为 <FILE> 的 SUMO PoI 文件 |
KML#
| 选项 | 描述 |
|---|---|
| --kml-output <FILE> | 生成名为 <FILE> 的 KML 文件 |
IPG#
| 选项 | 描述 |
|---|---|
| --ipg-output <FILE> | 生成名为 <FILE> 的 IPG 文件 |
SSAM#
| 选项 | 描述 |
|---|---|
| --trj-output <FILE> | 生成名为 <FILE> 的 SSAM 轨迹文件 |
| --trj-veh-width <FILE> | 用于轨迹生成的车辆宽度 |
| --trj-veh-length <FILE> | 用于轨迹生成的车辆长度 |
fcd#
| 选项 | 描述 |
|---|---|
| --fcd-filter <FILE> | 从 <FILE> 读取过滤设置 |
| --fcd-filter-comment <STRING> | 包含在 fcd 文件中的额外注释 |
| --fcd-filter-type <STRING> | 将所有写入车辆的车辆类型修改为 <STRING> |
过滤文件是一个简单的 csv 格式,给出 begin;end;bounding_box;outfile,其中 bounding_box 是 x1,y1,x2,y2,定义了要提取区域的左下角和右上角。坐标格式需要与输入格式匹配(因此如果输入具有地理坐标,则边界框也需要具有地理坐标)。目前无法为不同的过滤行指定相同的输出文件。
过滤文件示例:
0;50;500,400,600,500;out.xml
50;100;550,450,600,500;out2.xml
处理选项#
有几个选项可以微调处理过程。
| 选项 | 描述 |
|---|---|
| --persons <BOOL> | 是否在轨迹中包含行人;默认值:False |
| --penetration <FLOAT> | 0 到 1 之间的浮点数,定义车辆包含在输出中的概率;默认值:1 |
| --gps-blur <FLOAT> | 定义在导出车辆位置之前应用的随机偏移量的浮点数;默认值:0 |
| --boundary <FLOAT>,<FLOAT>,<FLOAT>,<FLOAT> | 将边界框定义为 'xmin,ymin,xmax,ymax' |
| --delta-t <TIME> -d <TIME> |
定义时间采样,如果给定;仅导出每个 <TIME> 时间步长。 |
| --begin <TIME> -b <TIME> |
<TIME> 之前的时间步长不导出。 |
| --end <TIME> -e <TIME> |
<TIME> 之后的时间步长不导出。请注意,此处已知存在一些问题。 |
| --seed <INT> -s <INT> |
要使用的随机数生成器种子。 |
| --base-date <INT> -s <INT> |
自纪元(1970-01-01 00:00:00)以来的秒数为基准的日期,默认为当前本地时间。 |
附加选项#
| 选项 | 描述 |
|---|---|
| --help -h |
显示帮助屏幕。 |


