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

下载 sh2xyz.zip

用法

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

计算得到的数据如下:

sh2xyz 示例图