Download as pdf or txt
Download as pdf or txt
You are on page 1of 92

利⽤机器学习到时构建⾼精度

地震⽬录
张淼
达尔豪斯⼤学(加拿⼤)

程序参与贡献⼈员:
刘敏、冯甜、王蕊嘉、朱尉强

地震学算法和程序
2021/08/10 LOC-FLOW
地震定位
面波
P S

到时识取-> 震相关联-> 地震定位


基于到时定位
Vs.
基于波形定位
1
延迟叠加,一步到位
“传统⽅法” “机器学习”

图⽚来⾃每⽇头条
详细综述见佘⼭学堂报告录屏
B站地址:
https://www.bilibili.com/video/BV1bM4y157XV?from 2
=search&seid=18181729434983325333
基于到时的地震定位流程
连续波形输⼊

预处理

检测

到时识取

关联

定位

特征化(后续分析)

Courtesy of Greg Beroza 机器学习+传统定位 3


Zhang M et al., SRL, 2019 Liu M et al., GRL, 2020 Wang RJ et al., GRL, 2020

Park Y et al., GRL, 2020 Wang KW et al., GRL, 2020 Wang JC et al., GRL, 2021
4
赵明等,地球物理学报,2021 Tan Y et al., TSR, 2021
苏⾦波、刘敏等,地球物理学报,2021

Glasgow M et al., JGR, under review Wang RJ et al. in prep. 5


Zhou LQ et al., GJI, under revision
Liu M et al., in prep.

6
Feng T et al., ongoing
事例 1:2019年Ridgecrest地震

PhaseNet到时识取

7
事例 1:2019年Ridgecrest地震

8
原始数据 -> ⾼精度地震⽬录
事例 2:2021年云南漾濞地震

9
提纲
• LOC-FLOW 的⼯作流程

• LOC-FLOW 包含的主要程序

• LOC-FLOW逐步讲解

• 讨论

• ⽰例截图

• 现场演⽰

10
提纲
• LOC-FLOW 的⼯作流程

• LOC-FLOW 包含的主要程序

• LOC-FLOW逐步讲解

• 讨论

• ⽰例截图

• 现场演⽰

11
https://github.com/Dal-mzhang/LOC-FLOW

12
https://github.com/Dal-mzhang/LOC-FLOW

13
https://github.com/Dal-mzhang/LOC-FLOW

14
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

15
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

16
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

17
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

18
“站在巨⼈肩膀上”
LOC-FLOW
科学问题

ObsPy, PhaseNet,
REAL, VELEST,
HYPOINVERSE,
hypoDD,
FDTCC,
GrowClust,
Match&Locate

19
修改⾃图⽚⽹站 https://www.freeimages.com/
提纲
• LOC-FLOW 的⼯作流程

• LOC-FLOW 中包含的主要程序

• LOC-FLOW逐步讲解

• ⽰例截图

• 现场演⽰

20
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

各个源程序包下载:src/software_download.py 21
① STA/LTA 到时识取

https://docs.obspy.org/tutorial/code_snippets/trigger_tutorial.html 22
①PhaseNet到时识取

Zhu and Beroza, GJI, 2019


北加州30年的23万个历史
地震波形作为训练集 卷积神经⽹络

https://github.com/wayneweiqiang/PhaseNet 23
②快速地震关联定位算法
(REAL)

Zhang et al., SRL, 2019


https://github.com/Dal-mzhang/REAL 24
单个到时的⾛时残差和⾛时,采
⽤N倍的标准差进⾏限制:N*𝛿

25
台站归⼀化后的范围

如果同⼀个事件被多次关联,选择距离加权后震相数⽬最⼤的那个。
最⼩距离:cos(0)= 1;
最⼤距离:cos(pi/3)= 0.5;

做模拟退⽕定位时候,⾛时残差按照同样策略进⾏距离加权。

两步⾛:
1)固定深度和发震时刻,更新⽔平位置;
2)固定⽔平位置,更新深度和发震时刻。

26
③定位程序VELEST

台站位置 地震位置 速度模型


(已知) (未知) (未知)
⾛时残差的⼀阶泰勒展开:

经度,纬度,深度,发震时刻 分层速度模型

两个模式:
0: 同时定位,更新模型,获得台站矫正
(慎⽤;数据多,质量⾼情况才考虑)
Kissling et al., JGR, 1994 1: 只定位
原始版本:https://seg.ethz.ch/software/velest.html
使⽤的版本包含在 https://github.com/Dal-mzhang/REAL 27
③定位程序HYPOINVERSE

