Skip to content

What is in the box?

At the heart of pysmo are the pysmo types. Everything else in the package is built on them: functions, classes, and tools. All of it can be reused in other projects, especially those whose data already conform to the pysmo types.

Types and Mini classes

The pysmo base namespace provides protocol classes used as type hints and a minimal reference implementation ("Mini class") for each protocol. The protocols define common seismological data structures such as locations, seismic events, stations, and seismograms.

Each Mini class is a concrete attrs class that implements exactly the attributes required by its protocol. Mini classes are named by prefixing "Mini" to the protocol name (e.g. MiniSeismogram implements the Seismogram protocol).

Functions

The pysmo.functions module provides low-level functions that perform common operations on pysmo types. They are intended as building blocks for constructing more complex processing workflows.

Classes

The pysmo.classes module provides classes that implement one or more pysmo protocol types. These classes can be used directly with any pysmo function or tool that operates on pysmo types.

Tools

pysmo.tools contains higher-level, topic-specific modules that build on pysmo.functions and pysmo types. Each tool groups related functionality under its own submodule, imported via pysmo.tools.<tool-name>.