Skip to content

Enums

enums

ARCorrelation

Strategy for correlating two propagated hypothesis clouds.

Construct via the variant-specific classmethods rather than __init__: particle_mahalanobis, joint_fit_chi_squared, and gmm. default returns ParticleMahalanobis { gate_chi2=16.0 }.

__repr__()

Returns a constructor-style call carrying the variant parameters, e.g. ARCorrelation.particle_mahalanobis(gate_chi2=…).

__str__()

Returns the bare variant name (same string as get_name).

default() classmethod

Returns the balanced default (ParticleMahalanobis with gate_chi2=16.0).

Returns:

Name Type Description
ARCorrelation ARCorrelation

The default strategy.

get_name()

Returns the variant name.

Returns:

Name Type Description
str str

One of "ParticleMahalanobis", "JointFitChiSquared",

str

"GMM".

gmm(n_components, gate_distance) classmethod

Gaussian-mixture-model correlation via Bhattacharyya distance.

Parameters:

Name Type Description Default
n_components int

Number of mixture components fit per cloud [count; >= 1].

required
gate_distance float

Bhattacharyya-distance gate [dimensionless; > 0].

required

Returns:

Name Type Description
ARCorrelation ARCorrelation

The configured strategy.

joint_fit_chi_squared(gate_chi2, max_pairs) classmethod

Joint batch-least-squares fit on both tracklets' observations scored by post-fit chi-squared.

Parameters:

Name Type Description Default
gate_chi2 float

Chi-squared gate on the post-fit weighted residual chi-squared [dimensionless; > 0].

required
max_pairs int

Maximum number of (a, b) particle pairs to attempt the joint fit on per tracklet pair [count; > 0].

required

Returns:

Name Type Description
ARCorrelation ARCorrelation

The configured strategy.

particle_mahalanobis(gate_chi2) classmethod

Pairwise Mahalanobis-distance correlation between propagated hypothesis-cloud particles.

Parameters:

Name Type Description Default
gate_chi2 float

Chi-squared gate on the combined-covariance Mahalanobis distance squared [dimensionless; > 0].

required

Returns:

Name Type Description
ARCorrelation ARCorrelation

The configured strategy.

AdmissibleRegionSampling

Strategy for sampling admissible-region particles from the (ρ, ρ̇) bounds attached to an angles-only TrackletFit.

Construct via the variant-specific classmethods rather than __init__: quasi_monte_carlo, grid, and adaptive. default returns the balanced QuasiMonteCarlo { n_particles=256 } default.

__repr__()

Returns a constructor-style call carrying the variant parameters, e.g. AdmissibleRegionSampling.quasi_monte_carlo(n_particles=…).

__str__()

Returns the bare variant name (same string as get_name).

adaptive(coarse_particles, refinement_particles) classmethod

Two-stage sampling: an initial coarse Halton sample, then a refinement sample concentrated near the admissible-region boundary.

Parameters:

Name Type Description Default
coarse_particles int

Coarse Halton-sample particle count [count; > 0].

required
refinement_particles int

Additional refinement particles [count; >= 0].

required

Returns:

Name Type Description
AdmissibleRegionSampling AdmissibleRegionSampling

The configured strategy.

default() classmethod

Returns the balanced default (QuasiMonteCarlo with n_particles=256).

Returns:

Name Type Description
AdmissibleRegionSampling AdmissibleRegionSampling

The default strategy.

get_name()

Returns the variant name.

Returns:

Name Type Description
str str

One of "QuasiMonteCarlo", "Grid", "Adaptive".

grid(n_rho, n_rho_dot) classmethod

Rectangular grid of n_rho × n_rho_dot points in the (ρ, ρ̇) plane.

Parameters:

Name Type Description Default
n_rho int

Number of ρ samples [count; > 0].

required
n_rho_dot int

Number of ρ̇ samples [count; > 0].

required

Returns:

Name Type Description
AdmissibleRegionSampling AdmissibleRegionSampling

The configured strategy.

quasi_monte_carlo(n_particles) classmethod

Halton-sequence quasi-Monte-Carlo sample of n_particles points in the (ρ, ρ̇) plane, restricted to the physical admissible region.

Parameters:

Name Type Description Default
n_particles int

Number of particles to retain after rejection-filtering on the admissible-region bounds [count; > 0].

required

Returns:

Name Type Description
AdmissibleRegionSampling AdmissibleRegionSampling

The configured strategy.

AssociationConfidence

Confidence level for an observation-to-object association.

Numeric values increase with confidence: Low=0, Medium=1, High=2.

Attributes:

Name Type Description
High AssociationConfidence

Strong match across multiple metrics; association is reliable.

Medium AssociationConfidence

Partial or ambiguous match; should be reviewed before acting on.

Low AssociationConfidence

Weak or speculative match; treat with caution.

__repr__()