⾛时残差的⼀阶泰勒展开:

奇异值分解(SVD)

Klein, USGS, 2014 https://www.usgs.gov/software/hypoinverse-earthquake-location


Klein, USGS, 1978
Lienert et al., BSSA, 1986 28
使⽤分区模型

⽀持多种类型模型

29
Klein, USGS, 2014
距离加权

残差加权

⾮常多的其他功能,如:
震级计算;
到时加权;
台站⾛时延迟输⼊;
参考深度调整;

30
Klein, USGS, 2014
④双差定位hypoDD

差的差 – 双差

Waldhauser and Ellsworth, BSSA, 2000


31
https://www.ldeo.columbia.edu/~felixw/hypoDD.html
两种数据
绝对⾛时的差作为输⼊: dt.ct
互相关⾛时差作为输⼊: dt.cc

Waldhauser and Ellsworth, BSSA, 2000 32


④双差定位GrowClust
(只⽤相关⾛时差)

按照相似性从⾼到低配对定位
Trugman and Shearer, SRL, 2017
33
https://github.com/dttrugman/GrowClust
34
Trugman and Shearer, SRL, 2017
④快速互相关双差⾛时计算
(FDTCC)

By Min Liu and Miao Zhang


https://github.com/MinLiu19/FDTCC 35
⑤ 模板扫描
(e.g., Match&Locate)

推荐设置搜索区域为0,
检测完后续⽤
GrowClust做互相关双
差定位

OpenMP-version: Zhang and Wen, GJI, 2015; GPU-version: Liu et al., SRL, 2020
https://github.com/Dal-mzhang/MatchLocate2 36
https://github.com/MinLiu19/GPU-MatchLocate1.0
提纲
• LOC-FLOW 的⼯作流程

• LOC-FLOW 中包含的主要程序

• LOC-FLOW逐步讲解

• ⽰例截图

• 现场演⽰

37
程序下载安装

⼿动下载hypoinverse: https://www.usgs.gov/software/hypoinverse-earthquake-location
PhaseNet 装到“phasenet”虚拟环境 [ObsPy包含在内,数据下载和处理都需要ObsPy!]

38
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

39
数据下载

ObsPy: get_waveforms

指定台站⽬录,下载连续地震数据

https://docs.obspy.org/packages/autogen/obspy.clients
.fdsn.client.Client.get_waveforms.html

40
指定台⽹,台站,通道,时间范围等信息

合并,插值,去响应,裁剪等

去除仪器响应
(慢,也可⾃⾏存储成mseed后再去)

台站信息写⼊SAC的道头
waveform_download.py

41
数据下载
ObsPy: mass_downloader

无需指定台站⽬录,⾃动
下载覆盖区域的地震数据

https://docs.obspy.org/pack
ages/autogen/obspy.clients.f
dsn.mass_downloader.html

42
指定下载的台站区域

时间范围、台⽹等约束

默认使⽤所有可能的FDSN数据中⼼

mseed和响应⽂件下载并存储

整合,插值,裁剪,去响应,加道头,旋转等操作

后续存为SAC⽂件 waveform_download_mseed.py 43
(速度较快)
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

44
STALTA到时识取 trigger_p_amp.py
&
trigger_s_amp.py
(类似,但⽤E&N)
滤波处理

设置长短窗参数

这⾥采⽤较⼩的触发阈
值(turn on),来缓解
paz_wa为Wood Anderson 响应⽂件
到时靠后问题。再判断
仿真到Wood Anderson响应
后续的STALTA⽐是不是
⾜够⼤,决定是否保留
此到时。

存储:到时,“信噪⽐”,振幅
45
PhaseNet到时识取
运⾏PhaseNet runphasenet.py
注意:运⾏环境切换

此步骤包括经验性地转换PGV到Wood-Anderson振幅,为
了后续震级估计;精确震级可以利⽤calc_mag.py再计算。

⽣成REAL需要的到时⽂件
格式:年⽉⽇/台⽹.台站.P.txt
年⽉⽇/台⽹.台站.S.txt
46
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

47
runREAL.pl

https://github.com/Dal-mzhang/REAL

48
评估关联结果:
1. 把那些最差的关联事件(关联到的到时数⽬少,台站间隙⾓⼤,⾛时残差⼤等)
的ID记录下来,⽤eventverify_pick.py 和 eventverify_all.py分别把关联到的震相波
形和所有台站波形截取下来,按震中距从⼩到⼤排列,⽤SAC在⼩窗⼝内验证是否
为真实事件。
2. 画出⾛时-距离曲线,看看是否合理。
3. 应⽤HYPOINVERSE进⾏定位,检查那些定位结果标记为不稳定的事件波形
(“–”),验证是否为真实地震。
4. 反复调整阈值并测试。
5. 对绝对定位后的地震进⾏筛选(如:台站间隙⾓、⾛时残差、定位误差等)

