taup_time

本节贡献者

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

最近更新日期

2021-01-04


TauP 提供的 taup_time 命令可用于计算震相走时、射线参数、出射角、入射角等信息。

基本用法

使用 taup_time -help 可查询该命令的完整用法和选项,此处仅介绍常用用法。

计算震源深度为 300 km,震中距 60° 处,P、S、PcP、ScS、PKiKP 震相的走时信息:

$ taup_time -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP
  • -h:震源深度(单位 km),默认深度为 0.0 km。

  • -deg:震中距(单位 °)

  • -ph:以逗号分隔的震相名

TauP 默认使用 iasp91 模型,可以使用 -mod 选项设置其他 TauP 预定义速度模型:

$ taup_time -mod prem -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP
$ taup_time -mod ak135 -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP

TauP 默认台站位于地表,可使用 --stadepth 选项设置台站深度(单位为 km):

$ taup_time -h 300 -deg 60 --stadepth 0.5 -ph P,S,PcP,ScS,PKiKP

若已知震源和台站位置,也可以使用 -evt-sta 选项分别指定震源和台站的纬度和经度。例如,震源位于 (40 °N,10 °E),台站位于 (20 °S,10 °W):

$ taup_time -h 300 -evt 40 10 -sta -20 -10 -ph P,S,PcP,ScS,PKiKP

警告

使用 -evt-sta 选项时,taup_time 会假设地球是完美球体,来计算震源和台站的震中距,这会产生一定的误差。例如,根据以上参数 taup_time 计算得到的震中距约为 62.83°,P 波初至到时为 594.27 秒。而 ObsPy 的 gps2dist_azimuth 函数计算得到的震中距约为 6959 km (采用 WGS84 椭球:赤道半径 6378.1370 km、扁率约为 0.0033528106647474805),在半径为 6371 km 的完美球状地球上约为 62.585°(利用 kilometers2degrees 函数计算得到),使用 62.585° 直接计算的 P 波初至到时为 592.64 秒,二者相差 1.63 秒。

在震中距比较小的情况下,可以使用 -km 选项指定震中距(单位为 km)。比如计算震源深度为 5 km,震中距 100 km 处,P、S、PcP、ScS、PKiKP 震相的走时信息:

$ taup_time -h 5 -km 100 -ph P,S,PcP,ScS,PKiKP

警告

使用 -km 选项,taup_time 会在参数解析时假定地球半径为 6371 km,将公里转换成度,并不以速度模型的实际半径为准。详情请参考 TauP 源码TauP issue#12

输出格式

下面的命令计算了 PREM 模型下,震源深度 100 km,震中距 60° 处,P 和 pP 震相的走时信息。其输出为:

$ taup_time -mod prem -h 100 -deg 60 -ph P,pP

Model: prem
Distance   Depth   Phase   Travel    Ray Param  Takeoff  Incident  Purist    Purist
  (deg)     (km)   Name    Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name
-----------------------------------------------------------------------------------
   60.00   100.0   P        595.40     6.815     30.14    20.82    60.00   = P
   60.00   100.0   pP       618.89     6.890    149.49    21.06    60.00   = pP

