empyrean.TaggedCovariance

class TaggedCovariance(epoch_mjd_tdb, state, matrix, kind, quality, quality_min_eig, quality_kappa_state, mc_seed, mean_shift_prop, mean_shift_input, non_grav, thrust_segments, solved_width, target_functional, origin, frame, non_grav_cross, state_cross, param_cross)[source]

Bases: object

Provenance-tagged covariance at a single (orbit, epoch).

The ergonomic per-epoch view yielded by tagged_covariance_series(). The matrix is a contiguous (6, 6) array and the enums are decoded.

Parameters:
epoch_mjd_tdb

Epoch of this covariance (MJD TDB).

Type:

float

state

Co-located propagated nominal state [x, y, z, vx, vy, vz] (AU, AU/day), shape (6,).

Type:

np.ndarray

matrix

The 6×6 covariance, contiguous, shape (6, 6).

Type:

np.ndarray

kind

How the covariance was derived.

Type:

CovarianceKind

quality

Definiteness of matrix.

Type:

CovarianceQuality

quality_min_eig

Minimum eigenvalue for indefinite / repaired matrices; NaN for every other quality.

Type:

float

quality_kappa_state

κ_state, the block-wise quadratic/linear ratio that produced an CovarianceQuality.EXPANSION_SUSPECT tag; NaN for every other quality, and inf when a zero-spread block carried a nonzero second-order correction. Read-only provenance — guard with math.isfinite() before any arithmetic.

Type:

float

mc_seed

Monte-Carlo run seed (set only when kind is CovarianceKind.MONTE_CARLO).

Type:

int, optional

mean_shift_prop

Second-order propagation mean shift δμ_prop (zero at t₀), shape (6,) or None.

Type:

np.ndarray, optional

mean_shift_input

OD-estimator mean shift δμ₀ (nonzero at t₀), shape (6,) or None.

Type:

np.ndarray, optional

non_grav

[A1, A2, A3] non-grav solved flags, shape (3,) bool.

Type:

np.ndarray

thrust_segments

Thrust Δv segments solved for.

Type:

int

solved_width

Solved width (6 / 9 / 12 / …) — the conservative-vs-optimistic information-product axis.

Type:

int

target_functional

The functional this second moment describes.

Type:

TargetFunctional

origin

Canonical origin (center body) name of the basis.

Type:

str

frame

Reference frame of the basis (canonical name, e.g. "icrf").

Type:

str

non_grav_cross

The (6, 3) state-to-(A1, A2, A3) cross covariance, in the same basis as matrix; None when the orbit declared no Marsden block.

Type:

np.ndarray, optional

state_cross

Every other state-parameter column, keyed by parameter tag ("DT", "AMRAT", "thrust[0].x"), each a 6-vector. Empty when the layout carries none.

Type:

dict[str, np.ndarray]

param_cross

Parameter-parameter terms, keyed by canonical (a, b) pair. Empty when the layout carries none.

Type:

dict[tuple[str, str], float]

Methods

__init__(epoch_mjd_tdb, state, matrix, kind, ...)

Attributes

corrected_mean

state + δμ_prop + δμ_input.

epoch_mjd_tdb

state

matrix

kind

quality

quality_min_eig

quality_kappa_state

mc_seed

mean_shift_prop

mean_shift_input

non_grav

thrust_segments

solved_width

target_functional

origin

frame

non_grav_cross

state_cross

param_cross

epoch_mjd_tdb: float
state: ndarray
matrix: ndarray
kind: CovarianceKind
quality: CovarianceQuality
quality_min_eig: float
quality_kappa_state: float
mc_seed: int | None
mean_shift_prop: ndarray | None
mean_shift_input: ndarray | None
non_grav: ndarray
thrust_segments: int
solved_width: int
target_functional: TargetFunctional
origin: str
frame: str
non_grav_cross: ndarray | None
state_cross: dict[str, ndarray]
param_cross: dict[tuple[str, str], float]
property corrected_mean: ndarray

state + δμ_prop + δμ_input.

Mean shifts default to zero when absent, so this always returns a (6,) array.

Type:

The corrected mean