GNSS 数据批量整理脚本
组织保存大量的 GNSS 数据文件时,IGS 的数据存放方式是一个不错的借鉴。但数据的分类整理亦是非常枯燥繁琐的工作。并且,限于目前的 GAMIT/GLOBK 程序所能处理的数据在 99 个站点以内,因此在处理大量的数据时常常需要对观测网进行子网划分操作。这也同样需要按照子网划分方案对观测数据进行整理。
本文将介绍 Pinot 中所涉及的两个 GNSS 数据整理脚本:orderfile.py 和 subnet.py。
脚本功能
本文所涉及的两个脚本及其功能如下:
- orderfile.py:以 IGS 的方式整理 GNSS 观测文件;
- subnet.py:以配置文件的指定方式整理文件。
参数说明
orderfile.py
该脚本的使用方式为:
1 | $ python orderfile.py <file> [<file> ...] -out <directory> [-k] [-r] [-v] [-h] |
参数释义:
<file>
:要处理的文件名,可由通配符指定;-out <directory>
:文件的输出路径,若该文件夹不存在将自动创建。该项默认为当前路径的 daily 文件夹;-k
、--keep
:整理文件时是否保留源文件。即以拷贝的方式整理还是以剪切的方式整理,默认为剪切方式;-r
、--recursive
:指定用 “**/” 的通配符前缀表示递归搜索子文件夹的内容,不加该参数默认为不递归;-v
、--version
:显示版本信息;-h
、--help
:显示帮助。
subnet.py
subnet.py 脚本可以按照配置对数据进行整理,这主要用于数据的子网划分操作。该脚本可接受的参数为:
1 | $ python subnet.py <file> [<file> ...] -out <directory> -cfg <config> [-r] [-v] [-h] |
参数释义:
<file>
:要处理的文件名,可由通配符指定;-out <directory>
:子网划分结果的输出路径,默认为当前路径下的 subnets 文件夹;-cfg <config>
:子网划分配置文件路径。该配置文件使用 YAML 语言编写,默认为当前目录中的 _subnet.yml 文件;-r
、--recursive
:指定用 “**/” 的通配符前缀表示递归搜索子文件夹的内容,不加该参数默认为不递归;-v
、--version
:显示版本信息;-h
、--help
:显示帮助。
配置文件
只有 subnet.py 脚本需要配置文件,该配置文件使用 YAML 格式编写。
配置文件示例
配置文件中的站点名,需使用小写字母。下面是一个配置文件示例:
1 | net1: |
使用示例
以剪切的方式整理 data/ 目录内的所有 RINEX 文件并递归搜索其子文件夹的内容,将处理成果输出到当前目录的 daily 文件夹:
1 | $ python orderfile.py data\**\* -out daily -r |
以拷贝的方式整理 2016、2017 两个文件夹并递归搜索其子文件夹的内容,将处理成果输出到当前目录的 daily 文件夹:
1 | $ python orderfile.py 201[67]\**\* -out daily -r -k |
处理 rinex/ 文件夹中观测年为 2016 年的观测文件,其中配置文件使用当前目录中的 _subnet.yml,将最终的划分成果输入到当前路径的 nets 文件夹:
1 | $ python subnet.py rinex\*.16[odOD] rinex\*.crx rinex\*.rnx -out nets -cfg _subnet.yml |
处理 rinex/ 文件夹及其子文件夹中观测年为 2016 年,年积日为 042 至 045 的 RINEX O-文件,其中配置文件使用当年目录中的 _subnet.yml,将最终的划分成果输入到当前路径的 nets 文件夹:
1 | $ python subnet.py rinex\**\*04[2-5]0.16[oO] -out nets -cfg _subnet.yml -r |
下载地址
该脚本及同一工具包的其他脚本均放在 Github 网站上:purpleskyfall/pinot。
修改记录
- 2017-09-17,orderfile.py 0.2.0,subnet.py 0.4.0:
- 去掉
-dir
和-glob
参数,使用位置参数指定输入文件; - 支持多个输入文件或通配符;
- 支持 RINEX 3 格式的文件。
- 去掉
- 2017-09-17,orderfile.py 0.2.1,subnet.py 0.4.1:
- 优化在 UNIX/Linux 中的输出信息显示。