Microseismic event location
Learning objectives
- Set up the microseismic event location inverse problem: known velocity, observed arrival times, find the source
- Apply RECIPROCITY: T(x_r; x_src) = T(x_src; x_r) to make the grid scan O(N_receivers) instead of O(N_candidates)
- Eliminate origin time analytically by mean-centering residuals
- Run a global grid-scan locator and visualise the misfit surface
- Recognise resolution differences: surface arrays give better lateral than depth resolution
An induced microseismic event triggered by hydraulic fracturing, geothermal stimulation, or CO₂ injection sends elastic waves to a recording array. The first-arrival times are picked. With a known velocity model, where did the event happen? This is the canonical "hypocentre inversion" problem of seismology, dating to Geiger 1912 — and one where modern PINN methods (Smith et al 2022 HypoSVI) have replaced the old iterative algorithms in production.
The inverse problem
Given:
- Velocity model — known from prior tomography (e.g., §7.4) or sonic logs
- Receiver positions — known from survey design
- Picked first-arrival times — measured
Find:
- Event location (2 unknowns in 2-D, 3 in 3-D)
- Origin time (1 unknown — when the event happened)
The forward model is the eikonal: for trial source , predict travel time at receiver as . Loss:
Eliminating origin time
The minimisation in has a closed form: gives
Substituting back gives the reduced-cost that depends only on :
This is the VARIANCE of the time-residuals. The location is wherever the residuals are most consistent across receivers.
The reciprocity trick
A naïve grid scan over candidate source positions would solve the eikonal once for each candidate. With a 41 × 21 grid (861 candidates) and FSM at ~10 ms each, that is seconds — already too slow for real-time monitoring of microseismic clouds with thousands of events.
The fix: RECIPROCITY. The eikonal travel time satisfies
provided the velocity model is symmetric (which it always is for scalar ). So instead of solving FSM with as the source for each candidate, solve FSM with each RECEIVER as the source. This produces travel-time fields . By reciprocity, the predicted arrival at receiver from any candidate location is just — a grid lookup, not a new FSM solve.
Cost: FSM solves total, then the candidate scan is just elementwise arithmetic. For our receivers and 41 × 21 candidate grid this is ms total instead of 9 seconds — a 90× speedup that scales linearly with grid resolution.
Reciprocity is the same trick that makes adjoint-state migration fast (Plessix 2006, §6) and that powers Kirchhoff prestack depth migration in industry. For event location specifically it is sometimes called the migration-style or imaging-condition approach to hypocentre inversion.
Try it
The widget runs:
- Velocity model: Linear-gradient 2.0 → 3.5 km/s (sedimentary basin proxy). 8 surface receivers (cyan squares) at km, evenly spaced in .
- Forward modelling: FSM-solve from the user-controlled true event location. Sample at receivers → . Optionally add Gaussian pick noise via the second slider.
- Reciprocity-based scan: 8 FSM solves (one per receiver). Then for every grid point compute the centred-residual variance . Render as inferno-colormap heatmap (log scale) so the deep minimum stands out.
- Argmin: Locate the global minimum of . Compare with the true event location.
Three panels: velocity model with receivers + true event (yellow star), misfit surface with true event (yellow star) + recovered location (red plus), and per-receiver time residuals (in milliseconds) at the recovered location.
Expected behaviour:
- With zero pick noise, the recovered location should match the true location to within the grid resolution ( m). The misfit surface shows a clean elongated minimum.
- The misfit minimum is more elongated VERTICALLY than horizontally for surface arrays — depth resolution is poorer than lateral resolution because rays from a deep event reach all surface receivers at similar angles.
- Adding pick noise smears the minimum but does not necessarily move its centre — Gaussian-noise residuals average out across many receivers.
Geiger 1912 vs grid scan vs PINN-based
Three production methods exist:
- Geiger 1912 iterative. Linearise the forward model around a starting location, solve the linear least-squares problem for , iterate. Fast (5-10 iterations) but RISK OF LOCAL MINIMA: starts from a guess, can converge to the wrong basin if the misfit surface is multimodal (e.g., from velocity-model errors creating spurious off-azimuth minima). Used in routine catalogue location for ~110 years and still common.
- Grid scan (this widget). Evaluate on a regular grid, find global argmin. NO LOCAL MINIMUM RISK — the global minimum is found by construction. Cost is O(N_grid) but with reciprocity that is cheap per receiver. Modern microseismic monitoring software (e.g., Aimsteel, MicroNet) uses grid-scan or its hybrid with Geiger refinement.
- PINN-based (HypoSVI 2022). Train a SOURCE-CONDITIONED EikoNet (factored, §7.3) once on the velocity model. Then for any new event, evaluate at all receivers in microseconds — no FSM solve per receiver, no grid scan. Use Stein variational inference or HMC over for full posterior uncertainty (not just a point estimate). The state of the art for real-time microseismic catalogues.
Resolution and uncertainty
Surface receivers + a deep event give:
- Lateral () resolution: well-constrained when the event is within the receiver array footprint. Typical 50-100 m for industry monitoring.
- Depth () resolution: poorly constrained for deep events. Travel-time differences between surface receivers don't change much with depth once the event is deeper than the array aperture. The misfit surface elongates vertically.
The fix in production: include a deeper "sentinel" receiver in a borehole. The borehole receiver gives a much shorter ray path to the event and tightens depth resolution dramatically. Microseismic monitoring of fracture growth in unconventional reservoirs ALWAYS uses at least one downhole tool for this reason.
Double-difference relative location (Waldhauser-Ellsworth 2000) is another classic technique: instead of locating each event in isolation, work with TIME DIFFERENCES between event-receiver pairs. Errors in the velocity model that affect ALL events the same way cancel in the difference. Catalogues relocated this way show the fault-plane structure of fracture clouds with order-of-magnitude better precision than absolute locations.
References
- Geiger, L. (1912). Probability method for the determination of earthquake epicentres from arrival times. Bull. St. Louis Univ. 8(1), 56–71. The original linearised hypocentre inversion that all subsequent location codes descend from.
- Waldhauser, F., Ellsworth, W.L. (2000). A double-difference earthquake location algorithm: method and application to the northern Hayward fault, California. BSSA 90(6), 1353–1368. Differential location for catalogues.
- Smith, J.D., Ross, Z.E., Azizzadenesheli, K., Muir, J.B. (2022). HypoSVI: Hypocentre inversion with Stein variational inference and physics informed neural networks. Geophys. J. Int. 228, 698–710. PINN-EikoNet location with Stein VI for posterior uncertainty.
- Maxwell, S.C. (2014). Microseismic Imaging of Hydraulic Fracturing: Improved Engineering of Unconventional Shale Reservoirs. SEG Distinguished Instructor Series 17. Industry-standard reference for microseismic monitoring practice.