震相拾取

相关命令plotpk

震相拾取,或者说标定到时,是 SAC 的一种常用功能。

ppk 模式的进入与退出

要进行震相拾取,首先要进入“ppk模式”。

读取波形数据后,在终端中键入 plotpk(简写为 ppk),就会出现一个绘图窗口。若之前未曾打开过绘图窗口,则此时焦点位于 ppk 打开的绘图窗口中;若之前曾经打开过绘图窗口,则需要鼠标点击一下绘图窗口以使得焦点位于绘图窗口而不是终端中。注意,在 SAC 进入“ppk 模式”后,终端中光标所在行不再出现 SAC 提示符“SAC>”。

SAC> fg seis
SAC> ppk    # 焦点位于绘图窗口中,进入 ppk 模式
            # 光标所在行没有提示符"SAC> "

学会如何进入 ppk 模式后,还要学会如何退出 ppk 模式。首先,确保焦点位于绘图窗口而不是终端,然后将光标移动到绘图窗口中,按下“q”键即可退出 ppk 模式。此时,终端中光标所在行会重新出现 SAC 提示符“SAC>”。

只有当使用了 ppk 命令,焦点位于当前绘图窗口,且鼠标位于当前绘图窗口内才称为 ppk 模式。在 ppk 模式下,所有的键盘输入都会被解释为“ppk 命令”,且不会在终端中显示出来。若使用 ppk 命令后,不慎使焦点位于终端内,即脱离了 ppk 模式,此时所有的键盘输入都会在终端中显示,但不会被 SAC 解释,当退出 ppk 模式时,SAC 才会依次解释终端中的命令。

ppk 模式下拾取震相

下面介绍如何在 ppk 模式中拾取震相。先进入 ppk 模式,此时焦点位于绘图窗口,并保证鼠标位于绘图区(即四个边框)的内部,移动鼠标到要标记到时的地方,依次按下 t0,在要标记的到时处会出现一条竖线,旁边有标识 T0,此时已经将要标记的到时(即竖线对应的 X 轴位置)保存到头段变量 T0 中。再按下 q 以退出 ppk 模式,最后在终端键入 wh 将内存中的头段变量写回到磁盘文件中。

除了可以键入 t0 之外,0还可以用1到9的任意数字替换,分别表示将要标记的到时保存到 T0T9 中。

SAC> fg seis
SAC> ppk
# 键入"t""0"标记到时,然后按"q"退出ppk模式
SAC> lh t0
     t0 = 1.255385e+01
SAC> wh         # 保存头段

在键入 t 时,鼠标不仅要在绘图窗口内,还要在绘图区(即四个边框)的内部,否则会得到 “Bad cursor position. Please retry.” 的错误提示。

SAC 全局变量 SAC_PPK_USE_CROSSHAIRS 可以控制 ppk 模式下鼠标在绘图窗口内的形态。若其值为 0,则鼠标会以十字线的形式出现,即“\(+\)”;当其值为 1 时,会在十字线的基础上加上水平线和垂直线。通常建议设置其值为 1,使得拾取到时时更精确。该全局变量的设置方式参考 SAC 安装 一节。

关闭快速绘图

快速绘图,是指 SAC 在显示图形时降采显示,以便快速地在电脑屏幕上展现出图形。SAC 默认开启该功能,这是为适应上世纪的计算机硬件性能所设计的。现代计算机性能强大,不再需要降采显示来快速绘图。所以通常都应该关闭快速绘图,以防止波形显示不佳,降低了到时拾取的精度。快速绘图的开启和关闭是由 qdp 命令控制的:

SAC> dg sub reg elk.z
SAC> qdp on     # 打开快速绘图选项(默认值)
SAC> ppk
SAC> qdp off    # 关闭快速绘图选项
SAC> ppk        # 注意观察与之前的区别

为了避免手动执行 ``qdp off``的麻烦,可以使用 SAC 初始化 一节中介绍的方法,让 SAC 启动时就自动关闭快速绘图选项。

关于 SAC 的显示的详细信息,可以参考 图像外观 一节以及命令 qdp 的说明。

放大与缩小

有时数据时间较长,难以精确标定到时,此时需要将图幅放大,以显示整个波形的一小部分。

首先需要将光标移动到绘图区域中的某位置,键入“x”,再移动至另一位置,再次键入“x”。这样,两次键入确定了一个时间窗。这时,绘图窗口中将只显示该时间窗内的波形,也就实现了图幅的放大。可不断重复此步骤,进行多次放大。

SAC v101.5 之后的版本有更方便的方式:在绘图窗口中某位置按下鼠标左键,并拖动至另一位置再松开鼠标左键,则两个位置之间的时间窗内的波形会被放大。

图幅的缩小通过键入“o”来实现,“o”最多可以回退5次绘图历史。

同时标记三分量

通常,震相在同一台站的三分量数据上具有相同的到时,因而将同一台站的三分量数据画在一张图上,一方面可以综合三分量的波形信息以更准确地识别震相,另一方面,一次标定三分量的震相到时可以减少工作量并保证震相在三分量上的到时相同。使用命令“ppk p 3 a m”进入 ppk 模式即可每次只显示并同时标记三个波形数据。

通常在拾取震相时会一次性读入多个台站的波形数据,而“ppk p 3 a m”一次只能显示三个波形数据,可以在ppk模式下不断键入“n”以依次显示接下来的三个波形,也可以键入“b”以显示前三个波形。当不断键入“n”直到所有波形数据都显示完毕的时候,会自动退出 ppk 模式。

