sh2xyz 是一个 C++ 命令行工具,利用球谐系数正演计算地形或重力数据。程序支持并行计算。
安装(编译)
需使用源码包中的 makefile 编译生成可执行文件 sh2xyz。请将 makefile 中的变量 CC 改为你使用的编译器。并行计算通过 -fopenmp 标志开启,若不需要并行可删除该标志:
CC = g++-8 -fopenmp
若尚未安装 gcc:
- Mac OS 用户可通过 Homebrew 安装:
brew install gcc
- Linux 用户可通过 apt 安装:
apt-get install gcc
安装 gcc 后,执行 make 编译程序,再将可执行文件 sh2xyz 移动到(或软链接到)$PATH 中的任意目录,例如 /usr/local/bin。
用法
sph2xyz -t<table> -r<lonmin>/<lonmax>/<latmin>/<latmax>[/<altitude>] -i<dlon>/<dlat> -d<type> -f<ln>/<lm>/<hn>/<hm> [-p<loc-file>] [-s<refr>/<refR>] [-g<GM>/<R>] [-n<type>] [-c<col1>,<col2>,<col3>,<col4>] [-z<alti-file>[+d<col1>,<col2>,<col3>]] [-h] > out-file
选项说明
- -t:系数输入文件名。
- -r:设置观测点范围,观测点的海拔可选(未设置则默认为 0)。
- -i:观测点间隔。
- -d:正演计算类型。
- -f:用于计算的起始/结束阶次与度数。
- -p:将正演结果插值到从文件读取的球面位置。
- -s:参考坐标系的短半轴与长半轴。
- -g:重力模型参数。若计算重力数据则必须设置此选项。
- -n:连带勒让德函数的归一化类型。
- -c:选择系数的输入列。
- -z:从输入文件设置观测点的海拔。
- -h:显示帮助信息。
示例
对最大阶数与度数均为 360 的 example.SHcoeffs 进行正演计算:
sh2xyz -t example.SHcoeffs -r -180/180/-90/90/0 -i 0.5/0.5 -f 0/0/360/360 -s 10000/10000 > example.txt
计算得到的数据如下:
