0% found this document useful (0 votes)
56 views85 pages

Loc Flow

The document describes an end-to-end machine learning based workflow called LOC-FLOW for high-precision earthquake location. It introduces the main methods in LOC-FLOW including phase picking using STA/LTA and PhaseNet, rapid event association and location with REAL, nonlinear location with VELEST and HYPOINVERSE, and double-difference relocation using HypoDD, GrowClust and a fast cross-correlation method called FDTCC. Step-by-step explanations and demonstrations of LOC-FLOW are provided.

Uploaded by

Beli Gamers
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views85 pages

Loc Flow

The document describes an end-to-end machine learning based workflow called LOC-FLOW for high-precision earthquake location. It introduces the main methods in LOC-FLOW including phase picking using STA/LTA and PhaseNet, rapid event association and location with REAL, nonlinear location with VELEST and HYPOINVERSE, and double-difference relocation using HypoDD, GrowClust and a fast cross-correlation method called FDTCC. Step-by-step explanations and demonstrations of LOC-FLOW are provided.

Uploaded by

Beli Gamers
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 85

LOC-FLOW: An End-to-End Machine Learning-Based

High-Precision Earthquake Location Workflow

Miao Zhang
Dalhousie University

2023 NFSI Marine


Seismology Workshop
LOC-FLOW
Miao Zhang

Min Liu Tian Feng Ruijia Wang Weiqiang Zhu

1
Earthquake detection and location

P S Surface waves

Phase picking -> Phase association -> Event location


Pick-based methods
VS.
Waveform-based methods
All in one single step (delay-and-sum)
Standard Earthquake Monitoring Workflow (Pick-based)

Detection, location and characterization 3


Pick-based seismic detection and location methods

Phase picking -> Phase association -> Event location

1. Phase picking: arrival times of particular seismic phases (P- or S-wave)


----- manual picking, STA/LTA, AIC, machine-learning picking

Akazawa, 2004
e.g.,
PhaseNet: Zhu and Beroza, GJI, 2019
EQTransformer: Mousavi et al., Nat. Comm., 2020

“Traditional Methods” “Machine Learning”

5
6
Zhang et al., AGU, 2019 First time apply machine learning picks for catalog building
Earthquake catalog building using machine learning picks (not a full list)

“__”
supervised or collaborative papers

Liu M et al., GRL, 2020 Wang RJ et al., GRL, 2020

7
Park Y et al., GRL, 2020 Wang KW et al., GRL, 2020 Wang JC et al., GRL, 2021
Su J et al., CJG, 2021 Tan Y et al., TSR, 2021
Zhao M et al., CJG, 2021

Glasgow M et al., JGR, 2021 Zhou LQ et al., GJI, 2021


8
Liu M et al., Tectonophysics, 2022 Liu M et al., JGR, 2022 9
Liu M et al., EPSL, 2023 10
Feng T et al., SRL, 2022
11
Zhao Y et al., under review, 2023

12
Outline
• Brief Introduction to LOC-FLOW

• Main Methods in LOC-FLOW

• Step by Step Explanations

• Discussions

• Hands-On Demonstration

• Practice

13
Outline
• Brief Introduction to LOC-FLOW

• Main Methods in LOC-FLOW

• Step by Step Explanations

• Discussions

• Hands-On Demonstration

• Practice

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

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

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

17
hypo=1

hypo=2

hypo=3

hypo=0

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

18
hypo=1

hypo=2

hypo=3

hypo=0

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

19
hypo=1

hypo=2

hypo=3

hypo=0

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

20
hypo=1

hypo=2

hypo=3

hypo=0

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

21
“Standing on the shoulders of giants”

Scientific LOC-FLOW
Questions
ObsPy, PhaseNet,
REAL, VELEST,
HYPOINVERSE,
hypoDD,
FDTCC,
GrowClust,
Match&Locate

22
https://www.freeimages.com/
Outline
• Brief Introduction to LOC-FLOW

• Main Methods in LOC-FLOW

• Step by Step Explanations

• Discussions

• Hands-On Demonstration

• Practice

23
hypo=1

hypo=2

hypo=3

hypo=0

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

How to download required software:


see src/software_download.py 24
① STA/LTA Picker

https://docs.obspy.org/tutorial/code_snippets/trigger_tutorial.html 25
①PhaseNet picker

Zhu and Beroza, GJI, 2019

Training dataset (CA)


30-year earthquakes Deep-learning: convolutional neural network

https://github.com/wayneweiqiang/PhaseNet 26
②Rapid Earthquake Association and Location
(REAL)

Zhang et al., SRL, 2019


https://github.com/Dal-mzhang/REAL 27
Remove outliers (travel-time residual and/or
epicentral distance) based on N*𝛿

𝛿: standard deviation

28
Distance weighting for picks

If an event is associated multiple times, choose the


one with the largest number of picks. Picks are
weighted by their distance.

0 km: cos (0)= 1;


𝝅
Defined largest distance: cos( 𝟑 ) = 0.5;

Simulated annealing relocation is also weighted by distance.