SAC> dg sub tele *       # 生成多个台站的三分量数据
SAC> ppk p 3 a m
# 键入 t0 标记 ntkl 台站的三分量到时
# 键入 n 以绘制接下来的三个数据
# 键入 t0 标记 nykl 台站的三分量到时
# 键入 n 以绘制接下来的三个数据
# 键入 b 以绘制之前的三个数据
# 键入 t0 重新标记 nykl 台站的三分量到时
# 键入 n 以绘制接下来的三个数据
# 键入 t0 标记 onkl 台站的三分量到时
# 键入 n 以绘制接下来的三个数据
# 键入 t0 标记 sdkl 台站的三分量到时
# 键入 n 自动退出 ppk 模式
SAC> wh
SAC> q

在使用“ppk p 3 a m”选项同时标记三分量时需要注意:

  • 三分量数据的参考时刻必须相同;若参考时刻不相同,则标记的结果是错误的

  • 该命令每次会按照顺序显示内存中的三个波形数据,当且仅当每次显示的三个波形数据恰好是同一台站的三分量数据时,该命令才能用作同时标记同一台站的三个分量

要使得每次显示的恰好是同一台站的三分量波形数据,则要求同一台站的三个分量在内存中分别位于第 n、n+1 和 n+2 位,其中 n 为正整数。通常情况下,一次性读入全部数据的时候,都可以满足这一要求。但也有一些例外:

  • 数据文件名比较奇葩,导致读入时同一台站的三分量数据不是紧挨着读入的,可以使用“ls *.SAC”命令检查文件的读入顺序;

  • 某个台站丢失了一个分量的数据,导致后面的所有台站都出现问题;

ppk 命令

除了上面介绍的若干 ppk 命令之外,还有很多其他 ppk 命令。 table:plotpk-commands 列出了 ppk 模式下的所有命令,其中常用的命令包括“b”、“l”、“n”、“o”、“q”、“t”和“x”。 所有命令均不区分大小写。

表 5 ppk模式命令一览表

命令

含义

说明

a

定义事件初至a

1,7

b

如果有,则显示上一张绘图

c

计算事件的初至和结束

1,4,7

d

设置震相方向为DOWN

e

设置震相onset为EMERGENT(急始)

f

定义事件结束f

1,2,3,7

g

以HYPO格式将拾取显示到终端

4

h

将拾取写成HYPO格式

3,4

i

设置震相onset为IMPULSIVE

j

设置噪声水平

2,6,8

k

即kill,退出ppk模式

l

显示光标当前位置

2,4

m

计算最大振幅波形

2,3,5

n

显示下一绘图

o

显示前一个绘图窗,最多可以保存5个绘图窗

p

定义P波到时

1,2,3,7

q

即quit,退出ppk模式

s

定义S波到时

1,2,3,7

t

用户自定义到时tn,输入t之后需要输入0到9中的任一数

1,2,7

u

设置震相方向为UP

v

定义一个Wood-Anderson波形

2,5

w

定义一个通用波形

2,5

x

使用一个新的x轴时间窗,简单说就是放大

z

设置参考水平

2,6,8

@

删除已定义的拾取(包括A、F、P、S、T0)

+

设置震相方向为略微向上

-

设置震相方向为略微向下

设置震相方向为未知

n

设置震相质量为n,n取0-4

注意:ppk 模式的命令几乎都是由单个字符组成的,比如退出“q”,唯一的例外是命令“t”,由字符“t”和0–9的整数构成。

不同的命令效果可能不同,有些会在绘图窗口显示信息,有些会将信息写入头段i 变量,下面对 table:plotpk-commands 中的说明进行一个说明:

  • 1: 会将信息写入头段变量

  • 2: 写入震相拾取文本文件(若已打开)

  • 3: 写入HYPO格式震相拾取文件(若已打开)

  • 4: 在绘图窗口中显示信息

  • 5: 窗口显示包含波形的矩形

  • 6: 在指定的水平处放置水平光标

  • 7: 绘图窗口显示含有到时标识的垂直线

  • 8: 绘图窗口显示含有标识的水平线

标定 P 波和 S 波

ppk 模式下可以键入 ps 来分别标定 P 波和 S 波到时。关于 P 波和 S 波到时的标定,有如下几点说明:

  • p 标定的P波到时信息保存到头段变量 A

  • s 标定的S波到时信息保存到头段变量 T0

  • 震相 onset 类型、震相方向和震相质量等信息仅用于标记 P 和 S 波,这些信息会保留在头段变量 KAKT0 中。

以标记 P 波到时为例,在进入 ppk 模式后,依次按下 ed1p 四个按键,此时会将 P 波到时信息保存在头段变量 A 中,头段变量 KA 中的值则是 EPD1,这四个字符表明这是一个 EMERGENT 且极性向下的 P 波,震相质量为1,即震相比较清晰。

ppk 修改版

SAC 的 plotpk 命令在实际使用中有两大痛点:

  1. 拾取震相时需要按下 T 和数字键才能标记一个到时,且某些数字键与按键 T 距离太远

  2. 无法删除已标记的到时

为了解决这两个问题,对代码做了一些修改,增加了如下两个功能:

  1. 直接使用数字键即可标记震相到时

  2. 使用 @ 可删除标记到时

详情请参考 https://blog.seisman.info/faster-ppk/