已知点坐标文件的创建与使用
已知点坐标文件(.apr 文件)是使用 GLOBK 进行网平差时,用于输入已知点坐标的文件。GAMIT/GLOBK 程序所附带的 APR 文件,一般只有各 IGS 核心站在 ITRF 框架下的坐标和速度。因此,使用自带的 APR 文件,可以将解算点的坐标归化到某一 ITRF 框架内。但是,如果想获得站点在 CGCS2000 国家坐标系的位置,或已知点坐标不在自带的 APR 文件中时,我们就需要制作自己的 APR 文件。
本文将介绍 APR 文件的制作和使用方法。
文件格式
打开任何一个 APR 文件,都可以预览其文件的格式。APR 文件中每行包含一个已知点的信息。它一般长这样:
BJFS_2PS -2148744.08805 4426641.26603 4044655.92200 -0.03124 -0.00577 -0.00668 2005.0
其中的信息依次为站点名、站点在某历元下的三维坐标、站点三维速度以及坐标历元。有了这些信息,就可以很容易地计算出该站点在任何历元下的站坐标。
创建方法
尽管可以按照 APR 文件的格式来手动创建自己的 APR 文件,但一般不推荐这么做,毕竟手动编辑的方式很难保证文件格式的正确性。GAMIT/GLOBK 程序中提供的 rx2apr
命令可以提取 RINEX 观测文件中的概略坐标来创建 APR 文件,这是获得 APR 文件模板的好办法。虽然概略坐标的精度很难达到作为已知点坐标的要求,但我们在获得 APR 文件后只需对坐标值做一些校正即可。
实际上,使用 rx2apr
命令来创建 APR 文件的方法在前文 GAMIT 分步进行基线解算早已经提到过,制作概略坐标文件时曾经将产生的 APR 文件作为一个中间文件。
grep 是 UNIX/Linux 操作系统自带的一个程序,它从文本文件中查找并输出符合条件的行,用于匹配文本的模式通过正则表达式指定。该程序的使用教程网络上比比皆是,这里不深究,只提及一下其操作模式。grep 程序的基本操作模式为:
1 | $ grep <pattern> <input_file> |
其中 <pattern>
为用于搜索的正则表达式,<input_file>
为要处理的文件。
假定现在位于解算项目文件夹,首先使用 grep 提取所有观测文件中的概略坐标,并将输出重定向到文件中:
1 | $ grep "APPROX POSITION XYZ"$ rinex/*o > lfile.rnx |
然后使用 rx2apr
程序将 lfile.rnx 转化为 APR 文件:
1 | $ rx2apr lfile.rnx <year> <doy> |
这里的参数 <year>
和 <doy>
要求你输入以年和年积日表示的坐标历元。例如,我使用的已知点坐标历元处于 2016 年第 256 日,可以这样执行:
1 | $ rx2apr lfile.rnx 2016 256 |
运行命令后,将在操作目录生成文件 lfile.rnx.apr。这样得到的 APR 文件中的站速度一般都是零。你当然可以将其编辑为满意的值,但实际上如果已知点坐标是近期的,任其站速度为零也无不可。
应用配置
成功制作 APR 文件后,下一步就是使用它。如你所知,GLOBK 程序的控制文件是两个 .cmd 文件,我们需要修改它们来设置网平差时使用的已知点坐标文件。我制作的 APR 文件名为 my_regional.apr,位于项目文件夹的 tables 目录内,下面将以它为例。
分别打开 globk_comb.cmd 和 glorg_comb.cmd 文件,找到类似这样的一行:
apr_file ~/gg/tables/itrf08_comb.apr
这一项就是对网平差时使用的 APR 文件的配置。将其中的 APR 文件路径修改为实际要使用的项:
apr_file ../tables/my_regional.apr
然后在 glorg_comb.cmd 文件中设置固定站列表,在该文件最后找到类似这样的内容:
# This should match the well-determined sites in the apr_file
stab_site clear
source ~/gg/tables/igb08_hierarchy.stab_site
这里的第一行为注释,第二行将之前配置的固定站列表清空,第三行从 GAMIT 安装目录的 tables 文件夹中加载包含固定站列表的“igb08_hierarchy.stab_site”文件。
我们直接将第三行注释掉,然后在其之前添加一个固定站列表即可。最终这一部分配置如下(注意保持非注释行第一列为空格):
# This should match the well-determined sites in the apr_file
stab_site clear
stab_site +well
stab_site +demo
stab_site +work
x source ~/gg/tables/igb08_hierarchy.stab_site
将这两个控制文件应用到 GLOBK 网平差操作,得到的就是使用自定义固定站的解。如果设置的已知点未能成功固定,可以适当调整联测的网形或变更所使用的固定点。