Two steps:
1)Fix depth and origin time, update horizontal location;
2)Fix horizontal location, update depth and origin time.

29
③ VELEST
Velocity model
(known but not accurate)

Station location Earthquake location


(known) (unknown)

First-order Taylor series expansion of travel time residual:

Lat, Lon, Dep., Origin Time Layered velocity


Two modes:
Mode 0: Update location and
Kissling et al., JGR, 1994
velocity model, estimate station
correction. (Enough events with
high-quality picks)
Origin version: https://seg.ethz.ch/software/velest.html Mode 1: Location only
Used version: https://github.com/Dal-mzhang/REAL 30
Zhang et al., SRL, 2022

Positive delay times -> low velocity


Negative delay times -> high velocity

31
Feng et al., SRL, 2022
③HYPOINVERSE

First-order Taylor series expansion of travel time residual:

Origin time, lat, lon, dep.

Singular Value Decomposition (SVD)

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


Klein, USGS, 1978
Lienert et al., BSSA, 1986 32
Weighted by distance

Weighted by residual

Delay times
(3D velocity effect)

33
Klein, USGS, 2014
④Double-difference relocation
(HypoDD)

Difference’s difference

Waldhauser and Ellsworth, BSSA, 2000


34
https://www.ldeo.columbia.edu/~felixw/hypoDD.html
Two kinds of input files
Cataloged Pick Differential Travel Times: dt.ct
Cross-Correlation Differential Travel Times: dt.cc

Waldhauser and Ellsworth, BSSA, 2000 35


④ Double-difference relocation
(dt.cc only)

Pairing events based on the order of their CC


Trugman and Shearer, SRL, 2017
36
https://github.com/dttrugman/GrowClust
37
Trugman and Shearer, SRL, 2017
④ Fast double-difference cross-correlation
(FDTCC)

By Min Liu and Miao Zhang


https://github.com/MinLiu19/FDTCC 38
⑤ Template Matching
(e.g., Match&Locate)

To save time, you may not have


to search locations, instead,
relocate newly detected events
using GrowClust.

OpenMP-version: Zhang and Wen, GJI, 2015; GPU-version: Liu et al., SRL, 2020
https://github.com/Dal-mzhang/MatchLocate2 39
https://github.com/MinLiu19/GPU-MatchLocate1.0
40
Outline
• Brief Introduction to LOC-FLOW

• Main Methods in LOC-FLOW

• Step by Step Explanations

• Discussions

• Hands-On Demonstration

• Practice

41
Software Downloading and Installing

Manually download hypoinverse: https://www.usgs.gov/software/hypoinverse-earthquake-location

42
hypo=1

hypo=2

hypo=3

hypo=0

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

43
Data Downloading

ObsPy: get_waveforms

Need to define your station list

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

44
Network, station, channel, time range, etc.

Merge, interpolate, remove


response, trim data, etc.

Response removal
(slow, only used for magnitude
estimation, may skip it to save time)

Write SAC headers


waveform_download.py

45
Data Downloading
ObsPy: mass_downloader

Don’t have to define the station


list, download waveforms based
on the defined study range

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

46
Define the study region

Constraints: time range, station list, components, etc.

Search for all available data centers (default)

Merge, interpolate, remove


response, trim data, etc.

waveform_download_mseed.py 47
Save as SAC files (fast)
hypo=1

hypo=2

hypo=3

hypo=0

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

https://github.com/alirezaniki/OBSTransformer
(will be integrated into LOC-FLOW soon) 48
STA/LTA Picker trigger_p_amp.py
(Z)
&
trigger_s_amp.py
Pre-filtering (E&N)

Set up long and short window

paz_wa: Wood-Anderson response

Determine the first arrivals based


on the triggering thresholds

Output:arrivals, “SNR”, Amplitude


49
PhaseNet Picker
Conda activate PhaseNet runphasenet.py

Approximately estimate amplitude for magnitude estimation; more


accurate magnitude estimation, see Magnitude/calc_mag.py

REAL required format:


YYMMDD/NT.ST.P.txt
YYMMDD/NT.ST.S.txt 50
hypo=1

hypo=2

hypo=3

hypo=0

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

51
runREAL.pl

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

52
How to evaluate your association performance and avoid false events:
1. Check those worst associated events (with smallest number of picks, largest station gap,
largest travel time residual). Using scripts eventverify_pick.py and eventverify_all.py to
cut their waveforms, sort them by distance, and review them by eyes. If they are false
events, put more stricter thresholds.

2. Plot the distance-travel-time curve to check if reasonable.

3. Re-selection based on travel-time residual and station gap after relocation.

53
hypo=1

hypo=2

hypo=3

hypo=0

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

54
run_velest.sh

Mode 1: location only

Mode 0: location + update 1-D velocity + estimate station delay times

If you use mode 0, make sure you have enough


events with enough high-quality picks.
55
hypo=1

hypo=2

hypo=3

hypo=0

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

56
Two layers cannot share the same run_hypoinverse.sh
velocity. No low velocity layers.
Otherwise, manually change them.

