distaz¶
阅读须知
我们假定用户已经根据《配置操作系统》中的内容安装了 C/C++ 和 Fortran 编译器
gcc
、g++
和gfortran
以及常用命令行工具make
和git
等。修改环境变量时,我们假定用户当前使用的 Shell 是 Bash,且 Bash 配置文件 为
~/.bashrc
。Z Shell (zsh)用户应修改~/.zshrc
。不确定自己当前使用的是何种 Shell 的用户,可检查echo $SHELL
命令的输出。所有软件的安装方式及安装路径,均遵循《文件管理实践经验》和《软件安装实践经验》。
distaz
是一个可以用于计算球面上任意两点间球面距离、方位角和反方位角的小工具。
相关代码¶
distaz
代码很短,简单易懂,其采用的地球模型为椭球模型,精度上可以满足需求。
C、Fortran、Java、Python 以及 CGI 版本: 由 USC 的一个小组整理
Matlab 版本: 由 specfem3d_globe 提供
使用方法¶
仅以 C 语言版本的 distaz
为例,用如下命令即可编译:
$ cc distaz.c -o distaz -lm
并将生成的可执行文件移动到 ~/bin/
目录下:
$ mkdir -p ~/bin/
$ mv distaz ~/bin/
若 ~/bin/
路径尚未添加到环境变量 PATH 中,则执行如下命令:
$ echo 'export PATH=${HOME}/bin:${PATH}' >> ~/.bashrc
$ source ~/.bashrc
其输入为台站纬度、台站经度、事件纬度、事件经度:
sta_lat sta_lon evt_lat evt_lon
输出为震中距(单位为°)、反方位角和方位角:
Delta Baz Az
例如,台站位于(10°S,14°E),地震位于(40°N,50°W):
$ distaz -10 14 40 -50
77.218 314.930 114.795
注解
C 语言版的 distaz
默认输出小数点后 3 位。可以将源码 distaz.c
中
printf("%6.3f %6.3f %6.3f\n", delta, baz, az);
的 %6.3f
修改为更高精度的输出格式(例如 %8.5f
)以达到所需的精度。