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.
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).
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).
- 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).
| 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 |
| Parameter | Default | Config key |
|---|---|---|
| Minimum distance | 0.5° | (MagnitudeProcessor default) |
| Maximum distance | 30.0° | (MagnitudeProcessor default) |
| Maximum depth | 36 km | magnitudes.mb_Lg.maxDepth |
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 |
- Keep c1 = 0.5 (Lg spreading is universal for stable cratons)
- Compute c2 from published Q:
c2 = 0.4343 × π / (Q × V_Lg) - Calibrate c0 against local Mw — the
mw_calculator.pyscript in this repo automates Brune spectral Mw computation from FDSN waveform services
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.
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.
| 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) |
GPL-3.0 — see LICENSE.
Mustafa Comoglu (comoglu).