OB

obspy-data-api

Python-based processing and parsing of seismological data formats using ObsPy.

Install

mkdir -p .claude/skills/obspy-data-api && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5817" && unzip -o skill.zip -d .claude/skills/obspy-data-api && rm skill.zip

Installs to .claude/skills/obspy-data-api

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

An overview of the core data API of ObsPy, a Python framework for processing seismological data. It is useful for parsing common seismological file formats, or manipulating custom data into standard objects for downstream use cases such as ObsPy's signal processing routines or SeisBench's modeling API.
303 charsno explicit “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Intermediate

Key capabilities

  • Parse seismological file formats
  • Manipulate waveform data
  • Handle event metadata
  • Manage station inventory hierarchy
  • Apply signal processing routines

How it works

It provides an interface to the ObsPy framework, mapping file data into standardized Stream, Trace, and Inventory objects for analysis.

Inputs & outputs

You give it
seismic data file
You get back
ObsPy Stream object

When to use obspy-data-api

  • Parse seismic data files
  • Manipulate seismological data
  • Process waveform data

About this skill

ObsPy Data API

Waveform Data

Summary

Seismograms of various formats (e.g. SAC, MiniSEED, GSE2, SEISAN, Q, etc.) can be imported into a Stream object using the read() function.

Streams are list-like objects which contain multiple Trace objects, i.e. gap-less continuous time series and related header/meta information.

Each Trace object has the attribute data pointing to a NumPy ndarray of the actual time series and the attribute stats which contains all meta information in a dict-like Stats object. Both attributes starttime and endtime of the Stats object are UTCDateTime objects.

A multitude of helper methods are attached to Stream and Trace objects for handling and modifying the waveform data.

Stream and Trace Class Structure

Hierarchy: StreamTrace (multiple)

Trace - DATA:

  • data → NumPy array
  • stats:
    • network, station, location, channel — Determine physical location and instrument
    • starttime, sampling_rate, delta, endtime, npts — Interrelated

Trace - METHODS:

  • taper() — Tapers the data.
  • filter() — Filters the data.
  • resample() — Resamples the data in the frequency domain.
  • integrate() — Integrates the data with respect to time.
  • remove_response() — Deconvolves the instrument response.

Example

A Stream with an example seismogram can be created by calling read() without any arguments. Local files can be read by specifying the filename, files stored on http servers (e.g. at https://examples.obspy.org) can be read by specifying their URL.

>>> from obspy import read
>>> st = read()
>>> print(st)
3 Trace(s) in Stream:
BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z - ... | 100.0 Hz, 3000 samples
BW.RJOB..EHN | 2009-08-24T00:20:03.000000Z - ... | 100.0 Hz, 3000 samples
BW.RJOB..EHE | 2009-08-24T00:20:03.000000Z - ... | 100.0 Hz, 3000 samples
>>> tr = st[0]
>>> print(tr)
BW.RJOB..EHZ | 2009-08-24T00:20:03.000000Z - ... | 100.0 Hz, 3000 samples
>>> tr.data
array([ 0.        ,  0.00694644,  0.07597424, ...,  1.93449584,
        0.98196204,  0.44196924])
>>> print(tr.stats)
         network: BW
         station: RJOB
        location:
         channel: EHZ
       starttime: 2009-08-24T00:20:03.000000Z
         endtime: 2009-08-24T00:20:32.990000Z
   sampling_rate: 100.0
           delta: 0.01
            npts: 3000
           calib: 1.0
           ...
>>> tr.stats.starttime
UTCDateTime(2009, 8, 24, 0, 20, 3)

Event Metadata

Event metadata are handled in a hierarchy of classes closely modelled after the de-facto standard format QuakeML. See read_events() and Catalog.write() for supported formats.

Event Class Structure

Hierarchy: CatalogeventsEvent (multiple)

Event contains:

  • originsOrigin (multiple)
    • latitude, longitude, depth, time, ...
  • magnitudesMagnitude (multiple)
    • mag, magnitude_type, ...
  • picks
  • focal_mechanisms

Station Metadata

Station metadata are handled in a hierarchy of classes closely modelled after the de-facto standard format FDSN StationXML which was developed as a human readable XML replacement for Dataless SEED. See read_inventory() and Inventory.write() for supported formats.

Inventory Class Structure

Hierarchy: InventorynetworksNetworkstationsStationchannelsChannel

Network:

  • code, description, ...

Station:

  • code, latitude, longitude, elevation, start_date, end_date, ...

Channel:

  • code, location_code, latitude, longitude, elevation, depth, dip, azimuth, sample_rate, start_date, end_date, response, ...

Classes & Functions

Class/FunctionDescription
readRead waveform files into an ObsPy Stream object.
StreamList-like object of multiple ObsPy Trace objects.
TraceAn object containing data of a continuous series, such as a seismic trace.
StatsA container for additional header information of an ObsPy Trace object.
UTCDateTimeA UTC-based datetime object.
read_eventsRead event files into an ObsPy Catalog object.
CatalogContainer for Event objects.
EventDescribes a seismic event which does not necessarily need to be a tectonic earthquake.
read_inventoryFunction to read inventory files.
InventoryThe root object of the NetworkStationChannel hierarchy.

Modules

ModuleDescription
obspy.core.traceModule for handling ObsPy Trace and Stats objects.
obspy.core.streamModule for handling ObsPy Stream objects.
obspy.core.utcdatetimeModule containing a UTC-based datetime class.
obspy.core.eventModule handling event metadata.
obspy.core.inventoryModule for handling station metadata.
obspy.core.utilVarious utilities for ObsPy.
obspy.core.previewTools for creating and merging previews.

When not to use it

  • Non-seismological data processing

Prerequisites

Pythonnumpy

Limitations

  • Limited to supported seismological formats
  • Requires understanding of ObsPy class hierarchy

How it compares

It abstracts complex seismological file formats into standard Python objects, simplifying downstream signal processing tasks.

Compared to similar skills

obspy-data-api side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
obspy-data-api (this skill)16moNo flagsIntermediate
jupyter-notebook306moReviewIntermediate
source-coding17moReviewAdvanced
biopython17moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry