学习记录:GAMIT解算处理流程(详细版)
数据下载
方法一
这里是通过脚本在武汉IGS数据中心进行下载的
具体:在工程文件(这里为2014)下通过命令新建一个.sh脚本
touch data_get.sh
具体内容:(2014为所下数据的年份)
#25/27
#! /bin/bash
cd /home/lixiaotong/data/2014/rinex
i=1
while (($i < 367)) ;do
if [ $i -lt 10 ]; then
char=00$i
elif [ $i -lt 100 ]; then
char=0$i
elif [ $i -lt 1000 ]; then
char=$i
fi
charr=0
dir=/pub/gps/data/daily/2014/$char/14o
ftp -niv igs.gnsswhu.cn <<EOF
user anonymous **********@126.com
bin
passive
lcd /home/lixiaotong/data/2014/rinex
cd $dir
get site$char$charr.14o.Z #site为所下载数据的测站
get site$char$charr.14o.Z
get site$char$charr.14o.Z
get site$char$charr.14o.Z
EOF
i=$(($i+1))
done
echo the files have been saved in folder
exit
方法二
①打开武汉IGS数据中心网页(http://www.igs.gnsswhu.cn/)选择好数据之后点击检测结果右方“下载链接”并另存为.txt格式(例:data.txt)
②打开一个终端,运行以下命令:
wget -i data.txt
这时会自动下载文件,但文件名会出现问题,不是我们想要的以测站为开头的文件名,所以需要在文件下载完成之后输入运行以下命令:
for var in `ls`; do mv -f "$var" `echo "$var" |sed 's/^.................................................................//'`; done
其中“ . ”的个数是你想删除文件名从左到右几个(例如:所下载文件名为httplahz2170.14o,想要删除每个文件开头的http那上述命令中的“ . ”就是4个)
文件名修改成功后,对所下载的所有.Z文件进行解压:
uncompress *.Z
就得到观测文件了,igs和brdc文件都按照上述方法准备好
table表文件更新
①.新建文件夹tem-tables,这里用filezilla(在我的电脑上更稳定)连接garner.ucsd.edu/archive/garner/gamit/tables下更新所需表文件到tem-tables。
②. 在tem-tables下运行:
cp * ~/gg/tables/
③. 在工程文件夹(2014)下运行:
sh_setup -yr 2014
模型文件下载及连接
利用filezilla连接everest.mit,edu/pub/GIRD,下载以下文件到tem-tables中:
vmf1grd.2014 #处理哪一年的数据就下载哪一年的模型文件
atmdisp_cm.2014
otl_FES2004.grid
将这几个文件同上复制到~/gg/tables中
在工程文件夹下的tables文件下运行以下命令进行模型文件的连接:
ln -s ~/gg/tables/vmf1grd.2014 map.grid
ln -s ~/gg/tables/atmdisp_cm.2014 atml.grid
ln -s ~/gg/tables/0tl_FES2004.grid otl.grid
制作L文件(lfile.)
① 在rinex文件下运行:
grep POSITION *.14o > lfile.rnx
rx2apr lfile.rnx 2014 001
gapr_to_l lfile.rnx.apr lfile. " " 2014 001
此时在rinex文件下已经生成lfile.复制到tables文件下
sestbl.修改
DAMP=VMF1
WMAP=VMF1
use map.list=N
use map.grid=Y
use otl.list=N
use otl.grid=Y
use atml.list=N
use atml.grid=Y
ION model=NONE
sites.defaults
由于我们已经准备好了观测文件那些,所以将sites.defaults修改为:
更新station.info
在table中用如下命令:
1. sed -n '2,6p' station.info *应为前六行*
2. sed -n '2,6p' station.info > ../rinex/station.info
3. sh_upd_stnfo -fliles *.14o
4. cp station.info ../tables/
如果处理的文件太多,在更新station.info的时候会出现:word too long的问题,这时可以通过脚本挨个处理:
① 在rinex中:
touch stnfo.sh
vim stnfo.sh #需要提前安装VIM
具体内容如下:
#!/bin/bash
#station information
site="darw kat1"
for ((i=1;i<10;i++))
do
sh_upd_stnfo -files *00${i}0.14o
done
for ((i=10;i<100;i++))
do
sh_upd_stnfo -files *0${i}0.14o
done
for ((i=100;i<365;i++))
do
sh_upd_stnfo -files *${i}0.14o
done
编辑完后,运行stnfo.sh
./stnfo.sh
可能会出现没有权限的问题,解决:
chmod u+x stnfo.sh
再次运行就OK了
最后,还是要复制到tables文件夹下
解算
在工程文件夹下:
- 如果结算单天数据(例:2014 001)
sh_gamit -expt 2014 -d 2014 001 -orbit IGSF -pres ELEV -noftp -dopts D ao x c
- 解算多天数据(例:2014 001-170)
sh_gamit -expt 2014 -s 2014 001 170 -orbit IGSF -pres ELEV -noftp -dopts D ao x c
也可以将过程输出到文件sh_gamit.log下,就是在上面的命令后面加
>sh_gamit.log
如果刚开始解算,建议直接输出到屏幕(自己开心就好)