empyrean.determine

determine(observations, initial_orbits=None, *, radar=None, config=None)[source]

Run the full orbit determination pipeline (IOD + DC).

Parameters:
  • observations (ADESObservations) – ADES optical observations for a single object.

  • initial_orbits (dict[str, CartesianOrbits] | None) – Map of object ID to initial seed orbit. When provided, IOD is skipped and the seed becomes the DC starting point.

  • radar (ADESRadarObservations | None) – ADES radar (delay / Doppler) observations for the same object, as returned alongside the optical table by read_ades(). When omitted or empty, the fit is optical-only — every existing caller keeps working unchanged.

  • config (ODConfig | None) – Pipeline configuration. Default: ODConfig().

Return type:

DetermineResult

Returns:

DetermineResult – Single fitted orbit + residuals + summary. The C ABI’s determine surface returns one fit per call (single-target); for multi-object batches loop over per-object ADESObservations slices in Python.