obspy
ObsPy - a Python framework for seismological observatories.
What it is and what it does
ObsPy is a mature, production-grade Python framework designed for seismological research and observatory operations. It abstracts the complexity of reading, writing, and processing seismic waveform data in multiple formats—including MiniSEED, SAC, and StationXML—and provides clients to query major data centers like IRIS and FDSN. The library combines signal processing (filtering, tapering, cross-correlation) with array analysis and focal mechanism tools, all built on numpy and scipy.
The package is intended for rapid application development in seismology, from quick exploratory analysis to production data pipelines. It handles the full workflow: fetching data from remote servers, parsing heterogeneous file formats, applying instrument corrections, and generating publication-ready plots via matplotlib. With active development, broad Python version support, and no known security vulnerabilities, it is a stable choice for seismic data work.
Use it for:
- Download and process earthquake waveforms from FDSN data centers for event analysis and magnitude estimation.
- Parse and convert between multiple seismic file formats (MiniSEED, SAC, StationXML) in batch workflows.
- Apply signal processing (filtering, tapering, deconvolution) to seismic traces for noise reduction and feature extraction.
- Perform array beamforming and cross-correlation analysis on multi-station seismic networks.
- Generate focal mechanism and beachball plots from earthquake event data for publication.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
ObsPy provides a Python framework for processing seismological data, including parsers for common file formats, clients to access data centers, and signal processing routines for manipulating seismic time series.
Yes. ObsPy is a well-maintained, production-stable framework with no security vulnerabilities, broad platform and Python version support, and active development. The medium install friction is justified by its comprehensive seismology toolkit. Install it if you work with seismic data; the dependency footprint is standard for scientific Python.
Install
obspy on PyPI
pip
pip install obspyuv
uv add obspypoetry
poetry add obspyInstalling obspy
Before you install
Medium install friction due to 8 runtime dependencies including numpy, scipy, and matplotlib. Actively maintained with recent commits and broad Python version support from 3.8 through 3.14, with pre-built wheels available across major platforms.
License in practice
Licensed under GNU Lesser General Public License v3 (copyleft). Any derivative work or modifications must be distributed under compatible terms, though linking to the library in proprietary code is permitted under LGPL's linking exception.
Quickstart
pip install obspy
import obspy
st = obspy.read('seismic_data.mseed')
st.plot()
Verify before relying
- Whether the package requires additional system libraries (e.g., for XML parsing via lxml) beyond what pip installs
- Performance characteristics when processing large seismic datasets or real-time streams
Package facts
| License | GNU Lesser General Public License, Version 3 (LGPLv3) (copyleft) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 8 — numpy, scipy, matplotlib, lxml, setuptools, sqlalchemy, decorator, requests |
| Maintenance | actively maintained — 154 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 227,122/month — #9,185 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: obspy-1.5.0-cp310-cp310-macosx_11_0_arm64.whl; obspy-1.5.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; obspy-1.5.0-cp310-cp310-win_amd64.whl; obspy-1.5.0-cp311-cp311-macosx_11_0_arm64.whl; obspy-1.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; obspy-1.5.0-cp311-cp311-win_amd64.whl; obspy-1.5.0-cp312-cp312-macosx_11_0_arm64.whl; obspy-1.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; obspy-1.5.0-cp312-cp312-win_amd64.whl; obspy-1.5.0-cp313-cp313-macosx_11_0_arm64.whl; obspy-1.5.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; obspy-1.5.0-cp313-cp313-win_amd64.whl; obspy-1.5.0-cp314-cp314-macosx_11_0_arm64.whl; obspy-1.5.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; obspy-1.5.0-cp314-cp314-win_amd64.whl; obspy-1.5.0-cp38-cp38-macosx_11_0_arm64.whl; obspy-1.5.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl; obspy-1.5.0-cp38-cp38-win_amd64.whl; obspy-1.5.0-cp39-cp39-macosx_11_0_arm64.whl; obspy-1.5.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Keywords: ALSEP, ArcLink, array, array analysis, ASC, beachball, beamforming, cross correlation, CYBERSHAKE, database, dataless, Dataless SEED, DMX, earthquakes, EarthScope, Earthworm, EIDA, envelope, ESRI, events, FDSN, features, filter, focal mechanism, FOCMEC, GCF, GSE1, GSE2, hob, Tau-P, IASPEI, imaging, IMS, instrument correction, instrument simulation, IRIS, ISF, kinemetrics, KML, magnitude, MiniSEED, misfit, mopad, MSEED, NDK, NERA, NERIES, NonLinLoc, NLLOC, Nordic, NRL, observatory, ORFEUS, PDAS, picker, processing, PQLX, Q, real time, realtime, REFTEK, REFTEK130, RG-1.6, RT-130, RESP, response file, RT, SAC, SAGE, scardec, scml, sc3ml, SDS, SEED, SeedLink, SEG-2, SEG Y, SEISAN, Seismic Handler, seismology, seismogram, seismograms, shapefile, signal, slink, spectrogram, StationXML, taper, taup, travel time, trigger, VERCE, WAV, waveform, WaveServer, WaveServerV, WebDC, web service, WIN, Winston, XML-SEED, XSEED
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
openseespyOpenSeesPy is a Python interpreter for…
unclear · top 15,000 on PyPI
openseespylinuxOpenSeesPy Linux provides a Python interface to…
unclear · top 15,000 on PyPI
wfdbRead, write, process, and plot physiologic…
permissive · top 15,000 on PyPI
segyioSegyio reads and writes SEG-Y formatted seismic…
copyleft · top 15,000 on PyPI
doppler-dspProvides a C99 digital signal processing…
permissive · top 15,000 on PyPI
xtgeoXTGeo manipulates subsurface reservoir…
copyleft · top 15,000 on PyPI
georss-ign-sismologia-clientFetches and parses earthquake event data from…
permissive · top 15,000 on PyPI
noisereduceReduces noise in audio and time-domain signals…
permissive · top 15,000 on PyPI
pyjlsReads and writes JLS (Joulescope) files, a…
permissive · top 15,000 on PyPI