49
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

50
run_velest.sh

模式1: 只定位

模式0: 定位+模型更新+台站矫正

在模式0中,⽤⾼质量地震作为输⼊,⽣成的速度
和台站矫正作为model1的输⼊,对所有事件定位。
51
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

52
run_hypoinverse.sh
两层不能⼀样速度,不能有
低速层,否则需要⼿动调整

⽣成HYPOINVERSE
需要的震相⽂件

运⾏hypoINVERSE 53
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

54
run_hypoinverse_corr.sh
两层不能⼀样速度,不能有
低速层,否则需要⼿动调整

⽣成HYPOINVERSE
需要的震相⽂件

⽣成每个台站对应的
P和S的⾛时矫正⽂件

hyp.command

控制⽂件:
运⾏HYPOINVERSE P和S的速度模型、台
55
站对应到时矫正
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

56
run_hypoDD_dtct.sh
hypo=0, ⽤REAL的模
拟退⽕定位结果

hypo=1, ⽤
VELEST定位结果

hypo=2, ⽤
HYPOINVERSE
定位结果

hypo=3, ⽤VELEST
+ HYPOINVERSE
定位结果

运⾏ph2dt配对地震

运⾏hypoDD双差定位57
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

58
⽤hypoDD.reloc (dt.ct)结
果更新震相⽬录中的位置

⽤ph2dt进⾏地震配对

run_hypoDD_dtcc.sh

应⽤FDTCC进⾏互相关
双差⾛时dt.cc计算

59
运⾏hypoDD
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

60
run_growclust.sh

地震配对:ph2dt

⽣成互相关⾛时差:FDTCC 61
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

62
calc_mag.py

仿真到Wood-Anderson仪器响应

注意:毫⽶

仅仅是个例⼦,不同国家和区域,震
幅测量⽅式和震级公式可能不同 63
国家标准
GB 1774200-2017

注意:
微⽶, DD-1响应

64
hypo=1

hypo=2

hypo=3

hypo=0

https://github.com/Dal-mzhang/LOC-FLOW

65
Match&Locate
参数⽰例

后续通过计算 现在2.1版本合并到2.0版本,把滤波作
dt.cc,应⽤ 为选项,波形无需滤波后再存一份
GrowClust来定位
66
提纲
• LOC-FLOW 的⼯作流程

• LOC-FLOW 包含的主要程序

• LOC-FLOW逐步讲解

• 讨论

• ⽰例截图

• 现场演⽰

67
使⽤LOC-FLOW有什么建议么?

1、我们提供的只是接⼝、框架和⽅案,每⼀步参数都需
要按照对应的程序说明,搞明⽩参数并调试。不同数据
质量,不同研究区域,不同台站分布,不同地震数⽬等
等,程序参数可能不同。

2、跑通、理解、⽤对、⽤好。

3、可以修改或采⽤⾥⾯的步骤,但是建议有对应引⽤或
致谢,并⼀定要引⽤对应源程序的⽂献。

68
不同研究地区需要重新训练么?

泛化能⼒强的
模型可以适⽤
于其他区域,
但迁移学习可
以提⾼。

迁移学习
仅仅⽤了3,500 个波形做迁移学习
69
Chai et al., GRL, 2020 (原始训练集的0.45%)
利⽤长宁地区⼀个⽉19个台站的事件记录进⾏迁移学习

迁移学习后,建议概率阈值下调 :从0.5到0.3
赵明等,地球物理学报,2021 新模型地址:https://github.com/mingzhaochina/PhaseNet70
数据采样率和原始训练不同有影响么?

机器学习到时
识取,逐点输
⼊,没有时间
概念。

⼀般情况要保
持与原训练集
采样率⼀致,
也有例外。

节点地震仪: 250 Hz 采样率


训练集: 100 Hz 采样 为何减采样到训练集采样率,检测到地震会更少?
Wang et al., GRL, 2020 地震⾃相似性:节点地震仪记录到更⼩更⾼频地震。71
速度模型有什么注意事项?
1. TauP (建⾛时表)和HYPOINVERSE都
不喜欢低速层,考虑⽤等速或⼩梯度速度替
换。

