chaoshu的个人博客分享 http://blog.sciencenet.cn/u/chaoshu

博文

Gamit基线解算

已有 13977 次阅读 2014-8-24 19:47 |个人分类:GAMIT/GLOBK|系统分类:科研笔记

最近刚刚开始接触gamit软件,感觉文件太多,每个文件代表什么意思,有什么作用都需要不断的深入了解。不过这些并不影响初学者顺利的解算出基线结果,对于刚开始学习,能获得到可用的结果会增加学习动力和信心哦。

下面总结一下这两天亲身经历的gamit最简单的基线解算方法。分为两种:分步解算和利用sh_gamit批处理。前者比较繁琐,但是对理解gamit的解算过程很有帮助,建议分步解算多次之后,可以试着利用sh_gamit批处理;

一、分步解算

1、数据准备(注意我的电脑是Ubuntu 12.10 安装的是gamit 10.5)

本次解算的事例使用了不同天,不同时段的36个外业观测数据(2014 170 172 173 174),具体的数据已经上传到附件中,以及我国境内的5个IGS站(wuhn bjfs lhaz guao chan)。

使用终端(Ubuntu中的快捷键Ctrl+Alt+T)进入到你想要的路径。我选择在桌面上,所以输入(我是root身份登入的)cd ~/Desktops

然后建立工程目录(我习惯用年作为目录名字):mkdir 2014

之后进入到工程中,分布建立brdc、igs和rinex目录并依此下载所需要的导航文件n,精密星历文件sp3和观测文件o:

cd 2014

mkdir brdc igs rinex

cd brdc

sh_get_nav -archive sopac -yr 2014 -doy 170 -ndays 5 -ftp_prog ncftp

(注意,不需要你记住这么长的命令,只要在终端中输入sh_get_nav回车就会有帮助)

cd ../igs

sh_get_orbits -archive sopac -yr 2014 -doy 170 -ndays 5 -type gfile -pre r

cd ../rinex

sh_get_rinex -archive sopac cddis  -yr 2014 -doy 170 -ndays 5 -sites wuhn bjfs chan guao lhaz

(这里有一个问题,本来-days是用来控制下载几天的数据的,但是这里我设置成5,还是只下载了一天的数据,不知道你的电脑上是不是也有这样的问题,如果是,没关系,那就分别下载各天数据,这不会浪费你多少时间)

到此,已经完成数据下载。需要注意的是,rinex中下载的是igs压缩文件.z,用uncompress filename解压,解压之后还不是rinex的o文件而是.d文件,利用sh_crx2rnx转换成o文件,注意一次只能转换一个文件,效率很低,如果有比较多文件时,就可以利用shell编写一个批处理的小程序,这个很简单,不在赘述。

2、更新tables

首先安装gftp

apt-get gftp

安装完后输入

gftp

输入地址ftp://garner.ucsd.edu/archive/garner/gamit/tables

回车

输入用户名anonymous登入

如果你是新手,那就把所有的文件都下载更新;其实是不需要这样的,等你熟悉之后,可以只更新你需要的文件就行了。

tables更新完成之后,在工程目录下连接tables

sh_setup -yr 2014

3、在工程目录2014下建立解算工作目录

mkdir 170 172 173 174

cd 170

将附录中的rinex.rar文件下载放到170目录中,解压

apt-get rar

rar x rinex.rar

rm rinex.rar

此时,170中有36个o文件,把不同年积日的数据放到不同的文件夹中

mv ????172?.14o ../172

mv ????173?.14o ../173

mv ????174?.14o ../174

这样170就只剩下170的数据了。

下面将分别在170 172 173 174工作目录下面解算数据,以170为例详细说明。

4、将igs、brdc和rinex数据链接到工作目录

ln -s ../igs/igs.....sp3 ./      

(igs.....sp3代表了这天的精密星历文件,具体的文件名,可以再igs文件夹中查看一下)

ln -s ../brdc/brdcdoy0.yyn ./

ln -s ../rinex/????170?.yyn ./

(这里的yy是14,2014年的后两位)

5、将tables文件夹中的station.info文件复制到当前工作目录170中,并删除其中的测站信息,仅保留文件头,并执行下面语句

sh_upd_stnfo -files *.yyo

打开心生成的station.info文件,查看测站信息是否正确

gedit station.info

注意查看天线高,天线高量取方式等信息。如果有误,修改过了。

6、生产近似坐标文件lfile.

首先,在tables文件夹中新建一个文件pointfile,然后打开itrf00.apr文件,查找IGS站的坐标,本事例中只有wuhn和bjsf两个站有坐标值,把这两行记录数据复制到pointfile文件中。其他的三个IGS站和170文件夹中的所有观测站的近似坐标:

sh_rx2apr -site <site> -nav brdcdoy0.yyn -ref <ref> -apr ../tables/itrf00.apr

其中site是准备生成的近似坐标的o文件名;ref是求双差时参考的o文件名,这里使用bjfs1700.14o文件。

运行之后,会生成site.apr和lfile.site两个文件,把site.apr中的数据复制到pointfile文件中。

依此按照上面的方法把所有的测站近似坐标求出来,并都存放在pointfile中。

