TRACK 模块的配置与使用

TRACK 是 GAMIT/GLOBK 程序的重要组成部分,该模块使用卡尔曼滤波算法,提供基于差分相位观测量的动态后处理定位功能。随着针对如飞行器、车辆、船舶或浮标等运动设备的 GPS 动态定位技术需求的不断增加,TRACK 模块凭借较高的数据处理精度,已成为该领域最受重视的程序工具之一。

本文将介绍 TRACK 模块的使用和配置过程。

使用方法

TRACK 模块目前还只能处理针对 GPS 卫星的观测数据。该模块进行数据处理时,其所有的配置参数都是通过控制文件来输入的,因此控制文件的编辑是该模块的使用过程中最重要的部分。编写好配置文件之后,你可以用以下方式启动 TRACK 程序:

1
$ track -f <cmd-file> -a <amb-file> -d <day> -w <week> -s <strings>

参数释义:

  • -f <cmd-file>:输入的控制文件
  • -a <amb-file>:输入的模糊度文件;
  • -d <day>:数据观测的年积日;
  • -w <week>:数据观测的 GPS 周;
  • -s <strings>:字符串组。

在这些参数中,只有控制文件是必要的。这里的 -d <day>-w <week>-s <strings> 实际上是为了编写控制文件模板而设置的变量。在编辑控制文件时,你可以使用 <day> 来代替年积日,使用 <week> 来代替 GPS 周,然后在运行 TRACK 时通过命令行参数来设置它们的值。

控制文件

TRACK 模块的控制文件通常是一个 .cmd 文件,MIT 在其网站上给出了一个控制文件示例。在控制文件中,每一行作为一个控制命令,有效的控制命令必须以至少一个空白字符开始,否则将被当作注释。此外,有些控制命令可能需要多个输入项(例如观测数据),对于这样的命令,其后紧跟的非注释行都将被作为其子项,直到遇到一个空行。

在控制文件中,第一个控制命令必须是输入的观测数据,其后控制命令的顺序可以是任意的。接下来将对最主要的几个控制命令做详细介绍。

观测数据

观测数据的输入使用 obs_file 命令,其后的每一行输入一个观测文件。因此其格式为:

1
2
3
obs_file
<site> <RINEX_file> <type>
...

其中的 <site> 表示站名,<RINEX_file> 为站点对应的观测文件,最后的 <type> 代表站点的活动状态(即静止或运动)。静止的站点使用 “F” 来标记,运动的站点使用 “K” 标记。

示例,输入两个站于 2018 年第 045 日的观测文件,其中 STAT 站为静态站,FLOT 为动态站。你可以这样设置:

1
2
3
obs_file
stat stat0450.18o F
flot flot0450.18o K

星历数据

导航卫星的星历数据使用 nav_file 输入。TRACK 程序既可以接收 RINEX 格式的广播星历数据,也可以接收 SP3 格式的精密星历数据。其输入格式为:

1
nav_file <NAVI_file> <type>

这里的 <NAVI_file> 表示星历文件名,<type> 星历的数据类型标记。广播星历使用 NAV 标记,精密星历使用 <SP3> 标记。需注意的是,对于一个时段的解算,目前 TRACK 只能接受一个星历文件。因此如果要处理跨天的数据,你需要手动将星历数据拼接成一个文件。

示例,对应于上文的观测文件,以下命令输入精密星历数据:

1
nav_file igr19883.sp3 SP3

解算模式

实际的数据处理中,根据观测环境和状态的不同,通常需要采取不同的解算策略。TRACK 提供了许多参数,给予你对解算过程最自由的控制权。为了简化配置过程,TRACK 同样提供了针对不同情况的快速设置。根据动态站载体或动态站和静态站之间的距离,你可以通过 mode 参数来对解算过程进行快速设置。解算模式的控制命令格式为:

1
mode <type>

可用的解算模式有:

  • AIR:动态站位于飞行器上;
  • SHORT:站点之间的基线长度在 300km 内;
  • LONG:站点之间的基线长度大于 300km。

示例,要使用 SHORT 模式,只需进行如下配置:

1
mode SHORT

概略坐标

在默认情况下,TRACK 使用 RINEX 观测数据文件头中的概略坐标。但某些时候,观测文件中的概略坐标可能不正确,这将导致解算出错。此时你可以将正确的站点概略坐标写入到控制文件中。输入概略坐标的控制命令格式为:

1
2
site_pos
<site> <X> <Y> <Z>

这里,<site> 为站名,<X><Y><Z> 分别为站点在空间直角坐标系下的坐标分量。

示例,对应于上文的观测站,输入其概略坐标:

1
2
3
site_pos
stat -2592743.6008 4468222.8317 3728304.5354
flot -2605480.4172 4455888.3716 3734143.3193

参考点坐标

在默认情况下,TRACK 的解算结果将以所输入的第一个参考站的站心坐标系(即 NEU)的形式输出。当然,你也可以手动配置输出成果的参考点。参考点坐标的输入方式为:

1
ref_neu <X> <Y> <Z>

这里的 <X><Y><Z> 分别为站点在空间直角坐标系下的坐标分量。

示例,配置参考点坐标:

1
ref_neu -2606241.4364 4454156.4228 3735667.9585

成果输出形式

TRACK 程序的数据处理成果默认以 NEU 坐标输出,但你也可以添加其他的成果输出形式。配置成果输出的控制命令为:

1
out_type <type>

这里的 <type> 即成果的输出形式,它可以是以下一种或几种:

  • GEOD:大地坐标系;
  • NEU:站心坐标系;
  • DHU:解算结果与初始坐标的差异;
  • XYZ:空间直角(笛卡尔)坐标系;
  • DUMP:输出 L1/L2 伪距和相位组合的残差,如果输入了 IONEX 文件,还可以同时输出 TEC(总电子含量)。

以上选项可以自由组合,例如,配置同时输出 NEU 和大地坐标系(BLH)的坐标:

1
out_type GEOD+NEU

解算间隔

数据处理时选择合适的解算间隔也是很重要的,间隔太稠密将大大延长数据处理所需的时间。默认的数据处理间隔同观测文件一致,但你也可以用以下形式来配置:

1
interval <num>

这里的 <num> 以秒作为单位。因此要将数据解算的间隔设置为 30 秒,你可以如下配置:

1
interval 30

成果文件

TRACK 程序的解算结果主要保存在 SUM 文件中,你可以使用 sum_file 命令来配置结果输出文件:

1
sum_file <filename>

这里的 <filename> 即 SUM 文件的文件名。例如,对于上文的解算任务,可以如下配置:

1
sum_file TRACK18_045.sum

任务示例

MIT 在其网站上给出了一个使用 TRACK 进行数据处理的示例,你可以在页面上查看其数据处理成果,也可以下载其完整的输入文件在自己的计算机上重新运行。

下载并解压输入文件包之后,使用 cd 命令进入输入文件目录,然后使用如下命令启动 TRACK:

1
$ track -f track.cmd -d 356_19 -w 12501 | tee TRAK_356_19.out

TRACK 程序的帮助信息非常详尽,可说是巨细无遗,不加任何参数运行 track 即可看到。MIT 还准备了一份在线的帮助信息供你随时随地查看。

使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