TEQC在GPS数据预处理中的应用摘要TEQC是由美国UNAVCO开发的GPS预处理工具软件,广泛应用于数据格式转换、数据完备性检查、元数据编辑等。本文介绍了TEQC的主要功能及其在GPS数据管理系统中的应用,并利用TEQC对中国WHUN、BJFS等GPS台站的数据进行了分析,获取了数据质量、GPS接收机和天线性能等指标,对于今后GPS连续观测站的建设具有指导意义。关键词TEQC;GPS;数据预处理;接收机测试;质量检查1引言目前市场上测量型GPS接收机种类繁多,包括Leica、Trimble、Ashtech、Javad等多个品牌。各个厂商都制定了针对自己产品的数据存储格式,虽然各厂家都提供工具(如Trimble的Dat2rin)将各自的格式转换为通用的RINEX格式(ReceiverINdependentEXchangeformat,即与接收机无关的交换格式),但其使用较繁琐,要求操作人员对各个软件都比较熟悉,也不容易实现批处理,而这一功能对海量GPS数据管理自主运行系统来说尤为重要。为此,UNAVCO开发了TEQC(Translating,EditingandQualityCheck)软件[1],该名称来源于其具有的各项功能:转换(Translating)、编辑(Editing)、质量检查(QualityCheck)。TEQC已成为多个IGS(InternalGNSSService)数据中心的质量核检工具,能够及时发现数据问题。TEQC的前身QC(QualityCheck)程序是用Fortran编写的,移植性较差,后来UNAVCO用C语言重写了全部代码,目前仅免费提供可执行程序[2]。TEQC是一个命令行工具,能够运行在多种操作系统上,包括Unix、Linux、MacOS以及Windows的DOS等,其运行语法为:teqc{options}[file1[file2[...]]]其中,{options}为控制参数,参数前面标“-”表示是输入参数,“+”表示为输出参数,各参数可以预先写入一个文本文件,在调用teqc时指定。teqc的缺省输出设备为标准输出,可与管道(|)或重定向(、)等结合起来使用,控制其结果的输出位置。本文就TEQC的主要功能作简单介绍,并探讨其在GPS接收机测试中的应用。2格式转换2.1常用的GPS数据存储格式常见的一般有三种数据:观测数据(OBServationdata,简写OBS,为接收机记录的伪距、相位观测值)、导航数据(NAVavigationdata,简写NAV,记录卫星实时发布的广播星历)和气象数据(METerologicaldata,简写MET,记录气象仪器观测的温、压、湿度状况)。目前各类数据都以RINEX格式存储。RINEX最早在1989年提出,经历了1.0和2.0版,后来又对2.0进行了修改,形成了2.10、2.11和2.20。2.11中包含了对L2C的支持,并增加了Galileo的代码。当前广泛使用的是RINEX2.10。RINEX文件的命名规则为ssssdddf.yyt。其中ssss为台站名;ddd为年积日(DayofYear);f为文件在当天中的序列号,如果为0则表示全天,小时文件以a-x字母表示;yy是年;t是数据类型(o表示观测数据,n表示导航数据,m表示气象数据)。需要注意的是,RINEX采用世界协调时(UTC)时间,要与当地时间区别开。RINEX为ASCII文本文件,常以ZIP格式进行压缩(后缀名为“.Z”),以便于存储和传输。目前IGS数据中心已采用HatanakaRINEX格式来存储所有GPS观测数据,是一种“压缩”RINEX格式,其文件名类型字母为d(不是o),能够压缩25-30%的大小,从而降低了网络传输负荷和存储空间。日本国土地理院的YukiHatanaka提供工具软件crx2rnx/rnx2crx(ftp://terras.gsi.go.jp/software/,IGSMAIL-5611)可以在HatanakaRINEX和标准RINEX格式之间转换。2.2利用TEQC进行格式转换在TEQC的开发过程中,众多GPS接收机厂商提供了有关各自原始数据格式的信息,使得TEQC能够将多种接收机记录的原始二进制数据转换为RINEX格式:Trimble、Javad、Topcon、Ashtech、Leica、Navcom等。例如,要将Trimble的DAT文件转换为RINEX格式,可以使用:teqc–trdbjfs0010.datbjfs0010.06o其中“”表示重定向,或者采用“+obsoutname”来指定输出文件。TEQC目前不能直接转换Trimble的T00格式,需要利用R-utility中的runpk00工具先将T00文件转换为DAT格式再进行处理。针对具体接收机格式的参数可以参见TEQC的帮助(teqc+help)。为了实现批处理,可以利用UNIX/LinuxShell编写脚本,自动进行数据格式转换,降低了操作人员的劳动强度,提高了效率。在转换过程中,还可以同时进行数据的编辑。通常采用的Shell有BourneShell和CShell。一个简单的例子为:#!/bin/sh…foreachfilein`ls${path}/*.dat`;doofile=${opath}/`basename${file}`.${yr}o#输出文件名teqc–trd$file+obs${ofile}#转换doneTEQC的缺省输出格式为RINEXversion2.XX(2.10),其它格式可以在运行时指定。3数据编辑3.1修改现有RINEX文件的头信息利用TEQC可以方便地修改RINEX文件的元数据(或叫头信息),针对不同类型的数据(观测、导航、气象)可以使用相应的参数。以“-O.”开头的是观测相关的选项,包括接收机、天线、台站、时间等信息;以“-N.”开头的是导航数据相关的选项,与电离层、时间等参数有关;以“-M.”开头的是与气象数据有关的选项,涉及时间和台站信息等。主要的控制参数参见下表。表1TEQC编辑头信息的主要控制参数参数类别参数前缀参数名称用途观测数据-O.r[un_by]程序运行者o[perator]测站数据操作员ag[ency]测站组织mo[nument]测站名称int[erval,sec]指定原始数据的采样间隔st[art]指定数据记录的起始时间dec[imate]指定输出文件的采样间隔当转换工具不能识别原始数据的头信息(如站名、接收机和天线型号),或这些信息需要指定或修改时,利用TEQC可以方便完成。例如要更改RINEX文件中的台站名可使用Teqc-O.moBJFSbjfs0010.07o/result/bjfs0010.07o利用TEQC还可以进行数据重采样,例如将1Hz的观测数据重采样成30s间隔的文件:Teqc-O.dec30bjfs0010.07o/30s/bjfs0010.07o3.2合并或分割文件TEQC可用于RINEX文件的合并与分割,如需要将各时段数据合并为单日文件,可使用:teqcbjfs138?.06objfs1380.06oTEQC支持正在匹配表达式,即使用“*”代表任意字符,“?”代表单个字符,因此不必逐个列出输入文件。输入文件列表要求按时间顺序排列。由于TEQC的默认输出设备为标准输出,因此一般利用重定向(“”)保存输出文件。值得注意的是TEQC会在合并的两个文件之间插入额外的注释行,GAMIT等软件在处理的时候能够将其忽略;也可以在添加“-phc”参数强制TEQC不要添加注释;此外,可以利用文本编辑器删掉这些注释行。由于GAMIT等软件处理时一般以天(24h)为单位,因此有必要将多天连续的数据分割成单日数据文件。利用TEQC的起始时间(-st)和长度控制(-dh)可以方便地完成这些任务,如:teqc-st200060707000000–dh24bjfs.obsbjfs1880.06o3.3其它确认已有的RINEX文件是否符合标准格式,利用TEQC可以快速确定数据文件是否符合RINEX2.XX标准。命令语法为:teqc+vbjfs0010.06o如果bjfs0010.06o文件中缺少某些头信息,则TEQC可以发现问题。4质量检查TEQC可用于观测文件的质量检查,其语法为:teqc+qcfbar0010.97o运行后将生成多个结果文件,其中质量检查小结在后缀为“.YYS”的文件中,在此文件中,可以查看数据的采集时间长度、数据采样率、观测期间多路径影响(MP1、MP2)、周跳、信噪比、观测能力等。参数包括:1)理论历元数与实际历元数理论历元数可通过实际跟踪到的卫星数目及观测时间长度来计算,需要相应的导航星历文件(表2)。表2默认的观测数据和导航数据对应文件后缀名观测数据文件后缀名导航星历文件后缀名*.YYo*.YYn*.YYO*.YYN*.obs*.nav*.OBS*.NAV2)每周跳(Slip)观测历元数用TEQC对高度角大于100的卫星的数据进行统计,用每天的观测历元数除以当天的周跳数。总周跳数为MP1、MP2和IOD周跳数之和。对于周跳较多的接收机,一般可将截至高度角设为150,再计算单日平均每周跳观测数,以确定是否周跳多发生在200角以下。如若不然,则可能是其它因素(如电离层等)造成的。3)伪距和多路径噪声统计MP1是P1(或C1)、L1、L2的线性组合,MP2是P2、L1和L2的线性组合。使用TEQC可给出MP1和MP2的值,这些值可以很好地反映接收机噪声和多路径效应。TEQC会生成的*.mp1;*.mp2两个多路径效应统计文件。低高度角的卫星易受多路径效应的影响。4)L1和L2的信噪比。TEQC以db-Hz为单位输出信噪比(Signal-to-NoiseRatio,即SNR)值(*.sn1;*.sn2文件)。通过分析随高度角变化的信噪比,可以确定接收机对低高度角卫星信号的追踪能力。5)电离层延迟微分周跳电离层延迟微分(IonosphericDelayDerivative,即IOD)用来监测相位模糊度中的突然变化。如果IOD变化速率大于400cm/min,一般认为存在相位周跳。TEQC(+qc)缺省的截至高度角为10°,可以利用“-set_mask”来改变阈值。高度角递增间隔缺省为5°,可用“-bins”设为45,以将递增步长设为2°。目前多个IGS数据中心已采用TEQC对单日GPS观测文件进行质量监控,用户可从IGS数据中心下载统计文件。下面我们就以中国部分GPS台站的数据为例,介绍TEQC在数据质量检查方面的应用。本次试验采用的数据列于表3中,包括BJFS(北京房山)、CHAN(长春)和KUNM(昆明)等8个台站。图1和表4列出了各站实际观测历元数与理论值的比较,结果表明BJFS、URUM和WUHN的实测数占到了理论值的99%以上,观测能力强,而KUNM站最低。图2表示了各台站周跳数的多少,BJFS和URUM站在2005年初的周跳较少,之后有所增加。图12005年第60天理论观测历元数(#expt)和实际观测数(#have)统计图图2每周跳观测历元数(obs/slip统计图表3试验使用数据列表代码所在地接收机天线观测时间(2005年:DoY)BJFS北京ASHTECHZ-XII3ASH700936B_M1,32,60,91,121,152CHAN长春ASHTECHZ-XII3ASH700936B_M1,32,60,91,121,152KUNM昆明ROGUESNR-8000AOAD/M_T1,32,60,91,121,152LHAS拉萨AOASNR-8000ACTAOAD/M_T1,32,60,91,121,152LHAZ拉萨JPSLEGACYASH701941.B60,91,121,152SHAO上海ROGUESNR-8100AOAD/M_T1,60,91,121URUM乌鲁木齐AOASNR-8000ACTAOAD/M_T1,60,91WUHN武汉ASHTECHZ-XII3ASH700936E1