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>.