Struct EphemerisFitOptions

Struct Documentation

struct EphemerisFitOptions

Configuration for LansEphemeris::Fit/Eval.

Public Members

int poly_order = 8

Order of the Chebyshev polynomial used to represent the position residual (and, through its analytic time derivative, the velocity residual) left over after subtracting the two-body Keplerian baseline orbit.

bool use_keplerian_baseline = true

If true, subtract an osculating two-body Kepler orbit (fit at the fitting window’s midpoint epoch) before fitting the Chebyshev polynomial to the residual — this is what lets a modest polynomial order stay accurate over a multi-hour window. If false, position/velocity are represented by the polynomial alone (useful as a baseline comparison, but needs a much higher order for the same accuracy).

double gm = GM_MOON

Gravitational parameter of the central body [m^3/s^2], consistent with the position/velocity units passed to Fit/Eval.

Frame frame = Frame::MOON_CI

Frame the input states (and the fitted output) are represented in. For an inertial frame (e.g. Frame::MOON_CI, the default) the two-body baseline is a standard osculating Kepler orbit. For the rotating Moon-fixed principal-axis frame (Frame::MOON_PA) the baseline is propagated in that rotating frame — the ascending node drifts at the Moon’s rotation rate and the velocity carries the corresponding -omega x r term —

so the osculating elements are effectively fit in the Principal-Axis Inertial (PAI) frame and the position/velocity output is in MOON_PA (per Iiyama & Gao, “Ephemeris

and LansAlmanac Design for Lunar Navigation Satellites”). States passed to Fit/EvalError must already be expressed in this frame (convert e.g. from MOON_CI with

ConvertFrame first).

int num_fourier_terms = 0

Number of Fourier terms (harmonics of the argument of latitude u) appended to the Chebyshev position-residual model: term h adds a cos(h*u), sin(h*u) pair per axis, capturing once/twice/… -per-orbit periodic residuals. 0 (the default) is a pure Chebyshev model. Requires use_keplerian_baseline (the argument of latitude comes from the two-body baseline orbit).