Skip to main content

SAUL

API documentation status

SAUL is the SeismoAcoustic Utilities Library. It's my take on the collection of tools that I imagine exist, in some form, on every seismoacoustican's computer — utilities for gathering waveform data, plotting waveforms in the time and frequency domain, visualizing key metadata such as station locations, et cetera. The goal of SAUL is to make these fundamental data exploration tools as easy-to-use as possible. Thus, priority is placed upon straightforward (e.g., easily memorized) commands and time-saving helper functions — while attempting to leverage existing dependencies as much as possible to avoid duplicated effort.

🚧 Disclaimer 🚧
As a workhorse "everyday tools" repository, SAUL is currently (perpetually?) under rapid development. Expect to encounter breaking changes after a git pull update!

Installing

SAUL is primarily developed on macOS, but it ought to work on Linux — and Windows via Windows Subsystem for Linux (WSL).

This assumes that you've already installed uv, and that you've navigated to a target directory of your choosing:

uv venv --python 3.11
uv pip install saul

This creates a .venv/ folder in the target directory with SAUL and its dependencies installed.

If you'd rather install SAUL into an existing, e.g., mamba environment instead of using uv, activate that environment and use pip directly:

pip install saul

Using

SAUL works best in an interactive Python console, which is why IPython is included as a dependency. There are multiple options for launching IPython with SAUL available. You can run IPython directly:

<target_directory>/.venv/bin/ipython

Where <target_directory> is the path to the directory in which you installed SAUL. If you're already in that directory, you can also just run:

uv run ipython

Finally, you can activate the virtual environment and launch IPython directly, via (for example):

source <target_directory>/.venv/bin/activate.fish  # Other shells have different scripts
ipython

Here's a simple usage example which highlights SAUL's object-oriented interface:

from saul import PSD, Stream

st = Stream.from_earthscope('AK', 'HOM', 'BDF', (2023, 9, 1, 0, 5), (2023, 9, 1, 0, 15))
st.detrend().taper(0.05).remove_response()  # SAUL Stream objects behave like ObsPy's
PSD(st, method='multitaper').plot(show_noise_models=True)

For detailed usage information, see the API documentation.

Developing

To develop SAUL, first clone this repository and navigate to the root directory. Then run:

uv sync --all-groups

This creates a .venv/ folder in the repository root with an editable SAUL and all of its dependencies — including those for development and documentation — installed. You can run IPython with SAUL in the same way as described above, but from anywhere:

uv run --project <repository_root> ipython

Where <repository_root> is the path to the root of the SAUL repository. You can view the various developer tasks available with uv run poe.

Metadata

Release files for saul 26.10.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for saul 26.10.9
File Size Uploaded
saul-26.10.9.tar.gz 283.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for saul 26.10.9
File Interpreter ABI Platform
saul-26.10.9-py3-none-any.whl Python 3 none any Details

Total release size: 320.2 kB

Release files / saul-26.10.9.tar.gz

Download URL saul-26.10.9.tar.gz
Size 283.2 kB
Tags Source
SHA-256 checksum
How to use checksums
814a5bde4a11ed712426d30b66f37f87a940715f226df31a6452a6846b6fabb0
BLAKE2b-256 checksum
How to use checksums
8c78211d66afa35e9fba9a941218ba0dbb9dadae192c28da433e605328a9408f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / saul-26.10.9-py3-none-any.whl

Download URL saul-26.10.9-py3-none-any.whl
Size 37.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7f0ffb810ce772a780195cfa1be7bf95023393604b78cde8dc8847ad99af5972
BLAKE2b-256 checksum
How to use checksums
e1fbe213a6233bf0fc88f918f44033ecbe49db5106a12f363cb9286a95ac4be1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

26.10.9 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page