Orbis.Screening (Orbis v0.9.1)

Copy Markdown View Source

Catalog-scale conjunction screening.

Generates candidate pairs from many objects, applies coarse filters, and evaluates collision probability on surviving encounters.

Where catalog management lives

Orbis treats "catalog" as a responsibility split across three modules rather than a single Catalog facade:

  • Orbis.CelesTrak — fetches TLE / OMM data from public endpoints.
  • Orbis.Constellation — holds a named set of propagated satellites and drives bulk operations like propagate_all/2.
  • Orbis.Screening (this module) — consumes a materialized list of objects at a common epoch and produces conjunction results.

A typical workflow pipes CelesTrak → Constellation → Screening. There is no separate Orbis.Catalog module because that layer would only re-export these three with no additional behavior.

Summary

Functions

Screen a list of objects at a common epoch for potential conjunctions.

Types

object()

@type object() :: %{
  optional(:id) => String.t(),
  r: {float(), float(), float()},
  v: {float(), float(), float()},
  cov: [[float()]],
  hard_body_radius_km: float()
}

Functions

screen_catalog(objects, opts \\ [])

@spec screen_catalog(
  [object()],
  keyword()
) :: [Orbis.Screening.Result.t()]

Screen a list of objects at a common epoch for potential conjunctions.

Options

  • :miss_threshold_km — Coarse distance filter (default: 50.0)
  • :pc_threshold — Filter final results by risk (default: 0.0)
  • :method — Collision probability method (default: :equal_area)

Returns a list of %Result{} sorted by decreasing Pc.