ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

GAMIT从配置到出结果

GAMIT从配置到出结果 GAMIT从配置到出结果安装目录虚拟机配置VMwareWSL2启用WSL2下载Ubuntu18.04 LTS换源安装依赖项改编译器优先级将安装包导入虚拟机VMWareWSL2解压压缩包文件夹提升权限编译GAMIT修改Makefile.config修改GAMIT几个常量更新包添加环境变量基线解算数据准备rinex文件的准备工作大写转小写工具RINEX合并工具广播星历与精密星历的准备工作tables文件准备解算策略选择观测值使用高阶电离层处理策略表文件更新海潮模型下载批处理解算新发现的报错处理方式解算结果查看总体精度基线精度GAMIT 是一种常用的GNSS高精度数据处理软件建议运行环境为Ubuntu20.04以下编译环境使用gcc-9gfortran-9以下版本gcc-7有问题。在Windows需要搭配虚拟机使用。常用的虚拟机软件包括VMWareOpen VirtualBox以及WSL2.在离线设备上安装使用了VMWare镜像导入的方式进行安装后续探索如何将WSL镜像直接导入。Ubuntu原生自带的gfortran 7对GAMIT编译选项支持不正确其他10以下的版本均可正常编译10以上版本需要添加编译选项详见我的另一篇文章在Ubuntu 24.04安装GAMIT。安装目录本次将软件安装至~/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下载完成后打开自动弹出新建用户的窗口注意用户名仅能为小写字母密码不显示换源在终端内依次执行sudosed-is//.*archive.ubuntu.com//mirrors.ustc.edu.cng/etc/apt/sources.listsudosed-is/security.ubuntu.com/mirrors.ustc.edu.cn/g/etc/apt/sources.listsudosed-is/http:/https:/g/etc/apt/sources.listsudoaptupdate安装依赖项参考GAMIT快速入门引导http://geoweb.mit.edu/gg/docs/GG_Quick_Start_Guide.pdfsudoaptinstallgfortranmakelibx11-dev csh tcshbccurlgmt gmt-dcw gmt-gshhg改编译器优先级官方推荐使用gcc-6进行编译其实gcc-9以下除了gcc-7都能用。可以忽略这步重新装下sudoaptinstallgcc-6 gfortran-6为使得gccgfortran命令使用所需版本需要对优先级进行设置sudoupdate-alternatives--install/usr/bin/gcc gcc /usr/bin/gcc-646sudoupdate-alternatives--install/usr/bin/gfortran gfortran /usr/bin/gfortran-646清除优先级设置sudoupdate-alternatives--removegcc /usr/bin/gcc-6sudoupdate-alternatives--removegcc /usr/bin/gfortran-6将安装包导入虚拟机VMWare若已成功安装VMWare Tools直接拖入虚拟机即可。WSL2在终端操作即可Windows端的硬盘挂在/mnt/目录下。例如cp/mnt/e/download/gamit.zip.# 将E:\download\gamit.zip 复制到当前目录解压压缩包不同来源的第三方GAMIT资源 文件的结构可能不尽相同以手头的为例。unzipgamit.zip-dgamit# 将gamit.zip解压到./gamit/文件夹内文件夹提升权限安装更新包时文件夹权限不够需要使用高版本gfortran才能搞定。一步到位给软件安装目录所有权限sudochmod-R777gamit编译GAMITcdgamit修改Makefile.config检查x11的LIB和INCLUDE路径是否正确Ubuntu18.04为/usr/lib/x86_64-linux-gnu /usr/include/X11修改GAMIT几个常量MAXSIT99//最大测站数MAXSAT45//单系统最大卫星数MAXATM25// 最大天顶延迟MAXEPC8640//历元数随时可改改后重新编译即可。执行以下命令一路按y开始编译./install_software更新包下载更新包后复制到~/gg目录下执行./install_updates一路按Y即可完成更新。添加环境变量使用默认的bash更改家目录下的.bashrc即可cdvim.bashrc在.bashrc末尾添加exportPATH$PATH:/home/gamit/gamit10.71/gamit/bin:/home/gamit/gamit10.71/kf/bin:/home/gamit/gamit10.71/comexportHELP_DIR/home/gamit/gamit10.71/help保存退出后执行source.bashrc在任意目录下执行sh_gamit弹出用法安装完成。基线解算数据准备新建一个文件夹作为工程文件夹以test为例存放所需的东西mkdirtestcdtest# 新建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/ --- 解算配置文件rinex文件的准备工作需严格按上述命名格式命名此外务必使用gfzrnx对每个文件做一遍格式化这样出问题的概率将大大降低。以一个文件为例gfzrnx使用命令为gfzrnx-finpwuh22380.26o-f-foutwuh22380.26o最好写一个脚本进行批量处理同时务必校验文件名中的年纪日和实际观测时间是否对应。格式化完成后检查一下有哪些天缺数据取观测最全的一天来使用sh_rx2apr_new算概略坐标sh_rx2apr_new将使用RTKLIB做SPP来算概略坐标。用法sh_rx2apr_new-exe~/deps/RTKLIB/bin/rnx2rtkp-dir/mnt/hdd1/gamit_projects/20260908-XA-yr2026-doy238-outlxacs.238将会在工程目录下生成lxacs.238包含各测站的概略坐标。大写转小写工具sh_casefold-dird-files*.24o# 将所有以24o为后缀的文件的文件名转为小写RINEX合并工具如有需要则使用GFZRNX进行GFZRNX按照官网的提示配置好链接后gfzrnx-finpD084132*.24o-fout./d0841320.24o-kv# 将D084站132天的所有数据合并为d0841320.24o广播星历与精密星历的准备工作若${year}代表年份${week}代表GPS周则广播星历下载地址为ftp://gdc.cddis.eosdis.nasa.gov/pub/gps/data/daily/${year}/brdc/BRDM*.rnx.gz精密星历的下载地址为ftp://gdc.cddis.eosdis.nasa.gov/pub/gps/products/${week}/*.SP3.gz下多少星历取决于算多少产品。可使用改名脚本在brdc/及igs/文件夹内统一修改把gz文件放进去解压后操作即可用法为cdbrdc/gzip-d*.gz pwsh rename_brdc.ps1cdigs/gzip-d*.gz pwsh rename_sp3.ps1tables文件准备首先在rinex/目录下用前文提到的观测最全的一天更新station.infocdrinexhead-n6~/gg/tables/station.infostation.info sh_upd_stnfo-files*2380.26o而后比葫芦画瓢把观测截止的年份改成9999接收机类型粘贴一个已知的过来天线类型根据统计信息改好。这一步一定要严格按照其文件的位数来做否则解算不了。在test目录下执行sh_setup-yr2024把做好的概略坐标文件和station.info拷进去cdtest/catlxacs.238tables/lfile.catrinex/station.infotables/station.info解算策略选择编辑工程目录下的tables/sestbl.观测值使用长基线使用LC_AUTCLN小于几km的短基线使用L1,L2_INDEPEND.高阶电离层处理策略消电离层可以不处理Ion model GMAP改为Ion model NONE表文件更新推荐使用FileZillaFTP地址ftp://garner.ucsd.edu/archive/garner/gamit/tables下载后粘贴进~/gg/tables每周更新一次pmu.bull_fpmu.bull_aut1.usnopole.usno每月更新一次dcb.dat-dcb.dat.code_rinex.G有卫星发射或调整编号svnav.dat-igs_satellite_metadata_2311_plus.snxantmod.dat-igs14_2247_plus.atx卫星出现异常svs_exclude.dat-svs_exclude.dat.mit算新数据时vmf1grd.2024放到gg/GRIDS目录内luntab. soltab. nutabl 不再更新使用nbody即可海潮模型下载在~/gg下新建目录GRIDScd~/ggmkdirGRIDScdGRIDS在ftp内下载otl_FES2004.grid放到该文件夹中。批处理解算回到工程文件夹并执行sh_gamit将工程名写为testcd..sh_gamit-d2024132-orbitigsr-expttest-presELEV# 算2024年132日的数据使用igs快速星历工程名为test使用GMT画出高度角若要计算多天数据使用以下命令sh_gamit-s2024132135-orbitigsr-exptcqjx-presELEV# 算2024年132~135日的数据使用igs快速星历工程名为test使用GMT画出高度角参数比较多建议仔细阅读用法。新发现的报错处理方式感谢陈超老师的博客中点明的方法。在工程目录的tables/svnav.dat内搜索关键词G049可以查到对应关系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把基线精度导出grepX Notesta.1321# 将otesta.132中所有带X N的行导出至文件1中
返回列表