Skip to content
SeismicSourcePublic

Repository files navigation

Requake

Repeating earthquakes search and analysis.

changelog-badge PyPI-badge license-badge docs-badge DOI-badge

Copyright (c) 2021-2026 Claudio Satriano satriano@ipgp.fr

Description

Requake is a command line tool to search and analyse repeating earthquakes.

It can either scan an existing earthquake catalog to search for similar events, or perform template matching on a continuous waveform stream.

Catalogs and waveforms can be read from local files or downloaded using standard FDSN web services.

Requake is written in Python and uses ObsPy as backend.

Installation

Installing the latest release

Using Anaconda

The following command will automatically create an Anaconda environment named requake, install the required packages and install the latest version of SourceSpec via pip:

conda env create --file https://raw.githubusercontent.com/SeismicSource/requake/main/requake_conda_env.yml

If you want a different name for your environment, use:

conda env create -n YOUR_ENV_NAME --file https://raw.githubusercontent.com/SeismicSource/requake/main/requake_conda_env.yml

Activate the environment with:

conda activate requake

(or conda activate YOUR_ENV_NAME)

To keep Requake updated run the following command from within the environment:

pip install --upgrade requake

Or, to switch to a development snapshot, run:

pip install git+https://github.com/SeismicSource/requake.git

Using pip and PyPI

The latest release of Requake is available on the Python Package Index.

You can install it easily through pip:

pip install requake

Installing a development snapshot

If you need a recent feature that is not in the latest release (see the unreleased section in CHANGELOG), you want to use the more recent development snapshot from the Requake GitHub repository.

Using pip

The easiest way to install the most recent development snapshot is to download and install it through pip, using its builtin git client:

pip install git+https://github.com/SeismicSource/requake.git

Run this command again, from times to times, to keep Requake updated with the development version.

Cloning the Requake GitHub repository

If you want to take a look at the source code (and possibly modify it 😉), clone the project using git:

git clone https://github.com/SeismicSource/requake.git

or, using SSH:

git clone git@github.com:SeismicSource/requake.git

(avoid using the "Download ZIP" option from the green "Code" button, since version number is lost).

Then, go into the requake main directory and install the code in "editable mode" by running:

pip install -e .

You can keep your local Requake repository updated by running git pull from times to times. Thanks to pip's "editable mode", you don't need to reinstall Requake after each update.

If you want the repository style rules to run locally before each commit, enable the included git hook once per clone:

scripts/setup_local_hooks.sh

You can also run the local style checks manually with:

scripts/check_style.sh

Running

Command line arguments

Requake is based on a single executable, aptly named requake 😉.

To get help, use:

requake -h

Different commands are available; each one is a verb followed by the object it acts on:

config              write or update the configuration file
read                read a data set into the output database
scan                search data already in the output database or new
                    waveforms
build               build derived data from the output database
print               print data to screen
list                list the entries stored in the output database
plot                plot data to screen or file
flag                flag entries of the output database
delete              delete a catalog, a catalog scan or a family build
wfcache             manage the persistent waveform cache

Typing a verb alone, as in requake plot, lists the objects it can act on; use -h after an object (e.g., requake plot pair -h) to get the options of that command.

Requake supports command line tab completion for commands and arguments, thanks to argcomplete. To enable command line tab completion run:

activate-global-python-argcomplete

(This is a one-time command that needs to be run only once).

Or, alternatively, add the following line to your .bashrc or .zshrc:

eval "$(register-python-argcomplete requake)"

Typical workflow

The first thing you will want to do is to generate a sample config file:

requake config sample

Edit the config file according to your needs, then read or download the event catalog:

requake read fdsn

or

requake read file CATALOG_FILE

Now, build the catalog of event pairs with:

requake scan catalog

When relying on FDSN web services for waveform data, it is strongly recommended to prefetch all waveform windows before running the scan. This downloads every required waveform once and stores it in a local SQLite cache, avoiding repeated downloads and dramatically reducing overall runtime for large catalogs:

requake wfcache prefetch

Once done (it will take time!), you are ready to build repeating earthquake families:

requake build families

Performances

  • requake scan catalog is designed to fully utilize available CPU cores by processing earthquake pairs in parallel. On an M2 MacBook Air, scanning 95,034 earthquake pairs downloaded via FDSNWS took approximately 5 minutes using 7 worker processes, yielding ~19,000 pairs per minute. When repeating the same scan with a fully cached set of waveforms, runtime dropped to 84 seconds (~68,000 pairs per minute). These results indicate that overall performance is typically dominated by waveform download latency rather than computation.

  • For large FDSN-based runs, use requake wfcache prefetch before requake scan catalog to download all waveforms upfront into a local SQLite cache. This eliminates repeated downloads, lets the scan read exclusively from disk, and is the single most effective way to speed up catalog scanning.

  • requake build families is fast™.

How to Cite

If you used Requake for a scientific paper, please cite it as:

Satriano, C. (2026). Requake: Repeating earthquakes search and analysis (X.Y). doi: 10.5281/ZENODO.10832203

Please replace X.Y with the Requake version number you used.

You can also cite the following abstract presented at the 2021 AGU Fall Meeting:

Satriano, C., Doucet, A. & Bouin, M.-P. (2021). Probing the creep rate along the Lesser Antilles Subduction Zone through repeating earthquakes. In AGU Fall Meeting Abstracts (Vol. 2021, pp. T25A-0167), bibcode: 2021AGUFM.T25A0167S

Releases

Packages

Used by

Contributors

Languages