将pointfile文件复制到170目录中,执行下面语句:

gapr_to_l pointflie lfile. "" yr doy

(这里yr是2014,doy是170,双引号表示的是<full names> 即GAMIT中4个代码测站的全称,用双引号表示此时GAMIT测站全称由station.info得到,不是由l-file得到)

这样就生成了lfile.文件了

7、链接tables到解算目录170中

links.day yr doy expt

(这里yr是2014 doy是170,expt是工程名2014)

8、数据解算

8.1 sh_makexp –expt 2014 –orbt igsf –yr 2014 –doy  170 –sess 99 –srin –nav   brdc1700.14n –apr lfile.–sinfo  30 00 00 2880

8.2 sh_sp3fit –f igs17974.sp3 –o igsf –d 2014 170 –r BERNE –t –u

8.3 sh_check_sess –sess 170 –type gfile –file gigsf4.170

8.4 makej brdc1700.14n jbrdc4.170

8.5 sh_check_sess –sess 170 –type jfile –file jbrdc4.170

8.6 makex 2014.makex.batch

8.7 fixdrv d20144.170

8.8 csh b20144.bat

这样就完成了基线解算,按照上面的方法,依此把后面的172、173和174解算完成。

可以发现其实分步解算有点繁琐,而且有很多重复工作,如果懂得shell编程,数据解算是可以编写一个小程序的。从第7步开始,可以用下面的程序完成:

#!/bin/bash
#-------------------------------------------------
#step1:customize my-self experiment
expt='2014' #等号两边均不能有空格存在
yr_4='2014'
yr_2='14'
yr_1='4'
doy='170'
sp3type='igsf'
sp3file='igs17974.sp3'
#-------------------------------------------------
#step2:link the tables into current directory
#links.day $yr_4 $doy $expt
#-------------------------------------------------
#step3:preparation for experiment
sh_makexp -expt $expt -orbt $sp3type -yr $yr_4 -doy $doy -sess 99 -nav brdc${doy}0.${yr_2}n -apr lfile. -sinfo 30 00 00 2880
sh_sp3fit -f $sp3file -o $sp3type -d $yr_4 $doy -r BERNE -t -u
sh_check_sess -sess $doy -type gfile -file gigsf${yr_1}.$doy
makej brdc${doy}0.${yr_2}n jbrdc${yr_1}.$doy
sh_check_sess -sess $doy -type jfile -file jbrdc${yr_1}.$doy
makex $expt.makex.batch
fixdrv d${expt}${yr_1}.$doy
csh b${expt}${yr_1}.bat

将上面的程序文件保存为my_gamit,然后附加执行命令

chmod +x my_gamit

这样之后就可以输入

./my_gamit

自动完成计算。

二、sh_gamit批处理

这种解算方法就简单了很多,前面的1、2步骤相同,后面不同如下:

3、将rinex.rar数据解压到rinex文件夹中,所有的o文件都放在rinex当中。

4、将tables文件夹中的station.info文件复制到rinex文件夹中,并删除其中的测站信息,仅保留文件头,并执行下面语句

sh_upd_stnfo -files *.yyo

打开心生成的station.info文件,查看测站信息是否正确

gedit station.info

注意查看天线高,天线高量取方式等信息。如果有误,修改过了。

将新生成的station.info复制到tables中,替换掉以前的老文件。

5、生产近似坐标文件lfile. 方法与上面的基本是一样的。

首先,在tables文件夹中新建一个文件pointfile,然后打开itrf00.apr文件,查找IGS站的坐标,本事例中只有wuhn和bjsf两个站有坐标值,把这两行记录数据复制到pointfile文件中。在rinex文件夹中求所有观测站的近似坐标:

sh_rx2apr -site <site> -nav ../brdc/brdcdoy0.yyn -ref <ref> -apr ../tables/itrf00.apr

其中site是准备生成的近似坐标的o文件名;ref是求双差时参考的o文件名,这里使用bjfs1700.14o文件。

运行之后,会生成site.apr和lfile.site两个文件,把site.apr中的数据复制到pointfile文件中。

依此按照上面的方法把所有的测站近似坐标求出来,并都存放在pointfile中。

将pointfile文件复制到rinex目录中,执行下面语句:

gapr_to_l pointflie lfile. yr doy

(这里yr是2014,doy可以是170,172,....当中的任意一个,这里用doy为170)

将生成的lfile.文件复制到tables中,替换老的文件。

6、然后在工程目录2014下面输入

sh_gamit -d 2014 170 172 173 174 -expt 2014 -noftp


这样就完成了解算。

当然,这是最简单的解算方式,基本上没有修改任何参数,其实gamit中还有很多问题需要注意,更加深入的学习就要靠自己了!

相互学习,我也有很多不懂的地方,如果那里有错误,还望指出。

参考资料:

周命端 《gamit-globk中文使用说明书(CG)》




https://blog.sciencenet.cn/blog-858128-821991.html

上一篇:GRACE数据反演地表垂直变形
下一篇:GAMIT链接的tables相关表文件
收藏 IP: 59.174.165.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-21 02:24

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部