API Reference

This section provides detailed documentation for all public classes and functions in PyStrata.

Overview

PyStrata’s API is organized into five main modules:

Motion (Motion Module)

Classes for representing and manipulating ground motion data

Site (Site Module)

Classes for defining layered soil profiles and material properties

Propagation (Propagation Module)

Site response analysis calculators and methods

Output (Output Module)

Output quantity computation and data handling

Variation (Variation Module)

Tools for parameter variation and uncertainty analysis

Design Philosophy

The API follows several key design principles:

Immutability

Most objects are immutable after creation to prevent accidental modification

Composition

Complex functionality is built by composing simpler components

Type Safety

Extensive use of type hints for better development experience

Consistent Interfaces

Similar patterns across different modules for ease of use

Extensibility

Clear extension points for custom functionality

Common Patterns

Factory Methods

Many classes provide class methods for convenient creation:

motion = pystrata.motion.TimeSeriesMotion.load_at2_file("motion.at2")
Output Collections

Multiple outputs can be managed together:

outputs = pystrata.output.OutputCollection([
    pystrata.output.ResponseSpectrumOutput(),
    pystrata.output.AccelTransferFunctionOutput(),
])
Calculator Interface

All propagation calculators implement the same calling interface:

calc = pystrata.propagation.EquivalentLinearCalculator()
calc(motion, profile, output_location)
Property Access

Read-only properties provide computed values:

profile.vs30  # Time-averaged shear wave velocity
motion.duration  # Motion duration
output.values  # Computed output values