Sidereon.Screening (Sidereon v0.8.0)

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

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

  • Sidereon.CelesTrak - fetches TLE / OMM data from public endpoints.
  • Sidereon.Constellation - holds a named set of propagated satellites and drives bulk operations like propagate_all/2.
  • Sidereon.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 Sidereon.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()
) :: [Sidereon.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.