Struct AlmanacFitOptions¶
Defined in File lunanet_almanac.h
Struct Documentation¶
-
struct AlmanacFitOptions¶
Configuration for
LansAlmanac::Fit/Eval.Public Members
-
int poly_order = 1¶
Degree of the secular polynomial fit to every element’s time history (a, e, i, node, mean-anomaly residual, argument-of-latitude correction) in normalized time s = t_k / T_fit (beta_0 + beta_1 s + … + beta_p s^p). Default 1 (linear) — the argument-of-latitude parameterization (Algorithm 2 of Iiyama & Gao) stays well-conditioned near periapsis even at linear order, so a linear fit is preferred to save message size. This is a coarse “GNSS-almanac-style” model, much lower accuracy than
LansEphemeris, intended for a long validity window / small broadcast size rather than precision.
-
int num_fourier_terms = 1¶
Number of Fourier harmonics added to each element’s polynomial (a cos/sin pair per harmonic). The base angular frequency is element-specific — the orbital mean motion (2*pi/T_orb) for the semi-major axis, and 4*pi/T_sid for the remaining (angular/eccentricity) elements — capturing the periodic modulation that a low-order polynomial alone misses (per Iiyama & Gao, “Ephemeris and LansAlmanac Design for Lunar Navigation Satellites”). Default 1.
-
double sidereal_period_s = 27.321661 * SECS_DAY¶
Sidereal rotation period [s] of the central body, setting the base Fourier frequency 4*pi/sidereal_period_s for the non-semi-major-axis elements (default: the Moon’s sidereal period, 27.321661 days).
-
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) osculating elements are fit and reconstructed directly. For the rotating Moon-fixed principal-axis frame (Frame::MOON_PA) the osculating elements are computed in the Principal-Axis Inertial (PAI) frame (adding the omega x r velocity offset) and the reconstructed position/velocity is returned in MOON_PA (subtracting it back) —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).
-
int poly_order = 1¶