|||
本文转载http://www.gnss.help/2016/10/12/gamit-calculate-pwv/
原作者:山科研究生jiangyingming@live.com
0、前言
可降水汽含量(Precipitable water vapor, PWV)是进行 GNSS 气象学研究的重要数据,目前对该数值的解算大多依赖于 GAMIT 软件。作为 GAMIT 基线解算的重要副产品,PWV 可用于为气象预报、气象灾害、气候变化等方面的研究提供重要的参考指标。
本文将介绍使用 GAMIT 程序解算 PWV 的过程。
1、数据准备
上面已经提到过,PWV 是 GAMIT 基线解算时的副产品。我们只需要在基线解算前做一些设置,就可以在数据处理的同时输出对测站地区气象参数如干延迟、湿延迟、PWV 等的估计结果。
作为示例,我将选用周边的几个 IGS 测站进行处理。需要注意的是,在你处理自己观测的数据时,最好也引入几个 IGS 站点进行联合解算。因为过短的基线会使得解算出的气象参数有一定的相关性。我选取了 2016 年 9 月 11 日的 7 个 IGS 站点(BJFS,DAEJ,LHAZ,SHAO,SUWN,URUM,WUHN)的观测文件作为示例。这些站点中个别还具有气象数据,我也将其引入进来。最终的文件组织结构如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | · work/ |—— brdc/ |—— brdc2550.16n |—— igs/ |—— igs19140.sp3 |—— met/ |—— bjfs2550.16m |—— daej2550.16m |—— urum2550.16m |—— wuhn2550.16m |—— rinex/ |—— bjfs2550.16o |—— daej2550.16o |—— lhaz2550.16o |—— shao2550.16o |—— suwn2550.16o |—— urum2550.16o |—— wuhn2550.16o |—— tables/ |
2、参数配置
2.1、表文件准备
共用表文件的更新方法前文早已经提到过,不再赘述。此处仅说明获取映射函数模型的过程。
本次解算任务我将采用 VMF1 映射函数模型,该模型文件需要从 MIT 的 FTP 服务器下载,欲了解详情请移步之前的文章。因为 2016 年还未过去,所以下载到的映射函数模型仅适用于对年积日在 284 以前的数据进行处理,其文件名为 vmf1grd.2016_284(随获取日期不同,获取到的文件名可能略有差异)。下载后将其放入 GAMIT/GLOBK 程序安装目录的 tables 文件夹内。
使用 sh_setup 方法将所需的共用表文件链接至解算目录的 tables 文件夹,然后检查其中的 map.grid 是否正确链接至刚才下载的模型文件 vmf1grd.2016_284:
$ ls -l tables/map.grid |
如果系统输出中有类似这样的提示:
tables/map.grid -> /home/jon/gg/tables/map.grid.2016_284
则说明链接正确,否则需要使用如下命令重新建立链接:
$ rm -f tables/map.grid # 删除原始链接 $ ln -s ~/gg/tables/vmf1grd.2016* tables/map.grid # 创建新链接。如果你处理的不是 2016 年的观测数据,使用实际的年替换这里的 “2016” |
2.2、参数配置
对于本文的任务,我打算使用 sh_gamit 批处理命令进行数据解算。如之前所述,此时的配置文件主要有四个:sestbl.、sittbl.、process.defaults 和 sites.defaults。
在这里,我只修改必要的配置,其他项目保持默认。打开 sestbl.,将其中对应的项修改为:
Met obs source = RNX UFL GPT 50 ; hierarchical list with humidity value at the end; e.g. RNX UFL GPT 50 ; default GTP 50
Output met = Y ; write the a priori met values to a z-file (Y/N)
这里的 “Met obs source = RNX UFL GPT 50” 表示需要测站处的温度和气压等气象观测数据时,首先检查工程目录的 met 文件夹中有没有对应测站的 RINEX 气象文件,然后检查有无 U-文件中有无该站的信息,最后才采用 GPT 模型中的值。末尾的 “50” 表示假设的相对湿度,默认为 50%。你也可以对其进行更改,但实际上该值对解算结果影响很小。
而 “Output met = Y” 一项,表示设置 GAMIT 程序在基线解算的同时输出对气象参数的估计值,这些结果将保存至 Z-文件中。
同样在 sestbl. 文件中,将映射函数修改为使用 VMF1:
DMap = VMF1 ; GMF(default)/VMF1/NMFH; GMF now invokes GPT2 if gpt.grid is available (default)
WMap = VMF1 ; GMF(default)/VMF1/NMFW; GMF now invokes GPT2 if gpt.grid is available (default)
Use map.list = N ; VMF1 list file with mapping functions, ZHD, ZWD, P, Pw, T, Ht
Use map.grid = Y ; VMF1 grid file with mapping functions and ZHD
3、解算操作
完成上文的所有准备工作之后,就可以运行基线解算命令了:
$ sh_gamit -expt demo -d 2016 255 -met |
这里的 -met 参数指示在解算时引入 RINEX 格式的气象观测数据。如果你没有此类数据,可以省略该参数。等待解算完成,就可以在年积日文件夹看到输出的 Z-文件,在本示例中为:zbjfs6.255,zdaej6.255 等。
但如果你查看这些 Z-文件,会发现其中并没有 PWV 解算结果而只有对流层总延迟和干延迟等参数信息,还需要执行 sh_metutil 命令做进一步处理。这个命令的常见用法为:
$ sh_metutil -f <o-file> -z <z-file> |
其中 <o-file> 代表基线解算结果的 O-文件,<z-file> 代表输出的 Z-文件。具体到本例,在年积日文件夹执行命令:
$ sh_metutil -f odemoa.255 -z z*.255 |
最终的可降水汽解算成果保存在以 “met” 开头的文件中。具体到本例,它们是:met_bjfs.16255,met_daej.16255 等。
4、补充
如果你希望能在基线解算完成后直接生成可降水汽的估计值,可以为 sh_gamit 命令多加一个 -metutil Z 参数。如:
$ sh_gamit -expt demo -d 2016 255 -met -metutil Z |
另外,除了使用 Z-文件估计可降水汽,sh_metutil 命令还支持由测站的气象观测数据和基线解算得到的 O-文件生成可降水汽估计值。其命令为:
$ sh_metutil -f <o-file> -m <met-file> |
在该命令中,<o-file> 代表基线解算结果的 O-文件,<met-file> 代表站点气象观测数据。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-5-17 20:08
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社