GAMIT从配置到出结果
GAMIT 是一种常用的GNSS高精度数据处理软件,建议运行环境为Ubuntu18.04,编译环境使用gcc-6+gfortran-6。在Windows需要搭配虚拟机使用。常用的虚拟机软件包括VMWare,Open VirtualBox以及WSL2.在离线设备上安装使用了VMWare镜像导入的方式进行安装,后续探索如何将WSL镜像直接导入。
安装目录
本次将软件安装至~/gamit
目录内。
~/gamit
虚拟机配置
VMware
- 下载VMWare Workstation Pro,查询一个可以用的激活码。
- 下载Ubuntu18.04.6LTS镜像 https://releases.ubuntu.com/18.04/ubuntu-18.04.6-desktop-amd64.iso
- 安装VMWare 软件,打开软件,按照提示一步步安装即可,无需先创建磁盘再装系统。
尽量把磁盘容量留大一些,装数据有可能不够用
WSL2
启用WSL2
需要在BIOS内开启内核虚拟化以提升性能
控制面板->程序->启用或关闭Windows功能
中勾选适用于Linux的Windows子系统
和虚拟机平台
,重启电脑
下载Ubuntu18.04 LTS
在微软商店中下载Ubuntu18.04 LTS,下载完成后打开自动弹出新建用户的窗口
注意:
用户名仅能为小写字母
密码不显示
换源
在终端内依次执行
sudo sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/http:/https:/g' /etc/apt/sources.list
sudo apt update
安装依赖项
参考GAMIT快速入门引导,http://geoweb.mit.edu/gg/docs/GG_Quick_Start_Guide.pdf
sudo apt install gfortran make libx11-dev csh tcsh bc curl gmt gmt-dcw gmt-gshhg
改编译器优先级
官方推荐使用gcc-6进行编译,重新装下
sudo apt install gcc-6 gfortran-6
为使得gcc
gfortran
命令使用所需版本,需要对优先级进行设置
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 46
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-6 46
清除优先级设置:
sudo update-alternatives --remove gcc /usr/bin/gcc-6 sudo update-alternatives --remove gcc /usr/bin/gfortran-6
将安装包导入虚拟机
VMWare
若已成功安装VMWare Tools,直接拖入虚拟机即可。
WSL2
在终端操作即可,Windows端的硬盘挂在/mnt/
目录下。例如:
cp /mnt/e/download/gamit.zip .# 将E:\download\gamit.zip 复制到当前目录
解压压缩包
不同来源的第三方GAMIT资源 文件的结构可能不尽相同,以手头的为例。
unzip gamit.zip -d gamit # 将gamit.zip解压到./gamit/文件夹内
文件夹提升权限
安装更新包时,文件夹权限不够需要使用高版本gfortran才能搞定。一步到位给软件安装目录所有权限
sudo chmod -R 777 gamit
编译GAMIT
cd gamit
修改Makefile.config
- 检查x11的LIB和INCLUDE路径是否正确,Ubuntu18.04为
/usr/lib/x86_64-linux-gnu
/usr/include/X11
修改GAMIT几个常量
MAXSIT 80 //最大测站数
MAXSAT 35 //单系统最大卫星数
MAXATM 25 // 最大天顶延迟
MAXEPC 2880 //历元数
随时可改,改后重新编译即可。
执行以下命令,一路按y开始编译:
./install_software
更新包
下载更新包后,复制到~/gg
目录下,执行./install_updates
,一路按Y即可完成更新。
添加环境变量
使用默认的bash,更改家目录下的.bashrc即可
cd
vim .bashrc
在.bashrc
末尾添加
export PATH=$PATH:/home/gamit/gamit10.71/gamit/bin:/home/gamit/gamit10.71/kf/bin:/home/gamit/gamit10.71/com
export HELP_DIR=/home/gamit/gamit10.71/help
保存退出后执行
source .bashrc
在任意目录下执行
sh_gamit
弹出用法,安装完成。
基线解算
数据准备
新建一个文件夹作为工程文件夹,以test为例,存放所需的东西
mkdir test && cd test # 新建test并进入
GAMIT中需要准备四个文件夹
rinex/ ---> 原始观测数据
命名方法:wuhn1330.24o
前四位是测站名+三位年积日+(0:全天数据,其他:分小时数据,数字代表小时数,例:1代表0:00-01:00)+.+两位年份+o
注意:所有的字母的都是小写
brdc/ ---> 广播星历
命名方法类似,brdc+年积日+0+.+两位年份+n
igs/ ---> 精密星历
命名方法:三位产品代码+四位gps周+周内日+.sp3 例:igr23136.sp3 2313周第6天的igs快速精密星历
tables/ ---> 解算配置文件
大写转小写工具
sh_casefold -dir d -files *.24o # 将所有以24o为后缀的文件的文件名转为小写
RINEX合并工具
GFZRNX
按照官网的提示配置好链接后
gfzrnx -finp D084132*.24o -fout ./d0841320.24o -kv # 将D084站132天的所有数据合并为d0841320.24o
tables文件准备
在test目录下执行
sh_setup -yr 2024
而后进入工程文件夹的tables
目录
cd tables
执行
sh_upd_stnfo -files ../rinex/*.24o
完成station.info
的更新,更新完成后,用vscode打开station.info
,查找所有备注中带有../rinex/
的行
确保接收机型号及固件版本、天线型号及DOME为已知的型号
解算策略选择
编辑工程目录下的tables/sestbl.
观测值使用
长基线使用LC_AUTCLN
,小于几km的短基线使用L1,L2_INDEPEND.
高阶电离层处理策略
消电离层可以不处理,Ion model = GMAP
改为Ion model = NONE
表文件更新
推荐使用FileZilla,FTP地址:ftp://garner.ucsd.edu/pub/gamit/tables/
下载后粘贴进~/gg/tables
- 每周更新一次
pmu.bull_f
pmu.bull_a
ut1.usno
pole.usno
- 每月更新一次
dcb.dat->dcb.dat.code_rinex.G
- 有卫星发射或调整编号
svnav.dat->igs_satellite_metadata_2311_plus.snx
antmod.dat->igs14_2247_plus.atx
- 卫星出现异常
svs_exclude.dat->svs_exclude.dat.mit
- 算新数据时
vmf1grd.2024
,放到gg/GRIDS
目录内
luntab. soltab. nutabl 不再更新,使用nbody即可
海潮模型下载
在~/gg
下新建目录GRIDS
cd ~/gg
mkdir GRIDS && cd GRIDS
在ftp内下载otl_FES2004.grid
,放到该文件夹中。
批处理解算
回到工程文件夹并执行sh_gamit
,将工程名写为test
cd ..
sh_gamit -d 2024 132 -orbit igsr -expt test -pres ELEV
# 算2024年132日的数据,使用igs快速星历,工程名为test,使用GMT画出高度角
若要计算多天数据,使用以下命令:
sh_gamit -s 2024 132 135 -orbit igsr -expt cqjx -pres ELEV
# 算2024年132~135日的数据,使用igs快速星历,工程名为test,使用GMT画出高度角
参数比较多,建议仔细阅读用法。
新发现的报错处理方式
感谢陈超老师的博客中点明的方法。
20240501更新的包中,SVN号G049对应的卫星PRN号由G28改为G01
解算时会报错
FATAL:SV antenna offsets for SVN G049 not found in antmod.dat
解决方法为暂时禁用G01卫星,在工程文件夹下的svs_exclude.dat
中添加下面一行:
2024 132 01
在132天解算时禁用G01卫星。
解算结果查看
解算完成后,会生成以年积日命名的文件夹,例如132
在年积日文件夹中,主要查看sh_gamit_132.summary
文件和otesta.132
文件
总体精度
查看sh_gamit_132.summary
测站数与x文件数匹配
站点的RMS不全是0
无论松弛解还是约束解,Postfit nrms都应在0.2左右
模糊度固定率70~85%一般,大于90%很好
基线精度
查看otesta.132
查找带有"X N"的行,查看 +-
后的值,对于天解数据,基线精度应为水平毫米级,垂直方向稍大。
为方便查看,可以使用grep
把基线精度导出
grep "X N" otesta.132 > 1 # 将otesta.132中所有带X N的行导出至文件"1"中