Create phase files for


HYPOINVERSE

Run HYPOINVERSE 57
hypo=1

hypo=2

hypo=3

hypo=0

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

58
Two layers cannot share the same run_hypoinverse_corr.sh
velocity. No low velocity layers.
Otherwise, manually change them.

Create phase files for


HYPOINVERSE

Station delay times

Control file:
Run HYPOINVERSE hyp.command 59
hypo=1

hypo=2

hypo=3

hypo=0

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

60
hypo=0, simulated annealing run_hypoDD_dtct.sh
relocation from REAL
hypo=1, relocation
from VELEST

hypo=2, relocation
from HYPOINVERSE

hypo=3, relocation from


VELEST+HYPOINVERSE

Run ph2dt to pair events

Run hypoDD 61
hypo=1

hypo=2

hypo=3

hypo=0

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

62
Update initial location
using hypoDD.reloc (dt.ct)

ph2dt for event pairing

run_hypoDD_dtcc.sh

Run FDTCC to generate dt.cc

Run hypoDD 63
hypo=1

hypo=2

hypo=3

hypo=0

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

64
run_growclust.sh

ph2dt for event pairing

Run FDTCC to generate dt.cc 65


hypo=1

hypo=2

hypo=3

hypo=0

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

66
calc_mag.py

Simulate to Wood-Anderson response

Attention: millimeter

Just an example, magnitude formulas can be


different in different regions and countries. 67
hypo=1

hypo=2

hypo=3

hypo=0

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

68
Match&Locate
(example)

69
Outline
• Brief Introduction to LOC-FLOW

• Main Methods in LOC-FLOW

• Step by Step Explanations

• Discussions

• Hands-On Demonstration

• Practice

70
Any advices for LOC-FLOW users?

1. We provide a framework with interfaces and strategies for


earthquake detection and location. Users should follow the
instructions for each step/method. Parameters may be different
for different station distributions, different study regions,
different data qualities, etc.

2. Run the demo successfully -> understand each step sufficiently


-> run your data -> fine tune your parameters.

3. Please feel free to adopt or modify any steps, but you are
encouraged to cite and acknowledge the corresponding software
and papers.
71
Do I have to re-train my machine
learning phase picking models?

Well-trained
machine learning
models may work
for different regions,
though, transfer
learning helps.

Transfer Learning
Only use 3,500 phases for transfer learning
72
Chai et al., GRL, 2020 (0.45% of the origin training data set)
Do I have to keep the same sampling rates?

Usually, it is good to
keep it consistent if
you work in a similar
scale with comparable
magnitude range.

Machine learning only


recognizes the data
points (without time
information). Thus, it
is fine to use different
sampling rates,
sometimes, even
better.

Nodal seismometers: 250 Hz Self-similarity: dense nodal seismometers record much


Trained model: 100 Hz smaller events with higher frequency than the trained
73
Wang et al., GRL, 2020 dataset.
Any suggestions for velocity models?

1. TauP (for travel-time table building) and HYPOINVERSE don’t like


low velocity zones, thus please remove them or replace them by
velocity gradients.

2. When you update velocity using VELEST (mode=0), please be


aware of that VELEST will update the velocity only and will not
change the thickness of the layers. Thus, please use proper
thickness for layers (don’t be too thick or too thin).

3. I would recommend you use the average elevation of stations as


ZERO depth in your velocity model (instead of sea level). Many
location methods cannot consider topography, which can be
eliminated by station delay times (if you use hypo=3) in LOC-FLOW.

74
Any recommendations for the study regions?

1. Most available machine learning picking models only work for


local and regional areas, which is limited by the training data set.
Great for < 100 km, okay for 100 – 250 km, maybe unacceptable
for > 250 km.

2. Retraining or transfer learning could be helpful for specific


purposes, e.g., large distances (> 250 km), later phases (Pn and
Sn), depth phases (pP), etc.

3. For OBS data in offshore regions, please consider OBS machine


learning phase pickers, e.g., OBSTransformer, which will be
integrated into LOC-FLOW soon.

75
Outline
• Brief Introduction to LOC-FLOW

• Main Methods in LOC-FLOW

• Step by Step Explanations

• Discussions

• Hands-On Demonstration

• Practice

76
One-day data from central Italy on Oct. 14, 2016.
For quick demonstration, here you may use the first 50 min.

Triangles: stations
Red dots:catalog (152) 77
“Hypocentral Distance – Travel-Time”
curve after REAL Association

78
Time [s]

An example(Z component only) 79


Catalog 2

Catalog 1

Catalog 3 Catalog 4

80
For catalogs: hypoDD_dtct, hypoDD_dtcc and GrowClust
We only show events with at least five P differential arrival pairs.
81
(see nddp in plot_3dmatlab )
82
83
(nddp=5 in plot_3dgmt.sh)
Outline
• Brief Introduction to LOC-FLOW

• Main Methods in LOC-FLOW

• Step by Step Explanations

• Discussions

• Hands-On Demonstration

• Practice

84

You might also like