Skip to content

comoglu/seiscomp-mblg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mb_Lg — SeisComP Magnitude Plugin

A SeisComP 6/7 plugin that implements mb_Lg, a regional body-wave magnitude measured on the Lg phase — a guided crustal wave that propagates efficiently in stable continental cratons at regional distances (0.5–30°).

SeisComP does not include mb_Lg natively. This plugin adds it as a standard amplitude + magnitude processor pair, following the same architecture used by the built-in ML, MLv, and mB processors.

Seismological background

Lg is a superposition of higher-mode surface waves and S-wave multiples trapped in the continental crust. It dominates the horizontal-component seismogram at regional distances and is measurable well below the detection threshold of teleseismic mb (which requires M ≥ ~4).

Why mb_Lg for Australia:

  • Fills the regional gap (500–3300 km) where ML is out of range and teleseismic mb underestimates smaller events
  • The old, cold Precambrian craton guides Lg with low attenuation over the entire continent
  • Provides a stable, distance-independent magnitude for hazard and monitoring work

Where else Lg propagates well: Eastern/central North America, European platform, Siberian craton, Arabian platform, southern Africa, India (Deccan), South America (Brazilian/Amazonian shields), China (Yangtze craton).

Where Lg does not work: Oceanic paths, subduction zones, volcanic arcs, rifted crust (Basin and Range, East Africa, Aegean), deep events (> ~36 km).

Formula

mb_Lg = c0 + c1·log₁₀(Δ°) + c2·Δ_km + log₁₀(A µm/s)
Symbol Meaning
A Peak ground velocity on the first horizontal component, µm/s
Δ° Epicentral distance, degrees
Δ_km Epicentral distance, kilometres
c1 Geometric spreading coefficient (default 0.5)
c2 Anelastic attenuation coefficient, km⁻¹ (default 0.000459)
c0 Calibration constant (default 2.627, Australia)

c1 = 0.5 — Lg amplitude scales as Δ_km^(−1/2) (2-D geometric spreading, Herrmann & Kijko 1983). Expressed in degrees: 0.5·log₁₀(Δ°) + 0.5·log₁₀(111.195), where the 1.023 offset is absorbed into c0.

c2 = log₁₀(e)·π·f / (Q·V_Lg) at f = 1 Hz, Australian average Q = 850 (Wei, Kennett & Zhao 2017, Table 1), V_Lg = 3.5 km/s → c2 = 0.000459 km⁻¹.

c0 = 2.627 — calibrated against 134 Australian manual earthquakes (M 3.5–5.5, 2018–2026) using Brune spectral Mw computed from EarthScope broadband waveforms. Weighted mean offset: mb_Lg − Mw = 0.373. 95% CI: 2.591–2.663. Scatter ±0.21 magnitude units (expected — radiation pattern and path effects).

References

  • Wei, Kennett & Zhao (2017). Tectonophysics 717, 413–424. Australian Lg Q values and attenuation model. Primary reference for c1/c2.
  • Herrmann & Kijko (1983). BSSA 73, 1081–1095. Lg geometric spreading.
  • Nuttli (1973). BSSA 63, 587–602. Original mb_Lg definition (CENA).

Amplitude measurement (AMmblg)

Parameter Value
Component First horizontal (auto-selected)
Filter BW(4, 0.5, 2.0) — 4-pole Butterworth 0.5–2 Hz
Signal window start Lg pick, else Sg/Sn/S, else Vmax = 3.6 km/s from epicentre
Signal window end Rg pick, else Vmin = 3.2 km/s from epicentre
Amplitude Peak ground velocity, m/s (stored as AMmblg)
SNR window 10 s centred on peak
Minimum SNR 2.0

Distance and depth limits

Parameter Default Config key
Minimum distance 0.5° (MagnitudeProcessor default)
Maximum distance 30.0° (MagnitudeProcessor default)
Maximum depth 36 km magnitudes.mb_Lg.maxDepth

Regional coefficients (optional)

All three formula coefficients can be overridden per region using SeisComP's BNA polygon framework — the same mechanism used by the GA MLa plugin.

Example global.cfg entry:

magnitudes.mb_Lg.c0 = 2.627
magnitudes.mb_Lg.c1 = 0.5
magnitudes.mb_Lg.c2 = 0.000459
magnitudes.mb_Lg.maxDepth = 36.0
magnitudes.mb_Lg.regionFile = /path/to/magnitude_zones.bna

# Override c2 for the Yilgarn craton (Q=1050, Wei et al. 2017 Table 1)
magnitudes.mb_Lg.region.Yilgarn.enable = true
magnitudes.mb_Lg.region.Yilgarn.c2 = 0.000371

# Override c2 for Lachlan fold belt (Q=750)
magnitudes.mb_Lg.region.Lachlan.enable = true
magnitudes.mb_Lg.region.Lachlan.c2 = 0.000520

Regional c2 values for Australia from Wei et al. (2017) Table 1 (0.6–1.0 Hz band):

Region Q c2 (km⁻¹)
Yilgarn / WA craton 1050 0.000371
Lachlan / SE Australia 750 0.000520
Eromanga Basin 703 0.000555
Canning Basin 543 0.000718
Australia average 850 0.000459

Adapting to other regions

  1. Keep c1 = 0.5 (Lg spreading is universal for stable cratons)
  2. Compute c2 from published Q: c2 = 0.4343 × π / (Q × V_Lg)
  3. Calibrate c0 against local Mw — the mw_calculator.py script in this repo automates Brune spectral Mw computation from FDSN waveform services

Build instructions

Requires a SeisComP 6 or 7 source tree.

# Link the plugin into the SeisComP source tree
ln -s /path/to/this/repo /path/to/seiscomp-src/src/base/ga-mblg

# Build
cd /path/to/seiscomp-src/build
make -j$(nproc) mblg

# Install
cp lib/mblg.so /path/to/seiscomp/share/plugins/

Then add mb_Lg to the plugins list in scmag.cfg or global.cfg.

Pre-built binary (Ubuntu 24.04, SeisComP 7)

A pre-built .so is attached to each GitHub release. Download mblg.so and copy it to $SEISCOMP_ROOT/share/plugins/.

The binary is built against SeisComP SC_API 18 (v7). It will not load on SeisComP 5 or 6 without recompiling from source.

Files in this repository

Path Description
plugins/magnitudes/mblg/ C++ source for amplitude and magnitude processors
plugins/magnitudes/mblg/descriptions/global_mblg.xml SeisComP config schema
mw_calculator.py ObsPy Brune-spectral Mw tool used for c0 calibration
Obspy_mw_results.csv Calibration dataset (134 Australian events, 2018–2026)

Licence

GPL-3.0 — see LICENSE.

Author

Mustafa Comoglu (comoglu).

About

mb_Lg regional magnitude plugin for SeisComP 6/7 — calibrated for the Australian craton

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors