SkillAgentSearch skills...

obspy-data-api

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 A…

Install / Use

npx skills add benchflow-ai/skillsbench --skill obspy-data-api

Installs into whichever agent you are using.

About this skill
📄

SKILL.md

Installable skill definition

Quality Score

86/100

Supported Platforms

Universal

Our assessment of obspy-data-api

obspy-data-api scores 86/100 on our quality scale, 1645th of 4,653 Development & Engineering skills we index (top 36%).

Its SKILL.md is 5.3 KB long, well organised into 11 sections with 1 code example: a solid amount of guidance for an agent.

With 1,813 GitHub stars, it is one of the more widely adopted skills in the catalogue.

Substance
26/30
Structure
17/20
Description
15/15
Adoption
14/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated about 2 months ago, so obspy-data-api is actively maintained.
  • It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

obspy-data-api compared with similar skills

All 4 of these similar skills score higher than obspy-data-api; compare them before choosing.

SkillScoreStarsUpdatedFormat
obspy-data-api (this skill)by benchflow-ai861.8k2mo agoSKILL.md
Agent-Reachby Panniantong10087.6k16d agoCLAUDE.md
headroomby headroomlabs-ai10074.3ktodayCLAUDE.md
ai-job-searchby MadsLorentzen10044.7ktodayCLAUDE.md
claude-howtoby luongnv8910041.7k2d agoCLAUDE.md

Frequently asked questions

How do I install obspy-data-api?
Run npx skills add benchflow-ai/skillsbench --skill obspy-data-api. The install tabs above show the steps for each supported agent.
Which AI agents does obspy-data-api work with?
It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
Is obspy-data-api safe to use?
It is Apache-2.0-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is obspy-data-api still maintained?
The repository was last updated about 2 months ago, so obspy-data-api is actively maintained.

name: obspy-data-api description: 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.

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: Stream → Trace (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: Catalog → events → Event (multiple)

Event contains:

  • origins → Origin (multiple)
    • latitude, longitude, depth, time, ...
  • magnitudes → Magnitude (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: Inventory → networks → Network → stations → Station → channels → Channel

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/Function | Description | |----------------|-------------| | read | Read waveform files into an ObsPy Stream object. | | Stream | List-like object of multiple ObsPy Trace objects. | | Trace | An object containing data of a continuous series, such as a seismic trace. | | Stats | A container for additional header information of an ObsPy Trace object. | | UTCDateTime | A UTC-based datetime object. | | read_events | Read event files into an ObsPy Catalog object. | | Catalog | Container for Event objects. | | Event | Describes a seismic event which does not necessarily need to be a tectonic earthquake. | | read_inventory | Function to read inventory files. | | Inventory | The root object of the Network → Station → Channel hierarchy. |

Modules

| Module | Description | |--------|-------------| | obspy.core.trace | Module for handling ObsPy Trace and Stats objects. | | obspy.core.stream | Module for handling ObsPy Stream objects. | | obspy.core.utcdatetime | Module containing a UTC-based datetime class. | | obspy.core.event | Module handling event metadata. | | obspy.core.inventory | Module for handling station metadata. | | obspy.core.util | Various utilities for ObsPy. | | obspy.core.preview | Tools for creating and merging previews. |

Related Skills

View on GitHub
GitHub Stars1.8k
CategoryDevelopment
Updated2mo ago
Forks368

Languages

PDDL

Trust signals

100/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

No cautions