Repeating earthquakes search and analysis.
Copyright (c) 2021-2026 Claudio Satriano satriano@ipgp.fr
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.
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
The latest release of Requake is available on the Python Package Index.
You can install it easily through pip:
pip install requake
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.
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.
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
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)"
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
-
requake scan catalogis 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 prefetchbeforerequake scan catalogto 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 familiesis fast™.
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