
【GAMIT10.7安装包更新以及基线解算获取ZTD和PWV报错解决方案】
针对于GAMIT10.7版本只能解算2020年12月31日前的数据,安装了GAMIT更新包,可以解算出2020年以后的数据。同时,利用基线解算获取了参考站的ZTD和PWV信息。对于上述安装和解算过程中遇到的问题进行了总结,同时给出了有效的解决方案!
前言
这次主要任务是利用GAMIT基线解算,获取参考站的天顶对流层延迟。
当然在解算过程中遇到了许许多多的问题,这里我先将这些问题直接分类,尽量把我当时遇到问题给大家列出来,帮助大家少走弯路(●ˇ∀ˇ●)
1.解算的数据是2023年的,涉及到GAMIT版本更新安装问题(只要大家解算新数据基本都会遇到)。
2.我使用的是我们自建站的数据,在接收机和天线类型的匹配上也出现了一些问题。
3.之前只用GAMIT/GLOBK做过时间序列分析和生成速度场信息,没有提取过天顶对流层相关的数据(这个网上的教程还是比较多的,主要是个人总结)。
#----------------------------------------------------------前言分割线----------------------------------------------------------
下面直接正文!
1 GAMIT10.7版本安装更新包
可能有的朋友现在安装GAMIT10.7的时候就有问题,出现这样的报错:
报错1:Makefile:313: recipe for target ‘gamit_lib.a(dlinpk.o)’ failed
make:* [gamit_lib.a(dlinpk.o)] error 1**
Failure in make_gamit – install_software terminated
可能的原因:可能是现在的gcc, gfortran, g++的版本太高了,gamit安装时存在着不兼容的问题。
解决方案:这里可以参考陈超老师的博文,链接如下:https://blog.sciencenet.cn/blog-858128-1225514.html
第一步:安装多个版本的编译器
sudo apt-get install gcc-5 gcc-5-multilib g++-5 g++-5-multilib gfortran-5 gfortran-5-multilib
sudo apt-get install gcc-6 gcc-6-multilib g++-6 g++-6-multilib gfortran-6 gfortran-6-multilib
sudo apt-get install gcc-7 gcc-7-multilib g++-7 g++-7-multilib gfortran-7 gfortran-7-multilib
第二步:设置编译器优先级
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 70
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 70
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 60
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 50
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-5 70
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-6 60
sudo update-alternatives --install /usr/bin/gfortran gfortran /usr/bin/gfortran-7 50
第三步:选择编译器版本
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
sudo update-alternatives --config gfortran
一般gcc g++ gfortran都用6即可。
报错2:grep SP file: bad year 2023
**可能的原因:**因为GAMIT10.7版本只支持处理2020年12月31号之前的数据。具体可以查看:
…/gamit/lib/timcon.f,…/gamit/lib/rinex.f, …/gamit/orbits/getics.f 这几个路径下显示了GAMIT使用时间范围,下面附了/gamit/lib/timcon.f路径下的一张示意图,一般没更新的都是到2020年,直接搜索2020即可。
解决方法:GAMIT/GLOBK群里一般会有更新包,无需解压,直接放在和GAMIT安装包同样的位置,运行脚本./install_updates即可。
报错3:
System release number translated to 4150
No i86 complier specification–assuming gfortran (gcc 4.2x)
Missing source code crs_trs under lib, stop in unimake
Failure in make_gamit --install_software terminated
可能的原因:这个就是很多博主在gamit安装的时候,要uname -a 查看Linux内核的版本号,同样是GAMIT10.7安装包,有的在/libraries/Makefile.config中的就是从0.0.1 to 4.9.30,具体如下图
解决方法:可以直接像我一样把它换个版本,改成5.5.8,下面改成 OS_ID Linux 0001 5580,重新安装./install_software即可
#----------------------------------------------------------section 1分割线----------------------------------------------------
2 GAMIT 解算过程中遇到的问题
报错4:FATAL :240115:2230:42.0 MAKEXP/makexp: Number of x-files > 99,具体如下图:
可能的原因:这种一般是观测文件大于99个导致的
解决方法:确定好网型,减少一些测站观测数
报错5:FATAL :240119:1506: 3.0 MAKEX/rbatch: Number of sites in makex batch file ( 81) greater than MAXSIT in dimpar.h ( 80),具体如下图:
可能的原因:这种也是观测文件超过原本设定的个数(/libraries/Makefile.config中的 MAXSIT 80 )
解决方法:可以改成MAXSIT 99,目前没试过改成三位数的。
报错6:
FATAL :240116:1521:58.0 MAKEX/set_dcb_flag: S001 PCN-code missing for receiver type HITVN8 in rcvant.dat, cannot set C1/P2 correction flag
FATAL :240115:2253:51.0 MAKEXP/lib/read_rcvant: Receiver name HI-TARGET VNET8 not found in rcvant.dat
FATAL :240116:2057:52.0 MODEL/get_antpcv: Input antenna type HITAT45101CP NONE (HITAT45101CP NONE) not in ANTEX PCV file; site s002 (Name antmod.dat)
可能的原因:上述出现的几种报错,基本都是接收机和天线信息没有更新,此时需要自己添加相应的信息,修改 antmod.dat, rcvant.dat, guess_rcvant.dat, hi.dat 这几个文件,我主要也是参考CSDN上一位博主的,以下是他的链接:
https://blog.csdn.net/u013283220/article/details/122344409
#----------------------------------------------------------section 2分割线----------------------------------------------------
3 ZTD与PWV的解算
step 1: 数据准备:brdc, igs, rinex, met (算PWV时需要气象参数文件)
step 2: 更新tables表:soltab., luntab., nutabl., ut1.unso/pole.usno, svnav.dat, sntmod.dat, rcvant.dat/guess_rcvant.dat, hi.dat, leap.sec, svs_exclude.dat
step 3: 链接表文件,删除死链接,重新链接。注意:2020年后,soltab., luntab., nutabl.链接nbody文件即可。
step 4: sestbl.文件修改。
Met obs source = RNX UFL GPT 50;
Output met = Y;(解算PWV时需要打开)
step 5: sh_gamit -expt demo -d 2023 001 -met
此时,即可得到对流层延迟Z-文件。
step 6: sh_gamit -expt demo -d 2023 001 -met -metutil Z
可生成可将水汽估计值。
关于GAMIT解算的详细步骤可以参考我之前的博客
https://blog.csdn.net/ch11enlbj/article/details/107795969
水汽的详细解算过程可参考GNSS Help上的一篇博客
https://gnss.help/2016/10/12/gamit-calculate-pwv/
#----------------------------------------------------------section 3(完结)分割线----------------------------------------
最后,最近GAMIT/GLOBK群里也有老师分享了解算中一些策略问题:
基线解算时,不能都统一采用LC_AUTCLN模式。对于较短基线,可采用L1_ONLY;中长基线采用LC_AUTCLN模式。
最后的最后,上述的一些问题是我近期两周工作中遇到的一些问题的小总结,在解算的过程中有些人肯定还会遇到各种各样的问题,也欢迎大家多多讨论,后续有缘再更新。(●ˇ∀ˇ●)
更多推荐
所有评论(0)