2. 在运⾏VELEST(mode=0)更新模型的情
况,注意划分速度模型的层间厚度,
VELEST只更新层间速度,对厚度不做更新。

3. 建议速度模型中的零深度为台站的平均海
拔(不是海平⾯)。虽然有些绝对定位程序
能处理负深度,但是这⾥的相对定位程序不
适合。海拔影响可以⽤台站延迟时间抵消
(hypo=3)。 72
多⼤的研究范围机器学习到时适⽤性最好?

1. 对于PhaseNet和⼤多数其他机器学习到时
识取程序,受训练集限制,对于近震效果最
好(如:< ~200 km范围内)。

2. 对于⼤震中距,可以考虑重新训练或迁移
训练,或采⽤多步⾛的策略。

73
有没有推荐的其他定位流程?

74
类似流程

PALM(Pick, Association, Location and Matched filter)


!"#$RidgeCrest%&

Zhou, Yue, Fang, Zhou et al., 2021, SRL


PAL https://doi.org/10.5281/zenodo.4699093 (https://github.com/YijianZhou/PAL)
MESS https://doi.org/10.5281/zenodo.4699094 (https://github.com/YijianZhou/MESS)

房⽴华研究员提供
从局部尺度(local scale; <110 km)

区域尺度(regional scale; 110 km-550 km)
的挑战

(Yang et al., 2021, in prep.)

远震中距波形与近震中距波
数据集带来的限制:⽬前最⼤的公开 较⼤的震相拾取误差会影响
形模式差异⼤,导致在近震
数据集STEAD(Mousavi et al., 2020) 中 后续的震相关联,地震定位
中距数据上训练的深度学习
92%的数据震中距在110 km以内。 以及层析成像研究。
模型震相拾取精度下降。

肖卓伟提供
https://github.com/MrXiaoXiao/SiameseEarthquakeTransformer
区域范围地震⽬录⾃动构建流程

(Xiao et al., 2021, in prep.)

通过结合EqT与S-EqT在地震检测⽅法的优 (Yang et al., 2021, in prep.)


势与PickNet在较远震中距震相拾取上的优
势,构建了适⽤于区域范围的⾃动处理流程。 在缅甸、不丹等区域得到了验证并得到
了数倍于此前⼈⼯编⽬结果的⽬录。

肖卓伟提供
有没有在线运⾏的机器学习
地震定位系统?

78
在线处理实例
智能地动

https://earthx.com.cn/
79
在线处理实例

地震智能处理系统(RISP)

Real-time AI phase Association & Event type Chinese unified


waveform picker Location discrimination automatic catalog
data stream

Historical Single-station No Accociation Yes Magnitude


Manual Chinese unified
earthquake cataloging
process success measurement interface official catalog
database

2021年漾濞地震
Yes Fine-scale Relocated
ML⒔5.0 earthquake earthquake
relcaotion sequence

Yes

Focal Focal
mechanism mechanism
inversion solution

自动(左)和人工(右)处理结果对比

Liao, Zhang, Fang, et al., 2021, EQS, In prep 房⽴华研究员提供 80


在线处理实例

4G实时传输节点式地震仪

李俊伦教授提供
81
在线处理实例

实时密集流动监测台阵
事例:2021年
2021年漾濞地震
• 根据地震活动性快速针对性布设
• 4G密集流动台网自动监测最小震级约
为M-2.0,事件数约为4倍
• 4G密集流动台网最小完备震级 M-
0.3,CNNC为M0.2

李俊伦教授提供
82
提纲
• LOC-FLOW 的⼯作流程

• LOC-FLOW 包含的主要程序

• LOC-FLOW逐步讲解

• 讨论

• ⽰例截图

• 现场演⽰

83
使⽤2016年10⽉14⽇意⼤利中部地震检测定位为例。如果笔记本
或台机的配置⽐较⼀般,建议⽤前50分钟(3000 sec)测试。

三⾓:台站
红点:⽬录地震
84
REAL的关联结果

85
Time [s]

关联到的事件⽰例(仅显⽰Z分量) 86
Catalog 2

Catalog 1

Catalog 3 Catalog 4

87
对于hypoDD_dtct, hypoDD_dtcc和GrowClust
只显⽰拥有5个P双差⾛时差以上约束的事件
88
(plot_3dmatlab⾥⾯参数nddp)
89
90
(nddp=5 in plot_3dgmt.sh)
提纲
• LOC-FLOW 的⼯作流程

• LOC-FLOW 包含的主要程序

• LOC-FLOW逐步讲解

• 讨论

• ⽰例截图

• 现场演⽰

91

You might also like