前言
近期在老师的推荐下学习重力场和GNSS数据处理软件GROOPS,主要是学习精密单点定位(PPP)和精密定轨(POD)的相关知识。
软件简介
Groops软件是由TU Graz、德国波恩大学等学者开发的重力场恢复面向对象系统,主要由C++开发,少部分采用Fortan代码,主要功能包括地球重力场恢复(GRACE)、GNSS卫星定轨、精密单点定位(PPP)、低轨卫星定轨等。
代码托管地址: https://github.com/groops-devs/groops说明文档:https://groops-devs.github.io/groops/html/index.html(学习Groops必备,对每个操作、每个函数、输入输出、数学原理都有非常详细的解释)
官方示例场景+标文件:https://ftp.tugraz.at/outgoing/ITSG/groops/(data-表文件,scenario-示例场景)
示例场景及源码下载(百度云):https://pan.baidu.com/s/1JlU24AWQ7xMmwPFPpbZM4g(提取码:fv8q)
相关论文:https://www.essoar.org/doi/10.1002/essoar.10505041.1
1.程序编译
Groops的编译安装步骤在官网上有详细介绍,按照步骤编译即可,此处不再赘述,参照安装链接,也可参阅代码包中的INSTALL.md。
注意:编译过程中将命令中的"C:\groops"替换为自己的groops文件夹路径
编译完成后,在groops\bin文件夹中会产生groops.exe及groopsMPI.exe
2.环境配置
参考安装说明中的post-installation步骤,程序编译完成后,在电脑的环境变量中添加如下
C:\groops\bin
C:\msys64\mingw64\bin
C:\Program Files\Microsoft MPI\Bin // 根据自身情况修改路径
环境变量添加完毕后,程序编译就完成了。
安装验证:在Windows命令行中输入groops.exe,出现如下图所示,表明安装成功
3.GUI安装
Groops提供GUI来更加便捷、可视化的进行操作,GUI基于Qt 5.15.1或更新版本
3.1 Qt安装
Qt 5.15.1采用在线安装模式,所需组件参考Groops安装步骤中的说明,安装器地址:https://download.qt.io/official_releases/online_installers/ 安装完成后,添加Qt的环境变量
C:\Qt\5.15.1\mingw81_64\bin // 根据自身情况修改路径
3.2 GroopsGUI安装
Qt安装完成后,双击groops\gui中的groopsGUI.pro打开项目,编译器选择MinGW 64-bit,运行成功后程序界面如图。
此时,即可利用GUI进行Groops的各项操作,非常方便。
4.程序示例
Groops利用XML文件进行程序的配置运行,在GUI中根据所需进行程序的添加与配置,可直接在GUI中运行,也可通过命令行运行。
4.1 GUI运行
利用官方提供的程序示例,该示例选用了SimulateKeplerOrbit函数,该函数根据输入的开普勒轨道根数仿真卫星的位置,具体的输入、输出参照官方说明。
示例程序在GUI中的界面如图,点击工具栏中的绿色三角即可运行程序。
程序运行完成后,会出现如下窗口,输出文件默认生成于XML文件同一路径下。
4.2 命令行运行
Groops支持在命令行中使用,输入命令如下
cd /d C:\groops\example \\进入配置文件所在路径
groops.exe example.xml \\执行程序
运行结果如图,输出文件默认生成于XML文件同一路径下。
5.注意事项
在第一次编译完成后,出现了groops.exe无法链接于动态链接库的错误,程序无法运行。
经过查询程序依赖关系,程序所引用的库中包含了Qt中的C++库,库不完整。
错误原因:由于此前安装过Qt,编译前环境变量中已有Qt的环境变量,Groops在编译中错误引用了Qt中的同名C++库,没有引用正确位置msys64\mingw64\bin中的库。
解决方法:编译前删除Qt的环境变量,再进行编译,就能引用正确位置的C++库。编译出的程序能够正常运行。