我会用几篇的博客内容来记录对 SeisComP3 的学习总结。上篇 Automatic Detection 介绍了地震在“实时”环境下自动触发定位。SC3 开发目的之初是用于海啸预警,所以默认参数都是针对于大震,远震。在定位时,SC3默认用全球网格点(Grids),全球台站列表(Station lists),和全球速度模型结构(Velocity models)。本篇主要介绍 SC3 对地方(Local)或者区域(Regional)事件进行操作。

1. Data Preprocessing

SC3 最核心部分是在 seedlink 协议基础上,实现地震实时数据的交互处理,进而检测事件,计算事件参数,为地震应急和海啸预警服务。该软件提供“回溯模拟”功能,我们可以把自己的时间连续波形,以该软件要求的格式导入其中,该软件会在“实时环境”下运作,识别震相,检测和定位地震,计算地震的震级等参数。

SC3 对数据的要求分为两部分,Mini-Seed 格式的波形部分(数据长度要求为512-byte)和 Dataless Seed 格式的台站信息(台网台站名,经纬度和仪器参数等)部分。对于公开的台站,可以在 IRIS Dataless 网站(https://ds.iris.edu/ds/nodes/dmc/data/formats/dataless-seed/) 下载 Dataless SEED。其他情况需要配合仪器响应文件手动创建 dataless,这部分内容可参考另一篇博客 How to Creat Dataless SEED

关于 miniSEED 格式处理,SC3 开发目的是处理实时数据,所以要求导入数据长度较小的 512-byte 的 mini-seed 数据,另外,miniseed 文件内部的台站(频道)序列和时间序列有一定要求。这些要求可结合 sac2mseed, libmseed, 和 scmssort 几个软件或模块实现,如有需要请自行搜索。

2. Phase Picking

SC3 中默认使用 STA/LTA 方法进行震相自动拾取,即通过 short-term average(STA)和 long-term average(LTA)之比来表示台站接受到的地震波信号能量变化,该算法简单、计算效率高、适于实时处理。STA 主要反映微震信号的平均值,LTA 主要反映背景噪音的平均值。当地震信号到达时,STA 变化会快于 LTA 变化,STA/LTA 值会有明显的突变,如果这个比值超过设定的参考阈值(SC3 中默认为3),则认为此时接受到地震信号;一旦这个比值下降到另一个参考阈值(SC3 中默认为1.5)时,则认为此次事件结束,重新准备下一次地震的触发。

由于 STA/LTA 方法基于时窗宽度计算,所以通过获得的 P 波到时相较 P 波实际到时有一定滞后,SC3 提供 AIC 方法(求取地震信号 AIC 函数局部最小值的位置)来提高精度。 一般而言,近台往往可以使用更高的频带和更短的时间窗。SC3中关于 scautopick 的参数,可以参考以下参考值:

teleseismic: BW(4,0.7,2)>>STALTA(2,80)
regional: BW(4,1.0,10.0)>>STALTA(1,40)
local: BW(4,4,20)>>STALTA(0.2,10)

这些参数的具体含义以 BW(4,0.7,2)»STALTA(2,80) 为例,代表数据经过了一次四阶带通滤波 (0.7 Hz-2.0 Hz),对其中 STA(2s)/LTA(80s) 比值进行了计算。

SC3具体配置操作: scconfig命令进入图形配置界面,在(1)Bindings 中添加 scautopick 模块,比如 pick_local,更改其 detecFilter 参数为B W (4,4,20)»STALTA(0.2,10);将 pick_local 拖进台网。(2)Modules 中设置 scautopick,picker 中填入“AIC” (包括双引号),spicker中填入“S-L2”(包括双引号)。(3)System 中将 scamp, scmag, scautopick, scautoloc, 和scevent 几个 module 依次 enable 和 start。然后 Update configuration。

3. Event Detecting

SC3 如果要对地方(Local)或者区域(Regional)事件进行操作,则需要更改设置;需要注意的是,更改这些默认的网格点文件或速度模型结构之后,系统对其他地区的地震处理可能会失准,所以建议采用多通道(multiple pipelines)处理。

网格点含有一系列的单元(cells)或者格点(grid points),用作初始的理论震中位置,默认网格点文件(grid.conf)存放于 ~/seiscomp3/share/scautoloc/,对小区域台网来说,应修改使其格点间距变得足够小。网格点文件每行有 6 列组成,依次代表①格点纬度,②格点经度,③格点深度,④格点所覆盖区域的半径(单位为°),⑤binding半径(180°覆盖全球), 和⑥触发地震所要求的最少台站数目。

默认的速度模型结构(iasp91)存放于 ~/seiscomp3/share/locsat/tables,如果知道地方速度模型,可借助Taup软件生成速度结构文件。

台站列表文件(station.conf)位于 ~/seiscomp3/share/scautoloc/,每行数据有四列数据组成,依次代表可用于事件定位的台网名,台站名,开关符(1-on, 0-off)和台站关联(associate)的最大范围,单位为°。

采用多通道可以使 SC3 同时对远震和近震自动检测,有多种方法实现多通道(https://www.seiscomp3.org/recipes/multiple-pick-loc-pipeline.html) 。最简单的方法是利用别名(alias)原理来复制 scautoloc 模块到一个新的模块。原来的 scautoloc 不改动其配置,仍然用于远震定位,而在新的模块的配置中改动相关参数,用于 local 事件的定位。例如:

$ seiscomp alias create ycloc scautoloc
# 将 scautoloc 复制为 ycloc

scconfig 命令打开图形配置界面, enable ycloc 之后进入 Modules->Processing,对 ycloc 模块模块更改配置,例如:

grid->@DATADIR@/scautoloc/yingcheng_grid.conf
stationConfig -> @DATADIR@/scautoloc/yingcheng_station.conf
pickLog -> @LOGDIR@/ycloc-picklog
profile -> 速度结构选项,保持默认
Turn on ‘useManualOrigins’
In the global section for ycloc, as ‘LOCATION’ to its subscriptions, set logging level to 4
Change author to ‘ycrloc’