输出共 9 列,从左到右分别为:

  1. 震中距(度):地震震中与台站的大圆弧路径长度

  2. 震源深度(km)

  3. 震相名

  4. 震相走时(秒)

  5. 射线参数(秒/度)

    注解

    射线参数有三种常用单位:秒/度(s/deg )、秒/弧度(s/radian)、秒/千米(s/km)。三者之间的关系为(\(R_0\) 为地球半径,假设为 6371 km):

    \[1 s/deg = \frac{1}{\pi*R_0/180} s/km = 1/111.19492 s/km\]
    \[1 s/deg = \frac{1}{\pi/180} s/radian = 57.29578 s/radian\]
  6. 出射角(度):即射线从震源出射时与垂直向下方向的夹角,取值范围为 0 到 180°。

    • 0° 到 90° 表示射线向下出射(例如 P 震相)

    • 90° 到 180° 表示射线向上出射(例如 pP 震相)

    注解

    不同文章对出射角的定义不同,使用时应格外注意。

    老版本的 TauP 对出射角的定义不同,可视为 BUG,应避免使用老版本 TauP。

  7. 入射角(度):射线入射到台站时与垂直向上方向的夹角。

  8. Purist 距离:地震波实际走过的圆弧距离。

    该值可能与震中距不同,例如 50° 震中距处记录到的 PKKKP 震相,实际走过的圆弧距离为 410°:

    $ taup_time -deg 50 -ph PKKKP
    
    Model: iasp91
    Distance   Depth   Phase   Travel    Ray Param  Takeoff  Incident  Purist    Purist
      (deg)     (km)   Name    Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name
    -----------------------------------------------------------------------------------
      50.00     0.0   PKKKP   2519.56     2.242      6.72     6.72   410.00   = PKKKP
    
  9. Purist 震相名:地震波的“真实”震相名。

    例如,若想要计算 SS 震相在 660 km 不连续面的下表面的反射波走时,可指定其震相名为 S^660S。由于 PREM 模型中 660 km 不连续面的“真实”深度为 670 km,此时 TauP 实际返回的时从 670 km 处反射回的震相,此时 Purist 震相名会显示为 S^670S:

    $ taup_time -mod prem -deg 120 -ph S^660S
    
    Model: prem
    Distance   Depth   Phase    Travel    Ray Param  Takeoff  Incident  Purist    Purist
      (deg)     (km)   Name     Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name
    ------------------------------------------------------------------------------------
      120.00     0.0   S^660S   1975.75    12.336     20.79    20.79   120.00   * S^670S
    

可以使用 --rel 选项输出相对于某个指定震相的走时差。例如,下面的命令中,最后一列输出了所有震相相对于 PcP 震相的走时差:

$ taup_time -mod prem -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP --rel PcP

Model: prem
Distance   Depth   Phase   Travel    Ray Param  Takeoff  Incident  Purist    Purist Relative to
  (deg)     (km)   Name    Time (s)  p (s/deg)   (deg)    (deg)   Distance   Name       PcP
-----------------------------------------------------------------------------------------------
   60.00   300.0   P        574.72     6.739     33.65    20.58    60.00   = P      -42.32
   60.00   300.0   PcP      617.05     4.016     19.28    12.09    60.00   = PcP      0.00
   60.00   300.0   PKiKP    993.45     1.245      5.88     3.72    60.00   = PKiKP  376.41
   60.00   300.0   S       1043.98    12.659     34.16    21.37    60.00   = S      426.93
   60.00   300.0   ScS     1134.89     7.480     19.38    12.43    60.00   = ScS    517.85

信息提取

上面介绍的输出中包含了很多信息,想要在脚本中提取出想要的信息有些麻烦。所以 taup_time 提供了一些选项,使得在脚本中计算走时、射线参数更加方便。

走时

--time 选项使得输出中只包含走时信息,并且小数点的位数更多:

$ taup_time -mod prem -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP --time
574.7245 617.047 993.4524 1043.9805 1134.8923

需要注意的是,输出的走时不是按照 -ph 选项中震相的顺序进行排序的,而是按照走时递增的顺序排序。比如这里,S 震相放在震相列表的第二位,而 S 震相的走时 1043.9805 却放在第四位。

射线参数

--rayp 选项使得输出中只包含射线参数信息,并且小数点的位数更多:

$ taup_time taup_time -mod prem -h 300 -deg 60 -ph P,S,PcP,ScS,PKiKP --rayp
6.739042 4.0158706 1.2450149 12.65922 7.480467

此时,输出的射线参数是按照 -ph 选项中震相的顺序进行排序的。

注解

--rayp--time 选项不能一起使用。当两个选项同时使用时,会以后出现的选项为准。