GNSS 数据批量质量分析脚本
在对 GNSS 观测数据进行处理之前,我们一般都需要进行观测质量分析。其中 TEQC、GFZRNX 等都是常用的质量检查工具。但这些程序处理大量的数据时皆显得略有不便。并且,很多时候我们只需记录一些最关键的质量分析指标。
qualitycheck.py 脚本是一个批量进行 RINEX 数据质量分析的脚本,通过调用 TEQC 程序对输入数据处理,输出观测时长、信噪比、多路径效应、周跳等质量检查成果。
运行环境
由于本程序的质量分析操作依赖于 TEQC 程序,但是因不同版本的 TEQC 的输出信息格式有略微不同,本脚本保证在使用 2016Nov7 及以后版本的 TEQC 时测试通过。
需注意的是:对于 Windows 10、Windows 7 等操作系统,只需将 TEQC 程序放入系统能搜索到的路径下,即在任意目录中启动命令提示符执行 teqc 命令能显示 TEQC 程序的提示信息;但对于 Windows XP 或 Windows server 2008 等操作系统,需保证运行脚本的文件夹内有 TEQC 程序,否则可能出现 “’teqc’ 不是内部或外部命令,也不是可运行的程序或批处理文件。” 的错误。
参数说明
该脚本可接受的参数有:
1 | $ python qualitycheck.py <file> [<file> ...] -out <format> [-r] [-v] [-h] |
参数释义:
<file>
:要处理的文件名,可由通配符指定;-out <format>
:信息输出的方式,该参数有两个选项:列表或表格(默认)。列表输出方式以list
或l
指定,表格输出方式以table
或t
指定;-r
、--recursive
:指定用 “**/” 的通配符前缀表示递归搜索子文件夹的内容,不加该参数默认为不递归;-v
、--version
:显示版本信息;-h
、--help
:显示帮助。
输出示例
前文已经提到,该脚本的输出信息有两种形式:列表和表格,采用 -out
参数指定。该参数为 l
、list
或未指定时为列表;为 t
或 table
时为表格形式。
列表形式
一个列表形式的输出消息如下:
1 | test\2016\001\16o\bjfs0010.16o quality marks: |
表格形式
表格形式的输出信息方便使用 Excel 或 Pandas 等程序做进一步处理。一个表格形式的输出消息如下:
1 | file date start end hours SN1 SN2 MP1 MP2 CSR |
使用示例
处理 rinex/ 文件夹中观测年为 2016 年的观测文件,将最终成果以表格形式输出到屏幕:
1 | $ python qualitycheck.py rinex/*.16[oO] -out table |
处理 rinex/ 内 001、009 两个子文件夹内的观测文件,将最终成果以表格形式输出到当前路径下的 result.txt 文件:
1 | $ python qualitycheck.py rinex/00[19]/*[oO] -out t > result.txt |
处理 rinex/ 文件夹及其子文件夹中观测年为 2016 年,年积日为 042 至 045 的 RINEX O-文件,将最终成果以列表形式输出到当前路径下的 result.txt 文件:
1 | $ python qualitycheck.py rinex/**/*04[2-5]0.16[oO] -out list -r > result.txt |
下载地址
该脚本及同一工具包的其他脚本均放在 Github 网站上:purpleskyfall/pinot。
修改记录
- 2017-09-22,版本 0.4.0:
- 去掉
-dir
和-glob
参数,使用位置参数指定输入文件; - 支持多个输入文件或通配符;
- 添加多线程支持;
- 将默认输出形式更改为表格。
- 去掉
- 2018-03-14,版本 0.4.3:
- 优化在 UNIX/Linux 中的输出信息显示。
- 2018-03-14,版本 0.4.4:
- 将输出信息中的时间窗长度替换为数据累计观测长度(即 length 被替换为 hrs),以便分析实际的数据可用率。
- 2018-05-17,版本 0.4.5:
- 修复处理质量差数据时出现的 Bug,提升稳定性。