empyrean.od_system

od_system(force_model=ForceModelTier.STANDARD)[source]

Assemble a BuiltSystem keyed for the orbit-determination entry points.

build_system() asks for a frame and an encounter-timescale divisor. An OD fit picks both itself — ODConfig exposes no knob for either — so naming them at the call site is an invitation to name them wrong, and the wrong frame is the likely mistake: OD integrates in Frame.ECLIPTICJ2000, while propagation examples routinely freeze "icrf". This function freezes the recipe a fit actually runs under, so the handle it returns is accepted by the OD identity guard as long as force_model matches the config’s.

Parameters:

force_model (ForceModelTier | str | int) – Force-model tier to freeze. Must equal the force_model on the ODConfig you pass to the fit. Default ForceModelTier.STANDARD, which is ODConfig’s default.

Return type:

BuiltSystem

Returns:

BuiltSystem – An ordinary handle: describe-able, shareable across threads, and usable for propagation too when the config asks for the same frame.

Examples

>>> system = empyrean.od_system()
>>> for arc in arcs:
...     fit = system.refine(orbit, arc)  # one force-model assembly total