Returns AssociationConfidence('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this confidence level.

Returns:

Name Type Description
str str

One of "High", "Medium", "Low".

get_value()

Returns the integer code for this confidence level.

Returns:

Name Type Description
int int

Low=0, Medium=1, High=2.

CDMCovarianceMethod

How a CDM object's covariance was produced (COVARIANCE_METHOD).

Attributes:

Name Type Description
Calculated CDMCovarianceMethod

Covariance computed from the orbit determination.

Default CDMCovarianceMethod

A default covariance was substituted.

__repr__()

Returns CDMCovarianceMethod('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the CDM string token of this value.

Returns:

Name Type Description
str str

"CALCULATED" or "DEFAULT".

CDMManeuverable

Whether a CDM object is maneuverable (MANEUVERABLE).

Attributes:

Name Type Description
Yes CDMManeuverable

The object can maneuver.

No CDMManeuverable

The object cannot maneuver.

NotApplicable CDMManeuverable

Unknown or not applicable; its string name is "N/A".

__repr__()

Returns CDMManeuverable('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the CDM string token of this value.

Returns:

Name Type Description
str str

One of "YES", "NO", "N/A".

CelestialBody

A celestial body whose gravitational and positional models are available in this library.

Provides a unified dispatch surface over Earth, Sun, and Moon for force-model and ephemeris calculations. Earth's position is always the inertial origin (zero vector).

Attributes:

Name Type Description
Earth CelestialBody

The Earth; position is always the inertial origin (0.0, 0.0, 0.0) [km].

Sun CelestialBody

The Sun; position derived from a low-precision analytical model [km].

Moon CelestialBody

The Moon; position derived from a low-precision analytical model [km].

__repr__()

Returns CelestialBody('…').

__str__()

Returns the bare variant name (same string as get_name).

equatorial_radius()

Returns the equatorial radius of this body.

Returns:

Name Type Description
float float

Equatorial radius [km].

get_name()

Returns the string name of this celestial body.

Returns:

Name Type Description
str str

One of "Earth", "Sun", "Moon".

get_position_at_epoch(epoch, priority)

Returns the inertial position of this body at the given epoch.

Earth always returns the zero vector. Sun and Moon positions are computed via low-precision analytical models; the accuracy of the result depends on the chosen PerformancePriority.

Parameters:

Name Type Description Default
epoch ModifiedJulianDate

Epoch at which to compute the position.

required
priority PerformancePriority

Controls accuracy vs. speed of the underlying model.

required

Returns:

Type Description
tuple[float, float, float] | None

tuple[float, float, float] | None: Inertial position (x, y, z) [km] in the J2000 / ECI frame, or None if the body's ephemeris model cannot produce a value at the requested epoch.

get_third_body_acceleration(position_sat, position_third_body)

Returns the third-body gravitational acceleration exerted on a satellite.

Uses the standard third-body perturbation formula with the gravitational parameter (μ) of the selected body.

Parameters:

Name Type Description Default
position_sat tuple[float, float, float]

Satellite position in the inertial frame (x, y, z) [km].

required
position_third_body tuple[float, float, float]

Third-body position in the same inertial frame (x, y, z) [km].

required

Returns:

Type Description
tuple[float, float, float]

tuple[float, float, float]: Acceleration (ax, ay, az) due to the third-body perturbation [km/s²].

CitraObservationType

Sensor modality of a Citra observation.

The string value (returned by get_value) is the lowercase serde serialisation used in JSON payloads.

Attributes:

Name Type Description
Optical CitraObservationType

Passive optical measurement (right ascension / declination angles).

Radar CitraObservationType

Active radar measurement (range and/or range-rate).

Doa CitraObservationType

Direction-of-arrival (DOA) RF measurement (azimuth / elevation angles).

__repr__()

Returns CitraObservationType('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the display name of this observation type.

Returns:

Name Type Description
str str

One of "Optical", "Radar", "Doa".

get_value()

Returns the lowercase serde serialisation string for this observation type.

Returns:

Name Type Description
str str

One of "optical", "radar", "doa".

Classification

Data classification level for observation and orbit products.

Numeric values increase with sensitivity: Unclassified=0, Confidential=1, Secret=2.

Attributes:

Name Type Description
Unclassified Classification

Publicly releasable data.

Confidential Classification

Sensitive data restricted to authorised personnel.

Secret Classification

Highly sensitive data with strict access controls.

__repr__()

Returns Classification('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this classification level.

Returns:

Name Type Description
str str

One of "Unclassified", "Confidential", "Secret".

get_value()

Returns the integer code for this classification level.

Returns:

Name Type Description
int int

Unclassified=0, Confidential=1, Secret=2.

CovarianceType

Coordinate basis in which a state covariance matrix is expressed.

Three variants are supported:

  • Inertial(frame) — Earth-centered inertial Cartesian covariance, parameterised by which inertial ReferenceFrame the matrix is expressed in. Must be one of TEME, J2000, or GCRS. Constructed via the static method CovarianceType.Inertial(ReferenceFrame.TEME).
  • Relative — RIC (Radial-In-track-Cross-track) local frame defined by the reference state's r, v. Accessed as the class attribute CovarianceType.Relative.
  • Equinoctial — covariance in equinoctial element space [a, h, k, p, q, L]. Accessed as the class attribute CovarianceType.Equinoctial.

Attributes:

Name Type Description
Relative CovarianceType

Covariance in the RIC (Radial-In-track-Cross-track) relative frame [km, km/s].

Equinoctial CovarianceType

Covariance in equinoctial element space.

Inertial(frame) staticmethod

Constructs an Inertial covariance-type tag parameterised by the specific inertial frame.

Parameters:

Name Type Description Default
frame ReferenceFrame

One of ReferenceFrame.TEME, ReferenceFrame.J2000, or ReferenceFrame.GCRS.

required

Returns:

Type Description
CovarianceType

An Inertial(frame) tag.

Raises:

Type Description
ValueError

If frame is ITRF, PEF, or RIC — those are not inertial Cartesian frames.

__repr__()

Returns CovarianceType('…').

__str__()

Returns the bare variant name (same string as get_name).

get_inertial_frame()

Returns the embedded inertial ReferenceFrame for the Inertial variant, or None for Relative / Equinoctial.

Returns:

Type Description
ReferenceFrame | None

The embedded frame for the Inertial variant, otherwise

ReferenceFrame | None

None.

get_name()

Returns the string name of this covariance type.

Returns:

Name Type Description
str str

"Inertial(<frame>)" for an Inertial variant,

str

"Relative" or "Equinoctial" otherwise.

get_value()

Returns the integer code for this covariance type.

The mapping is lossy for the Inertial variant: every embedded frame returns 0. Use get_inertial_frame to recover the specific inertial frame.

Returns:

Type Description
int

0 for any Inertial(_), 1 for Relative, 2 for

int

Equinoctial.

is_inertial()

Returns True if this tag is the Inertial variant.

Returns:

Type Description
bool

True for Inertial(_), False otherwise.

CoverageMetric

Scalar scored at each candidate location when mapping sensor coverage.

Selects how a candidate site's observability of a satellite or constellation is reduced to a single number for a CoverageGrid. Every variant is derived from the same access windows, so switching metric re-propagates nothing. The default variant is UniqueSatellitesCovered.

Attributes:

Name Type Description
UniqueSatellitesCovered CoverageMetric

Count of distinct satellites with at least the required number of access windows (default). On a single satellite this degenerates to 0/1.

PassCount CoverageMetric

Total number of access windows across all satellites.

TotalAccessTime CoverageMetric

Summed access-window duration across all satellites [s].

MultiSensorCoverage CoverageMetric

Superadditive co-detection score for multi-sensor placement - each satellite contributes k + bonus*C(k,2) where k is the number of placed sensors that see it, rewarding co-detection (e.g. radar and telescope) over the UniqueSatellitesCovered union. Used by optimize_sensor_locations with its co_detection_bonus.

UniqueThenAccessTime CoverageMetric

Lexicographic custody objective - maximize the number of distinct covered satellites first, then break ties by the summed access duration over the covered satellites [s]. Answers "where do I see all of them, for as long as possible?" when many sites cover the same set. The per-site grid value is that covered-target dwell.

TotalVisibilitiesThenAccessTime CoverageMetric

Like UniqueThenAccessTime but for placing several sensors it sums each sensor's covered-satellite count instead of unioning (a target seen by two sensors counts twice), tie-broken by summed covered dwell. Keeps every sensor's collection opportunities in the objective so a near-omniscient sensor cannot skew the placement toward sites that serve only it. On a single sensor it matches UniqueThenAccessTime; the per-site grid value is the covered count.

__repr__()

Returns CoverageMetric('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this coverage metric.

Returns:

Name Type Description
str str

One of "UniqueSatellitesCovered", "PassCount", "TotalAccessTime", "MultiSensorCoverage", "UniqueThenAccessTime", "TotalVisibilitiesThenAccessTime".

DevicePreference

Controls whether batch propagation runs on CPU, GPU, or selects automatically.

The default variant is CPU.

Attributes:

Name Type Description
CPU DevicePreference

Force CPU-only execution via the rayon thread pool (default).

GPU DevicePreference

Force GPU execution via wgpu. The propagator raises RuntimeError when the gpu feature is disabled or no compatible adapter is found at propagation time.

Auto DevicePreference

Automatic selection based on workload size; falls back to CPU for small batches.

__repr__()

Returns DevicePreference('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this device preference.

Returns:

Name Type Description
str str

One of "CPU", "GPU", "Auto".

DragModel

Atmospheric density model used to compute aerodynamic drag acceleration.

Models range from the simplest (constant B* ballistic) through tabulated density profiles to empirical thermospheric models driven by solar and geomagnetic activity.

Attributes:

Name Type Description
Ballistic DragModel

Constant ballistic coefficient (B*) drag; atmospheric density is absorbed into the coefficient.

Exponential DragModel

Exponential density model with tabulated scale-height and base-density layers.

HarrisPriester DragModel

Harris-Priester tabulated model with diurnal bulge correction.

NRLMSISE00 DragModel

NRLMSISE-00 empirical model; accounts for solar flux (F10.7) and geomagnetic activity (Ap).

JacchiaRoberts71 DragModel

Jacchia-Roberts 1971 semi-analytic model driven by exospheric temperature derived from F10.7 and Ap.

JacchiaBowman2008 DragModel

Jacchia-Bowman 2008 (JB2008) model; uses additional solar and geomagnetic indices (S10, M10, Y10).

__repr__()

Returns DragModel('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this drag model.

Returns:

Name Type Description
str str

One of "Ballistic", "Exponential", "HarrisPriester", "NRLMSISE00", "JacchiaRoberts71", "JacchiaBowman2008".

get_value()

Returns the integer code for this drag model.

Returns:

Name Type Description
int int

Ballistic=0, Exponential=1, HarrisPriester=2, NRLMSISE00=3, JacchiaRoberts71=4, JacchiaBowman2008=5.

EarthGravityModel

Earth spherical-harmonic gravity model.

Selects the set of gravitational coefficients (Stokes coefficients C and S) and associated constants (μ, equatorial radius) used by the force model and Keplerian element conversions.

Attributes:

Name Type Description
EGM96 EarthGravityModel

Earth Gravitational Model 1996; complete to degree and order 360. Used as the reference model for the XP propagator and osculating elements.

EGM2008 EarthGravityModel

Earth Gravitational Model 2008; complete to degree and order 2190. Higher resolution than EGM96; useful for precise force-model computation at low altitudes.

WGS84 EarthGravityModel

World Geodetic System 1984 gravity model; four-coefficient ellipsoidal approximation. Paired with WGS72-compatible SGP4/SDP4 constants for TLE-based propagation.

__repr__()

Returns EarthGravityModel('…').

__str__()

Returns the bare variant name (same string as get_name).

earth_model()

Returns the static EarthModel for this gravity model.

The model is loaded once at startup and stored as a static reference; calling this method is zero-allocation.

Returns:

Name Type Description
EarthModel EarthModel

Gravity-model constants and spherical-harmonic coefficient metadata for this variant.

get_name()

Returns the string name of this gravity model.

Returns:

Name Type Description
str str

One of "EGM96", "EGM2008", "WGS84".

get_value()

Returns the integer code for this gravity model.

Returns:

Name Type Description
int int

EGM96=0, EGM2008=1, WGS84=2.

EphemerisSource

Source algorithm used to compute a planetary or lunar ephemeris.

Controls whether celestial-body positions are evaluated with an internal analytical model or tabulated data from the JPL Horizons service.

Attributes:

Name Type Description
Analytical EphemerisSource

Internal low-precision analytical model (e.g., Meeus truncated series). Fast and allocation-free; suitable for force-model perturbation computations where sub-arcsecond accuracy is not required.

Horizons EphemerisSource

Tabulated ephemeris data retrieved from the JPL Horizons web interface. Higher accuracy than the analytical model; requires network access or a locally cached Horizons data file.

__repr__()

Returns EphemerisSource('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this ephemeris source.

Returns:

Name Type Description
str str

One of "Analytical", "Horizons".

get_value()

Returns the integer code for this ephemeris source.

Returns:

Name Type Description
int int

Analytical=0, Horizons=1.

EstimationFilterMode

Operating mode of a self-relaxing sequential estimator.

Reported by AdaptiveOrbitEstimator so callers can track what the filter is doing as it ingests observations.

Attributes:

Name Type Description
Nominal EstimationFilterMode

Accepting observations and tracking normally.

Recovering EstimationFilterMode

Sustained rejection triggered recovery; the orchestrator is scoring candidate orbits over the rejected span to begin accepting observations again.

Failing EstimationFilterMode

No single candidate explains the rejected span, so multiple hypotheses are carried until one is confirmed.

__repr__()

Returns EstimationFilterMode('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this filter mode.

Returns:

Name Type Description
str str

One of "Nominal", "Recovering", "Failing".

HBRShape

Hard-body region shape for the 2D probability-of-collision integral.

The encounter-plane integral of the relative-position Gaussian is taken over this region. Because the covariance is rotated to its principal axes before integration, a square domain separates into a product of two 1D normal-CDF differences — closed-form, no quadrature.

Attributes:

Name Type Description
Circle HBRShape

Hard-body disk of radius HBR. The default, and the only shape the earlier Chan series supported.

Square HBRShape

Axis-aligned square of half-side HBR (side 2·HBR). Matches NASA CARA's Pc2D_Foster 'square' HBR type.

SquareEquivalentArea HBRShape

Axis-aligned square with the same area as the HBR disk (half-side √π/2·HBR, side √π·HBR). Matches NASA CARA's Pc2D_Foster 'squareEquArea' HBR type.

__repr__()

Returns HBRShape('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this hard-body shape.

Returns:

Name Type Description
str str

One of "Circle", "Square", "SquareEquivalentArea".

IntegratorType

Numerical integration algorithm used by the XP propagator.

All three variants integrate the equations of motion in Cartesian coordinates. Step-size control and suitability differ; see individual variant docs for guidance on when to prefer each.

Attributes:

Name Type Description
RungeKutta4 IntegratorType

Classic fixed-step 4th-order Runge-Kutta. Simple and predictable; requires a small step size to match the accuracy of the adaptive variants.

DormandPrince54 IntegratorType

Dormand-Prince 5(4) embedded Runge-Kutta with adaptive step-size control (DOPRI5 / RK45). Good general-purpose choice for smooth force models.

GaussJackson8 IntegratorType

Gauss-Jackson 8th-order Störmer-Cowell predictor-corrector (PEC). One force evaluation per step; validated to mm-level drift over 7-day arcs.

__repr__()

Returns IntegratorType('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this integrator type.

Returns:

Name Type Description
str str

One of "RungeKutta4", "DormandPrince54", "GaussJackson8".

get_value()

Returns the integer code for this integrator type.

Returns:

Name Type Description
int int

RungeKutta4=0, DormandPrince54=1, GaussJackson8=2.

InterpolationMethod

Ephemeris interpolation method recorded in a CCSDS OEM segment.

Carried as the INTERPOLATION keyword. keplime's own Ephemeris auto-selects cubic/quintic Hermite from whether states carry acceleration, so on ingest this is informational; on emit keplime writes Hermite.

Attributes:

Name Type Description
Linear InterpolationMethod

Linear interpolation.

Lagrange InterpolationMethod

Lagrange polynomial interpolation.

Hermite InterpolationMethod

Hermite interpolation; keplime's emit default.

__repr__()

Returns InterpolationMethod('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the CCSDS string token of this method.

Returns:

Name Type Description
str str

One of "LINEAR", "LAGRANGE", "HERMITE".

KeplerianType

Orbit element type describing the averaging theory or osculating convention.

The type determines the compatible propagator and gravitational parameter (μ). GP types use WGS72 constants with SGP4/SDP4; XP and osculating types use EGM96 constants with the numerical XP integrator.

Attributes:

Name Type Description
MeanKozaiGP KeplerianType

Mean elements, Kozai SGP4/SDP4 secular theory, WGS72 μ. Integer code 0.

MeanBrouwerGP KeplerianType

Mean elements, Brouwer general-perturbation theory, WGS72 μ. Integer code 2.

MeanKozaiPPT3 KeplerianType

Mean elements, PPT3 analytic theory (Kozai mean motion, lunisolar and resonance perturbations), WGS72 μ. Integer code 3. Carried by TLE ephemeris type 3.

MeanBrouwerXP KeplerianType

Mean elements, Brouwer extended-perturbation (XP) theory, EGM96 μ. Integer code 4.

Osculating KeplerianType

Osculating (instantaneous) Keplerian elements, EGM96 μ. Integer code 6.

__repr__()

Returns KeplerianType('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this Keplerian type.

Returns:

Name Type Description
str str

One of "MeanKozaiGP", "MeanBrouwerGP",

str

"MeanKozaiPPT3", "MeanBrouwerXP", "Osculating".

get_value()

Returns the integer code for this Keplerian type.

Returns:

Name Type Description
int int

MeanKozaiGP=0, MeanBrouwerGP=2, MeanKozaiPPT3=3,

int

MeanBrouwerXP=4, Osculating=6.

MeanElementTheory

Mean-element theory tag for a CCSDS Orbit Mean-Elements Message (OMM).

Identifies the analytic theory the OMM mean elements are expressed for, carried as the MEAN_ELEMENT_THEORY keyword. The variant selects which optional TLE force terms are meaningful — BSTAR for SGP4 versus BTERM/AGOM for SGP4-XP.

Attributes:

Name Type Description
SGP4 MeanElementTheory

Classical SGP4 (NORAD General Perturbations); TLE ephemeris type 0/2.

SGP4XP MeanElementTheory

SGP4-XP extended theory; TLE ephemeris type 4. Its string name is "SGP4-XP".

__repr__()

Returns MeanElementTheory('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the CCSDS string token of this theory.

Returns:

Name Type Description
str str

"SGP4" or "SGP4-XP".

NutationModel

IAU nutation model used in the Earth orientation / precession-nutation computation.

Currently only the IAU 2000B truncated model is supported. The full IAU 2000A series is selected implicitly when PerformancePriority.Precision is chosen.

Attributes:

Name Type Description
IAU2000B NutationModel

IAU 2000B truncated nutation series (77 luni-solar terms + 1 planetary term). Agrees with IAU 2000A to within ~1 mas over the typical operational epoch range.

__repr__()

Returns NutationModel('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this nutation model.

Returns:

Name Type Description
str str

"IAU2000B".

OrbitDeterminationQuality

Quality classification for an orbit determination solution.

Higher quality indicates more observations, better residuals, and smaller position uncertainty. Numeric values: Low=0, Medium=1, High=2.

Attributes:

Name Type Description
High OrbitDeterminationQuality

Well-determined orbit; low position uncertainty, many observations.

Medium OrbitDeterminationQuality

Moderately constrained orbit; acceptable for routine tasking.

Low OrbitDeterminationQuality

Poorly constrained orbit; large uncertainty, use with caution.

__repr__()

Returns OrbitDeterminationQuality('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this quality level.

Returns:

Name Type Description
str str

One of "High", "Medium", "Low".

get_value()

Returns the integer code for this quality level.

Returns:

Name Type Description
int int

Low=0, Medium=1, High=2.

PcSampleMotion

Relative-motion model used by the Monte Carlo probability-of-collision estimator.

Attributes:

Name Type Description
LinearRelative PcSampleMotion

Rectilinear relative motion at the mean relative velocity; samples the relative position only and scores a closed-form minimum miss distance. The apples-to-apples cross-check of the analytic Foster Pc. Default.

TwoBody PcSampleMotion

Two-body propagation of each sampled 6D state across the encounter window. The only mode that samples velocity covariance; quantifies encounter-curvature error in the linear model.

__repr__()

Returns PcSampleMotion('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this motion model.

Returns:

Name Type Description
str str

One of "LinearRelative", "TwoBody".

PerformancePriority

Performance/accuracy priority for frame transforms and force models.

Used to select between full-precision, balanced, and fast model variants (e.g. IAU 2000A vs. IAU 2000B nutation series).

Attributes:

Name Type Description
Precision PerformancePriority

Full IAU 2000A nutation/precession series; highest accuracy, highest CPU cost.

Balanced PerformancePriority

Hybrid profile with IAU 2000B nutation and moderate-fidelity frame transforms.

Speed PerformancePriority

IAU 2000B nutation with IAU 2006 precession adjustments; fastest, lowest accuracy.

__repr__()

Returns PerformancePriority('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this performance priority.

Returns:

Name Type Description
str str

One of "Precision", "Balanced", "Speed".

ReferenceFrame

Cartesian reference frame for position and velocity vectors.

Frames are divided into inertial (ECI), Earth-fixed (ECF), and relative categories. The frames module provides transforms between all listed frames.

Attributes:

Name Type Description
TEME ReferenceFrame

True Equator, Mean Equinox – native SGP4/SDP4 output frame.

ITRF ReferenceFrame

International Terrestrial Reference Frame; Earth-fixed, includes polar motion.

PEF ReferenceFrame

Pseudo-Earth-Fixed; Earth-fixed without polar-motion correction.

J2000 ReferenceFrame

J2000 mean-equatorial inertial frame (ECI / EME2000).

GCRS ReferenceFrame

Geocentric Celestial Reference System; ECI frame aligned to IAU 2000A.

RIC ReferenceFrame

Radial-In-track-Cross-track local-vertical/local-horizontal relative frame.

__repr__()

Returns ReferenceFrame('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this reference frame.

Returns:

Name Type Description
str str

One of "TEME", "ITRF", "PEF", "J2000",

str

"GCRS", "RIC".

get_value()

Returns the integer code for this reference frame.

Returns:

Name Type Description
int int

TEME=0, ITRF=1, PEF=2, J2000=3,

int

GCRS=4, RIC=5.

RelativeFrame

Describes whether a relative state is expressed in a rotating or inertial frame.

Used when reporting proximity or close-approach states between two objects.

Attributes:

Name Type Description
Rotating RelativeFrame

RIC (Radial-In-track-Cross-track) rotating frame; co-rotates with the reference orbit.

Inertial RelativeFrame

Position and velocity difference expressed in the inertial ECI frame.

__repr__()

Returns RelativeFrame('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this relative frame.

Returns:

Name Type Description
str str

One of "Rotating", "Inertial".

TimeSystem

Time reference system for epoch values.

Every ModifiedJulianDate carries an explicit TimeSystem tag. Use to_system to convert between systems.

The conversion graph supported by the library is:

UTC ↔ TAI ↔ TT ↔ TDB
UTC ↔ UT1
GPS ↔ TAI

Attributes:

Name Type Description
UTC TimeSystem

Coordinated Universal Time; the standard civil timescale with leap seconds.

TAI TimeSystem

International Atomic Time; continuous, no leap seconds. TAI = UTC + (current leap-second offset).

TT TimeSystem

Terrestrial Time; TT = TAI + 32.184 s, used in modern ephemerides.

UT1 TimeSystem

Universal Time corrected for Earth rotation; offset from UTC provided by IERS Finals tables (|UT1−UTC| < 0.9 s).

TDB TimeSystem

Barycentric Dynamical Time; differs from TT by up to ~1.7 ms due to relativistic periodic terms.

GPS TimeSystem

Global Positioning System time; continuous atomic timescale used by GNSS. GPS = TAI − 19 s; epoch 1980-01-06T00:00:00 UTC. No leap seconds.

__repr__()

Returns TimeSystem('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this time system.

Returns:

Name Type Description
str str

One of "UTC", "TAI", "TT", "UT1", "TDB", "GPS".

get_value()

Returns the integer code for this time system.

Returns:

Name Type Description
int int

UTC=0, TAI=1, TT=2, UT1=3, TDB=4, GPS=5.

TrackletFormation

Strategy for grouping raw observations into tracklets.

Construct via the variant-specific classmethods rather than __init__: adaptive_motion_continuity, fixed_thresholds, two_pass, and dbscan. default returns the balanced AdaptiveMotionContinuity default.

__repr__()

Returns a constructor-style call carrying the variant parameters, e.g. TrackletFormation.adaptive_motion_continuity(k_sigma_gate=…, max_gap_seconds=…).

__str__()

Returns the bare variant name (same string as get_name).

adaptive_motion_continuity(k_sigma_gate, max_gap_seconds) classmethod

Greedy per-sensor extension driven by a running angular-rate fit.

Parameters:

Name Type Description Default
k_sigma_gate float

Gate width on the running angular-rate prediction [dimensionless; >= 0].

required
max_gap_seconds float

Hard maximum time gap between adjacent observations [s; > 0].

required

Returns:

Name Type Description
TrackletFormation TrackletFormation

The configured strategy.

dbscan(eps_seconds, eps_arcsec, min_samples) classmethod

DBSCAN clustering on (t, α, δ) with a modality-aware metric.

Parameters:

Name Type Description Default
eps_seconds float

Time-axis neighbourhood radius [s; > 0].

required
eps_arcsec float

Angular-axis neighbourhood radius [arcsec; > 0].

required
min_samples int

Minimum cluster size [count; >= 2].

required

Returns:

Name Type Description
TrackletFormation TrackletFormation

The configured strategy.

default() classmethod

Returns the balanced default (AdaptiveMotionContinuity with k_sigma_gate=3.0 and max_gap_seconds=300.0).

Returns:

Name Type Description
TrackletFormation TrackletFormation

The default strategy.

fixed_thresholds(max_gap_seconds, max_angular_jump_arcsec) classmethod

Two fixed thresholds on time gap and great-circle angular jump.

Parameters:

Name Type Description Default
max_gap_seconds float

Hard maximum time gap [s; > 0].

required
max_angular_jump_arcsec float

Hard maximum great-circle angular separation between adjacent observations [arcsec; > 0].

required

Returns:

Name Type Description
TrackletFormation TrackletFormation

The configured strategy.

get_name()

Returns the variant name.

Returns:

Name Type Description
str str

One of "AdaptiveMotionContinuity", "FixedThresholds",

str

"TwoPass", "DBSCAN".

two_pass(coarse_gap_seconds, motion_k_sigma_gate) classmethod

Two-pass: coarse time-gap split, then motion-continuity split.

Parameters:

Name Type Description Default
coarse_gap_seconds float

Coarse time-gap threshold for the first pass [s; > 0].

required
motion_k_sigma_gate float

Motion-continuity gate used inside each first-pass bucket [dimensionless; >= 0].

required

Returns:

Name Type Description
TrackletFormation TrackletFormation

The configured strategy.

TrackletModality

Measurement modality common to every observation in a Tracklet.

Drives downstream IOD and admissible-region dispatch — angles-only tracklets need the admissible-region machinery, while radar tracklets carry enough information for direct algebraic IOD.

Attributes:

Name Type Description
OpticalAngles TrackletModality

Optical angles-only (right ascension and declination). Range and range-rate are unobserved. Drives the admissible-region path.

Radar TrackletModality

Radar observations carrying range, range-rate, and angles. Provides enough information for direct algebraic initial orbit determination.

Bistatic TrackletModality

Bistatic / passive-RF observations carrying time-difference-of-arrival (TDOA) and optionally frequency-difference-of-arrival (FDOA) between two sensors.

AngleRates TrackletModality

Optical angles-only with reported angular rates. Higher information content than OpticalAngles alone — angle rates allow Laplace's method to seed IOD from a single epoch.

__repr__()

Returns TrackletModality('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this tracklet modality.

Returns:

Name Type Description
str str

One of "OpticalAngles", "Radar", "Bistatic", "AngleRates".

get_value()

Returns the integer code for this tracklet modality.

Returns:

Name Type Description
int int

OpticalAngles=0, Radar=1, Bistatic=2, AngleRates=3.

UCTExpansionMethod

Strategy for the expansion loop that gates unassigned observations against each refined candidate.

Construct via the variant-specific classmethods rather than __init__: mahalanobis_gate and ar_respawn. default returns MahalanobisGate { gate_chi2=9.0 }.

__repr__()

Returns a constructor-style call carrying the variant parameters, e.g. UCTExpansionMethod.mahalanobis_gate(gate_chi2=…).

__str__()

Returns the bare variant name (same string as get_name).

ar_respawn(gate_chi2, position_sigma_km, velocity_sigma_km_per_s) classmethod

AR-respawn fallback when Mahalanobis stalls.

Parameters:

Name Type Description Default
gate_chi2 float

Chi-squared gate used for the Mahalanobis pass that follows the respawn [dimensionless; > 0].

required
position_sigma_km float

Position-axis 1-σ used to size the respawned AR [km; > 0].

required
velocity_sigma_km_per_s float

Velocity-axis 1-σ used to size the respawned AR [km/s; > 0].

required

Returns:

Name Type Description
UCTExpansionMethod UCTExpansionMethod

The configured strategy.

default() classmethod

Returns the balanced default (MahalanobisGate with gate_chi2=9.0).

Returns:

Name Type Description
UCTExpansionMethod UCTExpansionMethod

The default strategy.

get_name()

Returns the variant name.

Returns:

Name Type Description
str str

One of "MahalanobisGate", "ARRespawn".

mahalanobis_gate(gate_chi2) classmethod

Mahalanobis-distance gate on unassigned observations.

Parameters:

Name Type Description Default
gate_chi2 float

Chi-squared gate threshold [dimensionless; > 0]. Smaller is more conservative. Typical value 9.0 (3-sigma).

required

Returns:

Name Type Description
UCTExpansionMethod UCTExpansionMethod

The configured strategy.

UCTIODMethod

Initial-orbit-determination dispatch for the UCT pipeline.

Class-level constants select the requested IOD algorithm. Explicit multi-tracklet methods still generate admissible-region particles during single-tracklet hypothesis generation, then run the selected method once correlation supplies three compatible tracklets.

Attributes:

Name Type Description
Auto UCTIODMethod

Automatic dispatch based on observation modality.

Gauss UCTIODMethod

Classical Gauss angles-only IOD.

Lambert UCTIODMethod

Lambert two-point boundary-value solve.

HerrickGibbs UCTIODMethod

Herrick-Gibbs velocity estimate.

Laplace UCTIODMethod

Laplace angles-only IOD.

DoubleR UCTIODMethod

Double-R angles-only IOD.

Gooding UCTIODMethod

Gooding angles-only IOD.

MultiRevGauss UCTIODMethod

Multi-revolution Gauss dispatch.

KarimiMortari UCTIODMethod

Karimi-Mortari mixed-modality IOD.

ARSeed UCTIODMethod

Admissible-region seeded refinement.

__repr__()

Returns UCTIODMethod.….

__str__()

Returns the bare variant name (same string as get_name).

default() classmethod

Returns the balanced default (Auto).

Returns:

Name Type Description
UCTIODMethod UCTIODMethod

The default strategy.

get_name()

Returns the variant name.

Returns:

Name Type Description
str str

One of the class-level constant names.

UCTObservability

Observability status of an uncorrelated track (UCT) against a sensor pass.

Numeric values: Confirmed=0, Possible=1, Unavailable=2.

Attributes:

Name Type Description
Confirmed UCTObservability

Object is geometrically confirmed within the sensor's field of view.

Possible UCTObservability

Object may be observable depending on attitude, obscuration, or sensitivity.

Unavailable UCTObservability

Object is not observable (geometry, Earth shadow, or out-of-range).

__repr__()

Returns UCTObservability('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this observability status.

Returns:

Name Type Description
str str

One of "Confirmed", "Possible", "Unavailable".

get_value()

Returns the integer code for this observability status.

Returns:

Name Type Description
int int

Confirmed=0, Possible=1, Unavailable=2.

UCTRefinementMethod

Estimator used to refine each candidate after IOD.

Class-level constants for each variant. default returns BLS.

Attributes:

Name Type Description
BLS UCTRefinementMethod

Iterated Gauss-Newton batch least squares (default).

UKF UCTRefinementMethod

Unscented Kalman filter.

EKF UCTRefinementMethod

Extended Kalman filter.

__repr__()

Returns UCTRefinementMethod.….

__str__()

Returns the bare variant name (same string as get_name).

default() classmethod

Returns the balanced default (BLS).

Returns:

Name Type Description
UCTRefinementMethod UCTRefinementMethod

The default strategy.

get_name()

Returns the variant name.

Returns:

Name Type Description
str str

One of "BLS", "UKF", "EKF".

UCTValidity

Classifier for the physical validity of an uncorrelated track (UCT).

Numeric values: LikelyReal=0, PossibleCrossTag=1, PossibleManeuver=2, Inconclusive=3.

Attributes:

Name Type Description
LikelyReal UCTValidity

Track residuals are consistent with a real, stable object.

PossibleCrossTag UCTValidity

Track may result from a cross-tag (misassociation) between two objects.

PossibleManeuver UCTValidity

Track exhibits dynamics consistent with a manoeuvre or unusual perturbation.

Inconclusive UCTValidity

Validity cannot be determined from available data.

__repr__()

Returns UCTValidity('…').

__str__()

Returns the bare variant name (same string as get_name).

get_name()

Returns the string name of this validity classification.

Returns:

Name Type Description
str str

One of "LikelyReal", "PossibleCrossTag",

str

"PossibleManeuver", "Inconclusive".

get_value()

Returns the integer code for this validity classification.

Returns:

Name Type Description
int int

LikelyReal=0, PossibleCrossTag=1,

int

PossibleManeuver=2, Inconclusive=3.