Skip to main content

Keep a local seismic catalog

Project description

SeisCat

Keep a local seismic catalog.

changelog-badge PyPI-badge license-badge docs-badge DeepWiki-badge codecov-badge DOI-badge

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

Overview

SeisCat is a command-line tool to build, maintain, and query a local seismic catalog.

It builds and updates the catalog from FDSNWS event web services or local event files. Input formats include CSV and any format handled by ObsPy (QuakeML, SC3ML, NLLOC, etc.). The catalog is stored in a SQLite single-file database and can be used as a basis for further analysis.

SeisCat also provides tools to plot and export the catalog, fetch waveforms and station metadata for catalog events, and run user-defined scripts on those events.

👇 See below on how to install and get started.

📖 Check out the official documentation here.

Getting Started

To get help:

seiscat -h

First thing to do is to generate a sample configuration file:

seiscat sampleconfig

Then, edit the configuration file and init the database:

seiscat initdb

Alternatively, you can init the database from an event file (CSV, QuakeML, SC3ML, NLLOC, etc.):

seiscat initdb -f /path/to/your/catalog.csv
seiscat initdb -f /path/to/your/events.xml

To update an existing database from an FDSN webservice, run:

seiscat updatedb

(This will use the configuration parameter recheck_period to recheck the last n days or hours).

Alternatively, you can update the database from an event file:

seiscat updatedb -f /path/to/your/catalog.csv
seiscat updatedb -f /path/to/your/events.xml

You can edit the attributes of specific events in the database using:

seiscat editdb

You can print the catalog to screen:

seiscat print

Or plot it:

seiscat plot

Each of the above commands can have its own options. As an example, to discover the options for the plot command, try:

seiscat plot -h

SeisCat supports command line tab completion for 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 seiscat)"

Installation

Installing the latest release

Using pip and PyPI (preferred method)

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

You can install it easily through pip:

pip install seiscat

Optional plotting backends can be installed with extras:

pip install seiscat[cartopy]
pip install seiscat[plotly]
pip install seiscat[cartopy,plotly]

To upgrade from a previously installed version:

pip install --upgrade seiscat

From SeisCat GitHub releases

Download the latest release from the releases page, in zip or tar.gz format, then:

pip install seiscat-X.Y.zip

or

pip install seiscat-X.Y.tar.gz

Where, X.Y is the version number (e.g., 0.1). You don't need to uncompress the release files yourself.

Installing a developer 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 SeisCat GitHub repository.

Using pip (preferred method)

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/seiscat.git

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

Cloning the SeisCat 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/seiscat.git

or, using SSH:

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

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

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

pip install -e .

To install optional plotting backends in editable mode:

pip install -e .[cartopy]
pip install -e .[plotly]
pip install -e .[cartopy,plotly]

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

Getting Help / Reporting Bugs

🙏 I need help

Please open an Issue.

🐞 I found a bug

Please open an Issue.

Contributing

I'm very open to contributions: if you have new ideas, please open an Issue. Don't hesitate sending me pull requests with new features and/or bugfixes!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seiscat-0.9.1.tar.gz (161.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

seiscat-0.9.1-py3-none-any.whl (155.2 kB view details)

Uploaded Python 3

File details

Details for the file seiscat-0.9.1.tar.gz.

File metadata

  • Download URL: seiscat-0.9.1.tar.gz
  • Upload date:
  • Size: 161.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for seiscat-0.9.1.tar.gz
Algorithm Hash digest
SHA256 a67a6d639899006b054744697997973b2ca47436afb353bc242e9970a7246d2a
MD5 906c46c3e8adc1f19a97fcb4dd0bff39
BLAKE2b-256 13294cc990e30260c13fb892fb4e0580d117c588c65976a9c9406fb978ac14e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for seiscat-0.9.1.tar.gz:

Publisher: publish-to-pypi.yml on SeismicSource/seiscat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file seiscat-0.9.1-py3-none-any.whl.

File metadata

  • Download URL: seiscat-0.9.1-py3-none-any.whl
  • Upload date:
  • Size: 155.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for seiscat-0.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b87df818496680206afe6417b986b3431e2a7b4ff0735e9c83dce558818cc9a8
MD5 4ea52b11ff88aa9a36bdfbcab1e56fef
BLAKE2b-256 01599068bf02ad6217b79bdebdef337aa22dbdc005c130045af7ceceb702e761

See more details on using hashes here.

Provenance

The following attestation bundles were made for seiscat-0.9.1-py3-none-any.whl:

Publisher: publish-to-pypi.yml on SeismicSource/seiscat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page