Skip to content


Repository files navigation


QuakeMigrate is a Python package for automatic earthquake detection and location using waveform migration and stacking.

Key Features

QuakeMigrate uses a waveform migration and stacking algorithm to search for coherent seismic phase arrivals across a network of instruments. It produces—from raw data—catalogues of earthquakes with locations, origin times, phase arrival picks, and local magnitude estimates, as well as rigorous estimates of the associated uncertainties.

The package has been built with a modular architecture, providing the potential for extension and adaptation at numerous entry points. This includes, but is not limited to:

  • the calculation or import of traveltime grids
  • the choice of algorithm used to identify phase arrivals (for example by kurtosis, cross-covariance analysis between multiple components, machine learning techniques and more)
  • the stacking function used to combine onset functions
  • the algorithm used to perform phase picking


Documentation for QuakeMigrate is hosted here.


Detailed installation instructions can be found here.

If you're comfortable with virtual environments and just want to get started, QuakeMigrate is available via the Python Package Index, and can be installed via pip:

pip install quakemigrate


We are working on tutorials covering how each individual aspect of the package works, as well as example use cases where we provide substantive reasoning for the parameter choices used. These examples include applications to cryoseismicity and volcano seismology.

This is a work in progress - see our documentation for full details.

Examples you can run in your browser

To quickly get a taste for how the software works, try out the two icequake examples hosted on Binder:

  • Icequakes at the Rutford Ice Stream, Antarctica badge
  • Icequakes at the Skeiðarárjökull outlet glacier, Iceland badge

And for a more comprehensive demonstration of the options available, see the template scripts.


If you use this package in your work, please cite the following conference presentation:

Winder, T., Bacon, C.A., Smith, J.D., Hudson, T., Greenfield, T. and White, R.S., 2020. QuakeMigrate: a Modular, Open-Source Python Package for Automatic Earthquake Detection and Location. In AGU Fall Meeting 2020. AGU.

as well as the relevant version of the source code on Zenodo.

We hope to have a publication coming out soon:

Winder, T., Bacon, C.A., Smith, J.D., Hudson, T.S., Drew, J., and White, R.S. QuakeMigrate: a Python Package for Automatic Earthquake Detection and Location Using Waveform Migration and Stacking. (to be submitted to Seismica).

Contributing to QuakeMigrate

Contributions to QuakeMigrate are welcomed. Whether you have identified a bug or would like to request a new feature, your first stop should be to reach out, either directly or—preferably—via the GitHub Issues panel, to discuss the proposed changes. Once we have had a chance to scope out the proposed changes you can proceed with making your contribution following the instructions in our contributions guidelines.

Bug reports, suggestions for new features and enhancements, and even links to projects that have made use of QuakeMigrate are most welcome.


You can contact us directly at:

Any additional comments/questions can be directed to:


This package is written and maintained by the QuakeMigrate developers, Copyright QuakeMigrate developers 2020–2023. It is distributed under the GPLv3 License. Please see the LICENSE file for a complete description of the rights and freedoms that this provides the user.