pub struct ODConfig {Show 25 fields
pub force_model: ForceModelTier,
pub epsilon: f64,
pub max_light_time_iterations: usize,
pub num_threads: usize,
pub frame: Frame,
pub weighting: WeightingConfig,
pub debiasing: DebiasingConfig,
pub excluded_perturbers: Vec<Origin>,
pub origin: OriginPolicy,
pub iod: IODConfig,
pub output_epoch: OutputEpoch,
pub max_iterations: u32,
pub convergence_tol: f64,
pub use_stm_cache: bool,
pub solve_for: SolveForParams,
pub auto_escalation: AutoEscalationPolicy,
pub acceptability: AcceptabilityThresholds,
pub fit_station_biases: bool,
pub station_radec: StationRaDecConfig,
pub use_span_grouping: bool,
pub rejection: RejectionConfig,
pub auto_force_model: bool,
pub output_representation: Representation,
pub allow_unbracketed_maneuvers: bool,
pub photometry: Option<PhotometryConfig>,
}Expand description
Orbit-determination configuration.
Shared knobs at the top, iod for IOD ranging, with
output_epoch / auto_escalation / acceptability / rejection
/ station_radec as nested config bundles.
§Sentinel rule (footgun)
Numeric fields here are FFI sentinels — 0 / 0.0 does not
mean “tightest possible”. It means “use the engine default” (e.g.
convergence_tol = 0.0 resolves to 1e-5, not 0; epsilon = 0.0
resolves to 1e-9). To force a specific value, set it explicitly
— including the engine default if you want to lock that in
against a future default change.
Documented negative-value sentinels
(iod.opposition_gap_days < 0, rejection.lambda < 0) retain
their disable-this-feature meanings.
Fields§
§force_model: ForceModelTierForce-model tier.
epsilon: f64Integrator truncation-error tolerance, interpreted by the active integrator backend:
IntegratorChoice::GR15(default): relative b₆ truncation tolerance.IntegratorChoice::DOP853: relative tolerance, paired with a fixedatol = 1e-14.
0.0 → engine default (1e-9). The OD pipeline uses whatever
integrator the underlying propagation config selects; if you
switch backends, re-validate against your accuracy budget.
max_light_time_iterations: usizeMaximum light-time iterations. 0 → engine default (3).
num_threads: usizeThreads for batch operations. 0 → all available cores.
frame: FrameOutput reference frame.
weighting: WeightingConfigObservation weighting pipeline. Default = enabled + VFC17
preset (production hot path).
debiasing: DebiasingConfigCatalog-bias-correction configuration. Default = enabled +
EFCC2020 standard resolution (production hot path).
excluded_perturbers: Vec<Origin>Bodies to exclude from the perturber set (for self-determination
of perturbed asteroids — e.g. fitting Eros while excluding
Origin::asteroid(433)). Empty = use all.
origin: OriginPolicyOrigin-policy selector. Default OriginPolicy::Auto
(heliocentric → geocentric Earth cascade). Set to
OriginPolicy::Explicit(Origin::Earth)
to pin the pipeline to a specific central body for catalog
satellites or regime-classified workflows.
iod: IODConfigInitial orbit determination tuning.
output_epoch: OutputEpochOutput epoch policy for the fitted orbit.
max_iterations: u32Maximum DC iterations. 0 → engine default (100).
convergence_tol: f64DC convergence tolerance on Δx^T N Δx. 0.0 → engine default (1e-5).
use_stm_cache: boolUse STM-cached ephemeris updates for iterations 2+. Default true.
solve_for: SolveForParamsSolve-for parameter set.
auto_escalation: AutoEscalationPolicyTrigger thresholds for SolveForParams::Auto escalation.
acceptability: AcceptabilityThresholdsThresholds for the post-DC acceptability gate.
fit_station_biases: boolSchur-eliminate per-station RA/Dec biases.
station_radec: StationRaDecConfigPer-station RA/Dec bias config. Honored only when
fit_station_biases is true.
use_span_grouping: boolUse span-grouped Jacobian reuse.
rejection: RejectionConfigOutlier-rejection strategy + tuning.
auto_force_model: boolAuto-select force-model tier from IOD elements.
output_representation: RepresentationOutput coordinate representation for the fitted orbit + covariance.
allow_unbracketed_maneuvers: boolPermit solving a thrust Δv segment whose burn window is not
bracketed by observations (the state absorbs it otherwise; the
Gates prior then carries it). Default false — refuse loudly.
photometry: Option<PhotometryConfig>Post-OD photometric fit. None (default) disables it; the fit
runs after the orbit is solved and never touches the state.
Implementations§
Source§impl ODConfig
impl ODConfig
Sourcepub fn with_force_model(force_model: ForceModelTier) -> Self
pub fn with_force_model(force_model: ForceModelTier) -> Self
Convenience builder: a config carrying just the requested force model, defaults for everything else.