多平台GNSS数据处理利器:TEQC功能解析与操作实践
TEQC概述
TEQC(发音为“tek”或“tech”)软件是由美国UNAVCO机构开发的免费开源工具,主要用于GNSS数据预处理与质量分析,其核心功能包括格式转换(Translate)、数据编辑(Edit)和质量检查(Quality Check)。TEQC通过简单命令实现高效数据处理,但需第三方工具辅助可视化(如QCVIEW或自定义封装工具)。TEQC程序支持处理RINEX格式的观测文件(obs)、广播星历文件(nav)和气象文件(met)等。
官方网站
TEQC:https://www.unavco.org/software/data-processing/teqc/teqc.html
QCVIEW:http://facility.unavco.org/software/preprocessing/qcview/qcview.html
PS:TEQC不能处理RINEX2.11以上版本。
核心功能
格式转换(Translate)
支持将不同厂商的GNSS接收机原始二进制数据转换为标准RINEX格式,兼容GPS、GLONASS等系统。
数据编辑(Edit)
可对RINEX文件进行文件头编辑、采样率抽稀、分割、合并、卫星筛选及观测值类型调整等操作。
质量检查(Quality Check)
快速评估数据质量,分析多路径效应、电离层延迟、周跳、信噪比等指标,并生成可视化报告。
单点定位(Coordinate)
除GNSS数据预处理功能以外,TEQC支持伪距单点定位,根据各历元的观测值和广播星历计算接收机在空间直角坐标系下的坐标
运行环境
支持多平台操作,包括Windows(DOS命令行)、Linux、Unix及MacOS。本文的操作实践在Windows环境中运行。
操作实践:Edit
基本命令格式
TEQC是基于DOS界面的程序软件,故以命令行参数的形式运行。其命令格式为:
teqc {option} {file1} {file2} {file3}...
option是TEQC 的控制参数,file为待处理的文件名或处理结果
RINEX文件头编辑
以测站名编辑为例,修改bjfs为temp,并保存至temp0010.25o
teqc -O.mo temp bjfs0010.25o>temp0010.25o
RINEX文件抽稀
# 将RINEX Obs文件的30s采样率抽稀为60s
teqc -O.dec 60s bjfs0010.25o > bjfs0010_60s.25o
RINEX文件分割
# 提取RINEX Obs文件bjfs0010.25o前30min的观测数据
teqc +dm 30 bjfs0010.25o > bjfs0010_beg30min.25o
# 提取RINEX Obs文件bjfs0010.25o后30min的观测数据
teqc +dm 30 bjfs0010.25o > bjfs0010_end30min.25o
# 提取RINEX Obs文件bjfs0010.25o自起始历元(指定10:00:00)起后2h的观测数据
teqc -st 10:00:00 +dh 2 bjfs0010.25o >bjfs0010_10h_beg_2h.25o
# 提取RINEX Obs文件bjfs0010.25o自终止历元(指定10:00:00)起前2h的观测数据
teqc -e 10:00:00 +dh 2 bjfs0010.25o >bjfs0010_10h_end_2h.25o
RINEX文件合并
# 将n个RINEX Obs文件合并
teqc bjfs0010.25o bjfs0020.25o > bjfs0010_0020.25o
# 采用通配符*将n个RINEX Obs文件合并
teqc bjfs*.25o > bjfs_spliced.25o
运行实例如下:
E:\GNSSTools\test_TEQC>teqc Inputs/bjfs0010.25o Inputs/bjfs0020.25o Inputs/bjfs0030.25o > Outputs/bjfs0010_20.25o
! Notice ! splicing RINEX files
! Notice ! splicing RINEX files
E:\GNSSTools\test_TEQC>teqc Inputs/bjfs*.25o > Outputs/bjfs_spliced.25o
! Notice ! splicing RINEX files
! Notice ! splicing RINEX files
RINEX文件卫星系统及卫星禁用
以禁用GLONASS卫星系统及GPS系统PRN 32卫星为例:
# 禁用RINEX Obs文件GLONASS卫星系统
teqc -R Inputs/bjfs0010.25o > Outputs/bjfs0010_excR.25o
# 禁用GPS系统PRN 32卫星
teqc -G32 Inputs/bjfs0010.25o > Outputs/bjfs0010_excG32.25o
运行实例如下:
E:\GNSSTools\test_TEQC>teqc -R Inputs/bjfs0010.25o > Outputs/bjfs0010_excR.25o
E:\GNSSTools\test_TEQC>teqc -G32 Inputs/bjfs0010.25o > Outputs/bjfs0010_excG32.25o
操作实践:Quality Check
TEQC 的质量分析模式分为两种——完整模式(full)和轻量模式(lite)。其区别在于在进行质量检查时是否引入RINEX Nav文件。
lite模式
# 若不指定输出文件,则报告将打印到控制台
teqc +qc bjfs0010.25o > Report_lite.txt
运行实例如下:
E:\GNSSTools\test_TEQC>teqc +qc Inputs/bjfs0010.25o
observation sampling interval == 0; cannot create COMPACT plot files;
use -O.int[erval,sec] to set observation sampling interval
teqc ... exiting
E:\GNSSTools\test_TEQC>teqc -O.int 30 Inputs/bjfs0010.25o > Outputs/bjfs0010.25o
E:\GNSSTools\test_TEQC>teqc +qc Outputs/bjfs0010.25o > Outputs/Report_lite.txt
qc lite >! Notice ! no GLONASS navigation file/data or slot vs. frequency channel number file
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
PS:需要确保obs文件中有INTERVAL字段。如果没有,可采用-O.int对RINEX文件头进行编辑(如实例中所示)。
lite模式质量检核的结果如下表:
文件类型 | 文件后缀 | 文件内容 |
---|---|---|
报告文件 | .yySS | 报告信息(yy表示年份的后两位) |
数据文件 | .ion | L1载波的电离层延迟 |
.iod | 电离层延迟的变化率 | |
.mp1 | L1载波C/A码或P码伪距的多路径影响 | |
.mp2 | L2载波P码伪距的多路径影响 | |
.sn1 | L1载波的信噪比 | |
.sn2 | L2载波的信噪比 |
full模式
teqc +qc nav brdc0010.25p bjfs0010.25o > Report_full.txt
运行实例如下:
E:\GNSSTools\test_TEQC>teqc +qc -nav Inputs/brdc0010.25p Inputs/bjfs0010.25o > Outputs/Report_full.txt
teqc: failure to read ' 3.04 N: GNSS NAV DATA M: MIXED RINEX VERSION / TYPE' on line 1 of 'Inputs/brdc0010.25p'
(unaccepted RINEX version or non-RINEX file; must be RINEX Version <= 2.11) ... exiting
E:\GNSSTools\test_TEQC>gfzrnx -finp Inputs/brdc0010.25p -vo 2 -satsys G R > Outputs/brdc0010.25n
DATE/TIME | C | EPOCH / FILE | SITE | T | MESSAGE
--------------------+---+-------------------------+------+---+-----------------------------------------------------------...
2025-03-23 23:23:07 | W | 2025-01-01 21:00:32.000 | BRDC | N | sat.sys >C< was excluded
2025-03-23 23:23:07 | W | 2025-01-01 21:00:32.000 | BRDC | N | sat.sys >E< was excluded
2025-03-23 23:23:07 | W | 2025-01-01 21:00:32.000 | BRDC | N | sat.sys >I< was excluded
2025-03-23 23:23:07 | W | 2025-01-01 21:00:32.000 | BRDC | N | sat.sys >J< was excluded
2025-03-23 23:23:07 | W | 2025-01-01 21:00:32.000 | BRDC | N | sat.sys >R< was excluded
2025-03-23 23:23:07 | W | 2025-01-01 21:00:32.000 | BRDC | N | sat.sys >S< was excluded
2025-03-23 23:23:07 | W | 2025-01-01 21:00:32.000 | BRDC | N | SKIP: unsupported header label >IONOSPHERIC CORR< for output version 2.11 ( 2.115 -> 3.99 )
2025-03-23 23:23:07 | W | 2025-01-01 21:00:32.000 | BRDC | N | SKIP: unsupported header label >TIME SYSTEM CORR< for output version 2.11 ( 2.99 -> 3.99 )
2025-03-23 23:23:07 | W | 2025-01-01 21:00:32.000 | BRDC | N | SKIP: unsupported header label >IONOSPHERIC CORR< for output version 2.11 ( 2.115 -> 3.99 )
2025-03-23 23:23:07 | W | 2025-01-01 21:00:32.000 | BRDC | N | SKIP: unsupported header label >TIME SYSTEM CORR< for output version 2.11 ( 2.99 -> 3.99 )
E:\GNSSTools\test_TEQC>teqc +qc -nav Outputs/brdc0010.25n Inputs/bjfs0010.25o > Outputs/Report_full.txt
qc full >! Notice ! 'Inputs/bjfs0010.25o': no GLONASS navigation file/data or slot vs. frequency channel number file
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
! Notice ! 'Inputs/bjfs0010.25o': NAVSTAR GPS G01 detected to be unhealthy
! Notice ! 'Inputs/bjfs0010.25o': NAVSTAR GPS G22 detected to be unhealthy
PS:需要采用GFZRNX软件将 RINEX 3 版本的广播星历转化为 RINEX 2.11,如上述实例中所示。
full模式相比于lite模式,多生成两个数据文件:
lite模式质量检核的结果如下表:
文件类型 | 文件后缀 | 文件内容 |
---|---|---|
数据文件 | .azi | 卫星方位角 |
数据文件 | .ele | 卫星高度角 |
报告文件统计信息如下:
first epoch last epoch sn1 sn2
SSN 25 1 1 00:00 25 1 1 23:59 41.98 38.73
first epoch last epoch hrs dt #expt #have % mp1 mp2 o/slps
SUM 25 1 1 00:00 25 1 1 23:59 24.00 30 23898 23650 99 0.37 0.21 1245
报告文件统计信息如下表:
统计信息 | 说明 |
---|---|
first epoch,last epoch | 分别表示观测的开始时间和结束时间。格式为 [YY MM DD hh:mm:ss] |
sn1,sn2 | L1和L2载波信噪比 |
hrs | 表示观测的总小时数,其值为 24.00 小时,说明在这一整天内进行了观测 |
dt | 表示采样间隔,其值为30,说明数据采样的时间间隔为30s |
#expt | 表示观测的数量,其值为 23898,说明在这一时间段内进行了 23898 次观测 |
#have | 表示实际有效的观测数量,其值为 23650,说明在这一时间段内进行了 23650 次有效观测 |
% | 表示观测值的有效率,其值为 99%,表示绝大多数实验或观测是成功的 |
mp1,mp2 | 表示L1和L2的多路径效应,其值为 0.37 和 0.21 |
o/slps | 观测值和周跳比,其值为 1245,根据定义,其值越大表明观测值精度水平越高 |
操作实践:单点定位
# 广播星历默认和观测文件在同一文件夹下
teqc +qc +eepx bjfs0010.25o > SppPos_bjfs0010.25o
# 广播星历和观测文件在不同文件夹下,需要指定广播星历文件及路径
teqc +qc +eepx bjfs0010.25o bjfs0010.25n > SppPos_bjfs0010.25o
运行实例如下:
E:\GNSSTools\test_TEQC>teqc +qc +eepx Inputs/bjfs0010.25o Inputs/bjfs0010.25n > Outputs/SppPos_bjfs0010.25o
! Notice ! 'Inputs/bjfs0010.25o': no GLONASS navigation file/data or slot vs. frequency channel number file
E:\GNSSTools\test_TEQC>teqc +qc +eepx Inputs/bjfs0010.25o > Outputs/SppPos_bjfs0010.25o
! Notice ! 'Inputs/bjfs0010.25o': no GLONASS navigation file/data or slot vs. frequency channel number file
! Notice ! 'Inputs/bjfs0010.25o': NAVSTAR GPS G01 detected to be unhealthy
! Notice ! 'Inputs/bjfs0010.25o': NAVSTAR GPS G22 detected to be unhealthy
PS:需要广播星历文件名中的brdc或brdm更改为测站名(如bjfs)。