empyrean.generate_ephemeris

generate_ephemeris(orbits, observers, config=None, *, force_model=None, uncertainty_method=None, _builtsystem=None)[source]

Generate predicted ephemeris (RA/Dec) for orbits at observer locations.

Parameters:
  • orbits (CartesianOrbits | KeplerianOrbits | CometaryOrbits | SphericalOrbits) – Input orbits with optional covariance and non-gravitational parameters.

  • observers (Observers) – Observer states from get_observer_states().

  • config (EphemerisConfig | None) – Full configuration. Construct with EphemerisConfig(propagation=PropagationConfig(...), ...). If omitted, one is built from the sugar kwargs below (or defaults).

  • force_model (ForceModelTier | str | None) – Quick override for config.propagation.force_model. Ignored if config is given.

  • uncertainty_method (UncertaintyMethod | SigmaPoint | MonteCarlo | GaussianMixture | str | None) – Optional quick override for config.propagation.uncertainty_method. Only the analytic methods are supported for ephemeris: FIRST_ORDER, SECOND_ORDER, AUTO, and GAUSSIAN_MIXTURE (SECOND_ORDER additionally populates observation Hessians on the resulting ObservationSensitivity; GAUSSIAN_MIXTURE is an adaptive-Gaussian-mixture method that is likewise analytic on this path). The sky-plane covariance is a first-order STM projection (J·Φ·Σ·Φᵀ·Jᵀ) that does not consume a sampled ensemble, so the sampling methods SIGMA_POINT and MONTE_CARLO are rejected with a ValueError rather than silently downgraded to first order. For a sampled state covariance use propagate() with SIGMA_POINT; for Monte-Carlo impact probability use compute_impact_probabilities(). Ignored if config is given.

  • _builtsystem (Any)

Return type:

EphemerisResult

Returns:

EphemerisResult – Wraps the Ephemeris table and, when input covariance is carried, the observation-partials ObservationSensitivity container. Rows are orbit-major and, within each orbit, follow the observer-input order (sensitivity rows too). Each observer carries its own epoch, so positional pairing against the input observers is safe within an orbit block.

Examples

Defaults (Standard force model, FirstOrder uncertainty):

>>> result = empyrean.generate_ephemeris(orbits, observers)

With a config object:

>>> cfg = EphemerisConfig(
...     propagation=PropagationConfig(
...         force_model=ForceModelTier.STANDARD,
...         uncertainty_method=UncertaintyMethod.SECOND_ORDER,
...     ),
...     compute_diagnostics=False,
... )
>>> result = empyrean.generate_ephemeris(orbits, observers, cfg)