Skip to content

What is in the Box?

At the heart of pysmo are the pysmo types. These types are used to write additional components that are included in the pysmo package which can be used in other projects, particularly if they also use data that are compatible with 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>.