SAUL
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 agit pullupdate!
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)
| File | Size | Uploaded | |
|---|---|---|---|
| saul-26.10.9.tar.gz | 283.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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