TEQC 配置及其数据转换功能的使用
TEQC(Translation, Editing, Quality Check)是最常用的 GNSS 数据预处理程序之一。该程序由 UNAVCO 开发,支持 UNIX/Linux、Windows 等常见的操作系统,功能强大,使用方便。
TEQC 程序提供了对 RINEX 格式的观测文件、星历文件和气象文件等的格式转换、内容编辑和质量检核等功能。但是,和很多的科学软件一样,TEQC 没有图形操作界面,对初学者可能不太友好。本文将以演示的方式,介绍 TEQC 程序的配置与数据转换命令,以图在不查看程序说明手册的情况下也能照葫芦画瓢,快速上手。当然,如果你希望详细系统地了解该程序,还是建议花时间阅读其官方文档。
环境配置
TEQC 程序目前支持 Windows、UNIX/Linux 等众多操作系统。要获取 TEQC 程序,直接到其官方下载页面下载对应系统的软件。
Windows 操作系统
对于 Windows 操作系统,从程序压缩包解压出可执行文件就能直接使用。只要打开 “命令提示符” 窗口,使用 cd
命令进入程序所在目录,然后运行 teqc 命令。
如果你不想每次使用 TEQC 前都切换工作目录,可以将程序可执行文件添加到系统的 Path 变量中,或者直接将其移动至 “C:\Windows\System32” 文件夹内。
UNIX/Linux 操作系统
对于 UNIX/Linux 操作系统,程序有采用静态链接库(statically-linked)和动态链接库(dynamically-linked)两种,一般下载动态链接库的程序包。下载程序压缩包解压出可执行文件之后,还需为程序添加可执行权限。使用 cd
命令进入程序所在目录,执行命令:
1 | $ chmod +x teqc |
之后便可以在终端中运行此程序,但是每次使用时也需要首先切换工作目录。如果你希望在任何目录下都能使用该程序,可以将其移动到 “/usr/bin” 目录下。
操作模式
为了便于理解和仿制后面的命令,首先介绍一下 TEQC 程序的基本操作模式。使用 TEQC 程序的一般的语法是:
1 | $ teqc <options> [file1 [file2 […]]] |
这里的 [file1 [file2 […]]]
表示输入文件列表,而 <options>
为控制参数。控制参数一般以 “+” 或 “-” 号开头:对于 “-” 号,一般指示输入命令(包括标准输入或文件),或表示关掉这个选项;对于 “+” 号,一般指示输出命令(包括标准输出或文件),或表示打开这个选项。参数后面则是希望被处理的文件,多个文件之间一般以空格分隔。
TEQC 是百分之百非交互的,也就是说,它不会在运行时停下来询问你。对于处理结果,一般会输出到标准输出或文件;对于处理时出现的错误或警告信息,则输出到标准错误输出。这个特性对于编写基于 TEQC 的脚本程序非常有利。
格式操作命令
格式检验
TEQC 程序可以检查一个程序是否为正确的 RINEX 格式文件,并输出文件的 RINEX 版本编号。该功能使用 +v
参数开启,其命令为:
1 | $ teqc +v file1 [file2 […]] |
示例,检查 urum2560.16m,urum2560.16o, brdc2560.16n 和 DEMO0224a.tps 这 4 个文件:
1 | $ teqc +v urum2560.16m urum2560.16o brdc2560.16n DEMO0224a.tps |
输出为:
teqc: ‘urum2560.16m’ readable as RINEX V.2.11 format
teqc: ‘urum2560.16o’ readable as RINEX V.2.11 format
teqc: ‘brdc2560.16n’ readable as RINEX V.2.00 format
teqc: ‘DEMO0224a.tps’ readable as Topcon TPS format
格式转换
这里的格式转换一般指从接收机的原始观测数据到 RINEX 格式数据的转换。目前 TEQC 在这方面的支持比较有限,仅支持 Trimble、Topcon、Leica、Javad、Septentrio 等国际大厂的仪器。对于不受支持的接收机品牌或型号,只能使用随机附带的软件。
TEQC 程序的格式转化的基本命令格式为:
1 | $ teqc <options> raw_file1 [raw_file2 […]] > <RINEX_file> |
这里的 raw_file1 [raw_file2 […]]
表示输入的原始数据列表。对于存储在本地的原始数据文件,大多数情况下 TEQC 程序通过文件名就能识别出其接收机品牌和格式类型。但对于数据流,或者某些无法自动识别的数据文件格式,则需要使用 <options>
参数来指明原始数据的接收机品牌或格式类型。完整的接收机参数请查看本文最后给出的汇总表。
示例,转换 Topcon 接收机在 2014 年 2 月 24 日观测产生的 .tps 文件(这里的 -top tps
可以省略):
1 | $ teqc -top tps DEMO0224a.tps > demo0551.14o # 对应年积日为 55,GPS 周为 1781 |
运行这个命令后,将产生一个转换后的文件 demo0551.14o。同时,TEQC 还会输出一条警告:
! Notice ! GPS week initially set= 1781
这是因为,我们在进行数据转换时没有指出数据观测的日期,TEQC 将试图从原始数据中读取观测日期。这在少数的情况下可能会出现错误。如果你想明确指定数据的观测日期,可以使用 -week
参数:
1 | -week <week> # 输入观测 GPS 周 |
示例,输入两个观测日期进行格式转换,同时将输出的文件合并:
1 | $ teqc -week 1781 DEMO0224b.tps DEMO0224c.tps > demo0552.14o |
对于更多的输入文件,还可以使用通配符:
1 | $ teqc -week 2014/55 DEMO0224?.tps > demo0550.14o |
到目前为止的转换命令只输出了 RINEX 格式的 Obs 文件,因为 TEQC 程序默认只输出这个文件。如果你还希望输出 Nav 文件和 Met 文件(如果有的话),可以为其添加 +nav
或 +met
参数。
对于 “+met” 参数,在其后指定输出的 Met 文件名即可。对于 +nav
参数,因为有多个 GNSS 系统,所以卫星星历的输出有以下顺序:
- GPS
- GLONASS
- SBAS
- Galileo
- Beidou/Compass
- QZSS
对于支持多系统的接收机,要输出多个卫星系统的星历时,按照该顺序依次指定输出文件名,其间以 “,” 号分隔。对于要跳过的系统,以 “-” 标识。
示例,转换时输出 GPS 星历数据和气象数据:
1 | $ teqc -week 2014/2/24 +nav demo0550.14n +met demo0550.14m DEMO0224?.tps > demo0550.14o |
转换时分别输出 GPS 和 GLONASS 星历数据:
1 | $ teqc -week 2014/2/24 +nav demo0550.14n,demo0550.14g DEMO0224?.tps > demo0550.14o |
转换时跳过 GPS 星历数据,只输出 GLONASS 星历数据:
1 | $ teqc -week 2014/2/24 +nav -,demo0550.14g demo0224?.tps > demo0550.14o |
最后,如果你不喜欢使用重定向符 “>”,类似于上文的 +nav
和 +met
,还有一个输出 Obs 文件的 +obs
参数:
1 | $ teqc -week 2014/2/24 +nav -,demo0550.14g +obs demo0550.14o demo0224?.tps |
完整的接收机参数表
各接收机生产商制定的数据格式
本表中,对于相同功能的参数如 -trimble
与 -tr
、-aoa
与 -jpl
等做了合并处理,删去其中较长或字母表顺序靠后的项。在格式转换中必须指明的项,在行末以 “*” 号标记。
1 | -aoa # for TurboRogue/TurboStar or Benchmark receiver |
非接收机厂商制定的特殊数据格式
这些格式只有参数没有选项。在格式转换中必须指明的项,在行末以 “*” 号标记。
1 | -argo # ARGO |
后记
TEQC 的作者 Louis H. Estey 博士已于 2019 年 2 月 28 日光荣退休,随后 UNAVCO 宣布该软件将不再维护,在此特对 Louis 博士所在的工作表示感谢。TEQC 是最好的 GNSS 数据预处理软件之一,在数据编辑方面,GFZRNX 是一个优秀的替代品;但质量检核方面,据我所知,目前并没有太好的后续方案。