distaz

本节贡献者

田冬冬(作者)、 姚家园(审稿)

最近更新时间

2021-01-12


distaz 是一个可以用于计算球面上任意两点间球面距离、方位角和反方位角的小工具。

相关代码

distaz 代码很短,简单易懂,其采用的地球模型为椭球模型,精度上可以满足需求。

使用方法

仅以 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.cprintf("%6.3f %6.3f %6.3f\n", delta, baz, az);%6.3f 修改为更高精度的输出格式(例如 %8.5f)以达到所需的精度。