Science and engineering

Machine learning for geophysics

Geophysicists use machine learning to detect earthquakes and pick seismic phase arrivals, to interpret seismic images, and to speed up inversion for subsurface properties. Deep learning pickers now process continuous waveform archives that analysts could never review by hand.

How machine learning is used in geophysics

Detecting earthquakes and picking phase arrivals

Networks trained on analyst-picked waveforms detect earthquakes and pick P and S arrival times in continuous records. Catalogues built this way contain many more small events, which sharpens images of active faults.

Real examplePhaseNet (Zhu and Beroza, 2018)A deep neural network trained on analyst-labelled P and S arrival times from the Northern California Earthquake Data Center to pick seismic phases automatically.

Interpreting seismic images

Segmentation networks mark faults, horizons and salt bodies in 3D seismic volumes, giving interpreters a first pass much faster than manual picking. Training often uses synthetic seismic data because labelled field data is scarce.

Real exampleFaultSeg (Wu et al.)Trained an end-to-end convolutional neural network on synthetic datasets for 3D fault segmentation in seismic volumes, with code published on GitHub.

Speeding up seismic inversion

Full waveform inversion estimates subsurface velocity from recorded waves and is computationally expensive. Networks can learn a direct map from seismic data to a velocity model, or supply starting models and priors for physics-based inversion.

Real exampleOpenFWI (Deng et al., 2021)A collection of large-scale benchmark datasets pairing seismic data with velocity maps, built for training and comparing data-driven full waveform inversion methods.

Can geophysicists learn machine learning?

Yes. Geophysicists already work with signals, inverse problems and large datasets, so the step to machine learning is shorter than in most fields. Learn Python and ObsPy, classical machine learning, then convolutional and sequence models for waveforms and images.

  1. Python and ObsPyRead and process waveform data in Python; ObsPy handles the common seismological formats.Learn it in Python
  2. Linear algebra and optimisationInversion and neural network training rely on the same gradients and least-squares ideas.Learn it in Maths
  3. Classical machine learningClassify events or predict properties from engineered features before moving to deep models.Learn it in Machine Learning
  4. Deep learning for waveforms and imagesConvolutional networks and transformers for phase picking, seismic segmentation and data-driven inversion.Learn it in Deep Learning
  5. Physics checksValidate on catalogues, wells or synthetic models with known answers before trusting results on field data.

Moving into machine learning for geophysics

If you already work in the field

Geophysicists bring signal processing, inversion theory and an eye for artefacts. Add PyTorch, run an open picker such as PhaseNet or EQTransformer on data from a network you know, or a fault segmentation model on a public seismic volume. Seismic networks, energy companies and geothermal and carbon storage projects all use these skills.

If you come from data science or ML

Machine learning practitioners should learn wave propagation basics, seismic acquisition and data formats, and what inversion means. The SeisBench library and the OpenFWI benchmark give curated data with standard tasks to learn on.

Roles that do this workGeophysicistSeismologistSeismic interpreterGeoscience data scientistResearch scientist, computational geophysics

Tools you will use

ToolWhat you use it for
ObsPyRead, filter and process seismic waveforms and station metadata.
SeisBenchLoad seismic benchmark datasets and apply or retrain deep learning phase pickers.
SimPEGRun geophysical forward modelling and inversion for gravity, magnetic and electrical data.
DevitoGenerate fast wave-equation solvers for seismic modelling and full-waveform inversion.
PyTorchTrain convolutional and recurrent networks on waveforms and seismic images.

Public data to practise on

Your first project

Download STEAD, classify waveforms as earthquake or noise with a small 1D convolutional network, and compare it with a classic STA/LTA trigger using precision and recall.

Common questions

How is deep learning used in seismology?

Mainly to detect earthquakes, pick phase arrivals, estimate magnitudes and locations and denoise waveforms. Deep learning pickers are now widely used to build detailed earthquake catalogues from continuous data.

Can machine learning replace full waveform inversion?

Not yet for real surveys. Data-driven methods are fast on data similar to their training set, but physics-based inversion remains the reference. Hybrid approaches use networks for starting models, priors or acceleration.

Why is synthetic data so common in geophysics machine learning?

Labelled field data is scarce and the true subsurface is unknown. Simulated data with known answers lets models train, but results must then be checked on field data where synthetic assumptions break down.

What programming skills do geophysicists need?

Python is the standard for machine learning, with ObsPy for seismology and NumPy and SciPy for processing. Many established processing and inversion codes are in Fortran or C++, so being able to read them helps.

Courses for these skills

New to programming or maths? Start with Python, or follow the machine learning path in order. Published lessons are free to read; compare Free and Pro.