empyrean.compute_impact_probabilities

compute_impact_probabilities(orbits, end_epoch, methods, body_filter=None)[source]

Run impact-probability detection over a propagation window with one full propagation per supplied UncertaintyMethod.

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

  • end_epoch (float | Epochs) – End of the propagation window. MJD TDB float or a length-1 Epochs (any time scale — converted to TDB internally).

  • methods (Sequence[UncertaintyMethod | SigmaPoint | MonteCarlo | GaussianMixture | str | int]) –

    Which uncertainty methods to run. One full propagation runs per method (in order); the result rows are tagged with the method via the method string column.

    Each entry may be a SigmaPoint / MonteCarlo / GaussianMixture dataclass, and that entry’s own parameters are carried through to the engine for that method — MonteCarlo(n_samples=100_000, seed=7) draws 100 000 samples from that seed, and GaussianMixture(threshold=0.5, max_depth=4, components_per_split=5) configures the mixture splitter. Parameters are per entry: methods in the same call do not share them.

    The UncertaintyMethod enum, its wire string, and a raw integer tag select the same method with engine defaults.

    A non-default SigmaPoint(n_sigma=...) / SigmaPoint(samples_per_plane=...) is rejected by the engine: the canonical 2N+1 unscented set is parameter-free, so those legacy knobs accept only their default values. The rejection surfaces as a raised error rather than a silently reinterpreted run.

  • body_filter (Sequence[Origin | str] | None) – Restrict event monitoring to specific bodies. Pass Origin instances (e.g. [Origin.EARTH, Origin.MOON]) or canonical names. Default monitors every body in the ephemeris.

Return type:

ImpactProbabilities

Returns:

ImpactProbabilities – Quivr table — one row per (method × orbit × body) encounter. See the class for the full column list. method takes "first_order" / "second_order" / "sigma_point" / "monte_carlo" / "auto" / "gaussian_mixture".

Notes

Each method’s result is computed with a separate propagation run — different uncertainty backings (linear, second-order, sample cloud) don’t yet share an integration step. The cost scales linearly with len(methods).

Row counts are not comparable across methods. The analytic methods emit one row per detected close approach, while Monte-Carlo emits at most one row per body.