APP下载

基于TEQC的数据批量预处理程序实现与应用

2018-06-13张海平孔昭龙姜英明周茂盛高士民徐阳

全球定位系统 2018年2期
关键词:多路径质量检查配置文件

张海平,孔昭龙,姜英明,周茂盛,高士民,徐阳

(1.山东省国土测绘院,山东 济南 250102;2.山东科技大学 测绘科学与工程学院,山东 青岛 266590)

0 引 言

GNSS数据后处理的基本过程为:数据预处理——基线解算——网平差,其中数据预处理过程是一项很重要的环节[1]。GNSS数据预处理的主要目的是对原始数据进行转换、编辑、加工和整理,为数据解算做好准备[2]。数据预处理工作的完善与否,对随后的基线解算和网平差结果的精度将会产生重要的影响[3]。

TEQC是一个功能强大的 GPS/GLONASS数据预处理软件,由UNAVCO研制,用于GPS监测站的数据管理和预处理[4]。但TEQC的GPS观测数据预处理功能仍存在诸多不足:如不能对大量数据进行批处理、操作相对复杂、配置参数不灵活等。而区域CORS参考站网具有站点相对固定、数据量大且时间跨度较长的特点,这就需要针对TEQC的不足进行二次开发以适应CORS参考站运营和维护的需要。

Python作为一种新型的解释型脚本语言,近年来被广泛运用于科学计算、机器学习、数据挖掘和系统运维等领域。其特点是语法简洁、清晰,具有丰富强大的第三方工具库,可以跨平台使用等。Python语言简单易学且功能强大,可适用于从大型项目到小型的一次性程序(称为脚本)[5]。

本文利用Python语言及多线程等技术对TEQC进行二次开发,完善了TEQC的不足,实现了简单易用、跨平台(Windows、Linux)且高效可靠的批量GPS数据预处理。

1 TEQC数据预处理及二次开发

1.1 TEQC数据预处理

GPS观测数据的格式标准化和数据质量检查是TEQC的重要功能[6]。

数据的格式标准化是将不同类型接收机的数据记录格式、接收机类型、天线类型、天线相位中心偏移、概略坐标、卫星系统、观测值类型和观测数据采样率等统一为一致的文件格式[7]。这些信息对于数据解算结果有非常重要的影响。然而,原始观测数据中,由于数据来源、观测人员疏忽或接收机设置等原因,这些信息经常会出现错误或缺失。如果在解算前不进行标准化预处理,将会导致解算结果精度偏低甚至解算无法进行。

通过对GPS伪距和载波相位观测量进行线性组合,可以计算观测量的多路径效应、电离层延迟、电离层延迟的变化率以及接收机的钟漂和周跳等,该过程通常被称为数据的质量检查或质量评价。

数据质量检查主要的指标有信噪比(SNR)、多路径效应(MP)、周跳比(O/SLPS)等[8-9]。各个指标通常使用的阈值[8,10]如表1所示。

表1 TEQC数据质量检查阈值

1.2 基于Python的TEQC二次开发

Python语言具有非常强大的工具库模块,在本次二次开发过程中主要使用了PyYAML、glob、argparse和concurrent.futures等模块。

YAML(YAMLAin't Markup Language)是一种数据序列化格式[11]。它语法清晰易读,非常适合对数据类型进行编码。YAML可以用作数据序列、配置文件、log文件、Internet信息和过滤等。PyYAML是为Python语言提供YAML格式编码和解码的模块,为了使程序的使用和配置更灵活,本程序引入了PyYAML(office page)模块来解码配置文件[12]。YAML文档以类似于大纲的缩进方式编写,一个YAML格式的配置文件如图1所示。

如图1所示的配置文件中的各项的含义如表2所示。

表2 配置文件说明

glob是Python标准库中的模块,此模块提供了类似于UNIX/Linux系统中的通配符的路径名查找方式,可用于匹配符合用户要求的文件。例如,使用“*”代表0个或多个字符,使用“?”代表任意一个字符,使用“[]”匹配指定范围内的字符,如[0-9]匹配数字[13]。

argparse是Python标准库提供的用于解析命令行参数的模块,可以灵活地处理用户输入的参数选项,如文件输入路径、文件输出路径等[14]。

以上三个模块的应用对于提高程序的灵活性和易用性具有立竿见影的效果。然而,随着计算机硬件的发展,利用多核CPU的处理能力来提高数据处理的效率越来越受到社会的重视。利用Python标准库提供的concurrent.futures模块,可开发支持多任务并行的应用程序[15]。二次开发过程中也充分考虑了数据处理的效率,运用多线程技术将程序的数据处理能力提高了数倍。

基于TEQC软件的数据编辑和质量检查功能,通过Python的二次开发,弥补了TEQC的部分不足,所实现的unificate.py和qualitycheck.py程序具有以下功能或特性: 1) 封装TEQC的数据编辑功能,提供可读性高、容易编写的配置文件接口(YAML格式); 2) 封装TEQC的数据质量检查功能,提取并输出数据质量检查结果的重要指标; 3) 通过通配符,用户可灵活指定被处理的数据文件; 4) 相比BAT或SHELL脚本,多任务并行的特性使程序的数据处理效率有较大提高。

