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 | obs_file |
其中的 <site>
表示站名,<RINEX_file>
为站点对应的观测文件,最后的 <type>
代表站点的活动状态(即静止或运动)。静止的站点使用 “F” 来标记,运动的站点使用 “K” 标记。
示例,输入两个站于 2018 年第 045 日的观测文件,其中 STAT 站为静态站,FLOT 为动态站。你可以这样设置:
1 | obs_file |
星历数据
导航卫星的星历数据使用 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
:站点之间的基线长度在 1km 内;LONG
:站点之间的基线长度大于 1km。
示例,要使用 SHORT
模式,只需进行如下配置:
1 | mode SHORT |
概略坐标
在默认情况下,TRACK 使用 RINEX 观测数据文件头中的概略坐标。但某些时候,观测文件中的概略坐标可能不正确,这将导致解算出错。此时你可以将正确的站点概略坐标写入到控制文件中。输入概略坐标的控制命令格式为:
1 | site_pos |
这里,<site>
为站名,<X>
、<Y>
、<Z>
分别为站点在空间直角坐标系下的坐标分量。
示例,对应于上文的观测站,输入其概略坐标:
1 | site_pos |
参考点坐标
在默认情况下,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 还准备了一份在线的帮助信息供你随时随地查看。