震相理论到时¶
震相理论到时的计算是地震学的基础,具体的原理涉及到一大堆公式,感兴趣的读者可以阅读相关文献。
日常工作中经常需要识别震相、将波形按理论到时排序或迭加、计算震相到时残差等等,这些都需要用到震相理论到时。将震相理论到时写入到 SAC 文件的头段中,可以使得后期处理更加简单。SAC 头段中可以用于保存震相到时信息的头段包括:a
、f
以及 tn
(n=0–9),
ka
、kf
和 ktn
则用于保存相应的震相名信息。
给 SAC 文件标记理论到时有三种方法,下面一一介绍。
手动标记¶
最直观的办法是根据SAC文件中的震源深度和震中距信息用某些程序计算出理论到时,然后用 chnhdr 命令手动将到时信息写入到 SAC 头段中。
SAC> dg sub teleseis nykl.z # 以nykl.z为例
SAC> lh evdp gcarc # 查看震源深度和震中距
evdp = 0.000000e+00
gcarc = 3.841450e+01
# 利用某程序计算得到ak135模型下,P波走时为443.14秒,S波走时为799.05秒
# 若SAC文件的参考时间为发震时刻,则
SAC> ch t0 443.14 t1 799.05 kt0 P kt1 S
SAC> lh t0 kt0 t1 kt1
t0 = 4.431400e+02
kt0 = P
t1 = 7.990500e+02
kt1 = S
该方法很直接也很基础, 其缺点也很明显,那就是麻烦。如果参考时刻不是发震时刻的话,则更复杂一些。
traveltime命令¶
traveltime 是 SAC 提供的一个命令,用于计算 iasp91 或者 ak135 地球标准模型下的震相理论走时,并自动将震相到时信息保存到 SAC 头段变量中。
SAC> dg sub teleseis nykl.z
SAC> traveltime model iasp91 picks 3 phase P S
traveltime: depth: 0.000000 km
SAC> lh t3 kt3 t4 kt4
t3 = 4.430530e+02
kt3 = P
t4 = 7.999642e+02
kt4 = S
该命令会将震相P、S的理论到时依次写入头段变量 t3
、t4
中,并在相应的 K 头段中写入震相名信息。该方法的优点在于是 SAC 内置命令,使用起来也很简单,缺点在于只支持两种地球速度模型。
taup_setsac
命令¶
TauP 软件提供的 taup_setsac
命令可用于计算震相理论到时并保存到SAC文件中。
$ taup_setsac -mod prem -ph P-6,S-7 -evdpkm *.SAC
该命令会根据 SAC 文件中的震中距和震源深度信息,计算震相在一维地球模型下的理论走时,将震相走时写入到头段 Tn
中,并向 KTn
中写入震相名称,向
USERn
中写入震相的射线参数(单位为 s/radian )。上面的示例中,使用了 PREM 地球模型,将 P 和 S 的走时信息写入到头段 T6
和
T7
中。
该方法的优点在于支持多种地球标准模型、自定义模型以及自定义震相。