2 实例分析

本文先后进行了两个实验,分别验证了unificate.py和qualitycheck.py程序的功能及其高效、批处理等特点。实验数据采用的是SDCORS观测网络2012年的部分观测数据。

2.1 格式标准化

本次实验设计了4个实验方案对SDCORS数据进行格式标准化处理,方案设计如表3所示。

表3 实验1方案设计

在方案1中,将实验数据放到指定文件夹,如“rinex”,在“命令提示符”窗口进入脚本所在目录,输入命令“python unificate.py rinex/*2070.16o-out unificated -cfg-siteconfig.yml”,表示处理rinex文件夹中所有文件名以“2070.16o”结尾的文件,其中配置文件为-siteconfig.yml,将最终的处理成果输入到当前路径的unificated文件夹。其他方案依此类推。

通过对四种方案进行实验,并对每种方案的耗时进行统计,实验结果如表4所示。

表4 实验1各方案耗时统计

查看程序输出的数据文件,发现格式标准化以后,观测文件信息更加完整,添加了接收机类型和天线类型,同时将采样间隔修改为30 s.由表4可以看出,处理14.6 GB、29.1 GB、58.1 GB、463 GB的数据分别需要120.5 s、212.2 s、478.2 s、3 722.3 s。相比于仅使用TEQC软件进行处理,处理速度有了很大幅度的提高,同时也很大程度上提高了操作的便利性。这对于提高工作效率有着非常大的帮助。

2.2 质量检查

本文设计了两个实验方案对SDCORS网络观测数据进行质量检核。该参考站网络共有90个站点,实验所用数据为2012年第001天的观测数据。方案1不对观测数据进行任何预处理,直接使用GAMIT/GLOBK软件进行基线解算[16]。方案2使用qualitycheck.py脚本对数据进行质量检查,并根据质量检查结果修复不合格数据并剔除观测时间较短的数据,再将预处理后的数据使用GAMIT/GLOBK软件进行基线解算。

方案2的具体步骤如下:

1) 利用unificate.py脚本对数据进行格式标准化,本次实验所用数据为2012年001天的数据,在“命令提示符”窗口进入脚本所在目录,输入命令:“python unificate.py rinex/*0010.12o -out unificated -cfg -siteconfig.yml”。

2) 利用qualitycheck.py脚本对数据进行质量检查,在“命令提示符”窗口进入脚本所在目录,输入命令:“python qualitycheck.py unificated/*0010.12o -out table > result.txt”,处理unificated目录内文件名以“0010.12o”结尾的文件,将最终的检查成果以表格形式输出到result.txt文件中。限于篇幅所限,表5中仅包含部分测站的质量检查信息。

表5 质量检查结果(部分)

经过对检查结果的统计分析发现,SZRS站的MP1为0.55,超过阈值0.5,数据质量不合格;PYRS站的MP2为0.78,超过阈值0.75,数据质量不合格;ZHYU站的MP2为0.77,超过阈值0.75,数据质量不合格。针对数据质量不合格的三个测站进行处理,其中对SZRS测站的MP1分析文件进行分析找出多路径效应较为严重的历元和卫星,分析发现,3号卫星在1 930~1 980历元多路径效应严重;同样对PYRS测站和ZHYU测站的MP2文件进行分析,发现PYRS测站的2号卫星在800~900历元多路径效应严重,ZHYU测站的3号卫星2 700~2 850历元多路径效应比较严重。利用TEQC文件切割功能,将多路径效应严重的历元删除,处理后数据质量得到改善。修复后的质量检查结果如表6所示:

表6 预处理前后典型测站数据质量

由表6可以看出,通过以上的数据预处理,SZRS、PYRS和ZHYU站的各项指标均达到了阈值要求。同时,分别对方案一中的原始数据和方案二中预处理后的数据使用GAMIT/GLOBK软件进行基线解算,解算结果显示,未经过预处理的数据解算结果的标准均方根误差(NRMS)值为0.23,经过预处理后的数据的解算结果为NRMS值为0.20,以上结果充分说明利用qualitycheck.py程序进行数据预处理并对不合格数据进行修复,可以有效提高数据解算的质量和数据解算的精度。

3 结束语

采用qualitycheck.py和unificate.py程序进行数据预处理,效率高,操作便捷,生成的结果丰富可靠,能够有效的分析和提高GPS观测数据的质量,提高数据解算的精度,有助于工作人员了解测站周围的环境变化及仪器的稳定性。

1) 利用Python进行二次开发的unificate.py程序,能够批量、高效、方便快捷的进行数据的格式标准化,将不同站点采集的观测数据记录格式、采样间隔、天线类型和接收机类型等统一为标准化的文件格式。

2) 利用qualitycheck.py程序,能够有效地探测GPS观测数据中信噪比、电离层、周跳和多路径效应的影响,并以一定的指标(如MP1、MP2、SN1、SN2、CSR)、多种表现形式(表格、列表等)展现质量检查的结果。

3) 通过qualitycheck.py和unificate.py程序对数据进行格式标准化和质量检查,对不合格的数据进行修复,并利用GAMIT/GLOBK软件对观测数据进行基线解算,结果表明根据质量检查结果进行数据预处理并对不合格数据进行修复,可以有效提高数据解算的精度。

[1] 周保兴. GPS数据预处理方法研究及其应用[D].南京:河海大学,2005.

[2] 李征航,张小红, 卫星导航定位新技术及高精度数据处理方法[M]. 武汉:武汉大学出版社,2013.

[3] 余文坤,戴吾蛟,杨哲. 基于TEQC 的GNSS 数据质量分析及预处理软件的设计与实现[J].大地测量与地球动力学, 2010, 30(5): 81-85.

[4] ESTEY L H,MEERTENS C M. TEQC: the multipurpose tookit for GPS/GLONASS data[J]. GPS Solutions, 1999, 3 (1): 42-49.

[5] 朱道强,关海涛. Python在ArcGIS中的应用[J]. 测绘与空间地理信息,2013,36(7):152-154.

[6] 贾莹媛,黄张裕,杨富春,等. 基于Matlab的TEQC在GPS数据预处理中的应用[J]. 海洋测绘,2012,32(02):52-54.

[7] 郭金运,刘智敏,赵春梅. 区域CORS网数据处理方法及应用[M]. 北京:科学出版社, 2016.

[8] 李军,王继业,熊熊, 等. 东北地区GPS 观测数据质量检测和分析[J]. 武汉大学学报(信息科学版) 2006, 31(3): 209-212.

[9] 赵传华,秘金钟,党亚民. 基于TEQC的数据预处理分析[J]. 导航定位学报,2013,1(1):84-88.

[10] 田云锋. TEQC在GPS 数据预处理中的应用[J]. 计算机与信息技术, 2008(12): 63-66.

[11] The YAML Project. The Office YAML Web Site[EB/OL]. (2011-11-20)[2018-1-11]. http://yaml.org.

[12] The YAML Project. The Office PyYAML Web Site[EB/OL]. (2016-08-28)[2018-1-11]. http://pyyaml.org.

[13] Python Software Foundation. Python 3.5.5 documentation, The Python Standard Library : glob - Unix style pathname pattern expansion[EB/OL]. (2018-01-04)[2018-1-11].https://docs.python.org/3.5/library/glob.html.

[14] Python Software Foundation. Python 3.5.5 documentation, The Python Standard Library : argparse - Parser for command-line options, arguments and sub-commands[EB/OL]. (2018-01-04) [2018-1-11]. https://docs.python.org/3.5/library/argparse.html.

[15] Python Software Foundation. Python 3.5.5 documentation, The Python Standard Library : concurrent.futures - Launching parallel tasks[EB/OL]. (2018-01-04)[2018-1-11].https://docs.python.org/3.5/library/concurrent.futures.html.

[16] HERRING T A, KING R W, MCCLUSKY S C. GAMIT Reference Manual[EB/OL]. Massachusetts Instituteof Technology, MIT, 2010: 63-64.

猜你喜欢

多路径质量检查配置文件
提示用户配置文件错误 这样解决
多路径效应对GPS多普勒测速的影响
审计署赴江西省审计厅质量检查座谈会
搭建简单的Kubernetes集群
互不干涉混用Chromium Edge
基于5.8G射频的多路径识别技术应用探讨
忘记ESXi主机root密码怎么办
加强会计信息质量检查促进会计基础工作规范
基于5.8GHz多路径精确识别方案研究
面向多路径并行传输的拥塞控制及公平性