Struct EphemerisSimulationConfig

Struct Documentation

struct EphemerisSimulationConfig

Public Members

std::string start_epoch_utc = "2027-01-01T00:00:00"
EphemerisOrbitConfig orbit
Frame propagate_frame = Frame::MOON_CI

Frame the truth trajectory is propagated and ephemerides/almanacs are fit in (e.g. Frame::MOON_CI).

double duration_days = 3.0
double sample_dt_s = 60.0
int moon_gravity_degree = 20
int moon_gravity_order = 20
bool include_earth = true
bool include_sun = true
bool use_relativity = false
double integration_step_s = 30.0
std::vector<double> fit_window_minutes = {60.0, 120.0, 240.0, 480.0}

Fitting-window lengths [minutes] swept by the ephemeris/almanac accuracy-vs-datasize study.

int num_windows = 6

Number of fitting windows sampled across the truth trajectory for each fit_window_minutes entry; fit accuracy is averaged, and the per-parameter broadcast resolution (and hence total bit count) is maximized, across these samples.

int cartesian_poly_order = 8
bool cartesian_use_keplerian_baseline = true
int cartesian_num_fourier_terms = 0

Number of Fourier terms (harmonics of the argument of latitude) added to the ephemeris Chebyshev residual model; 0 (default) is a pure Chebyshev model. See EphemerisFitOptions::num_fourier_terms.

int almanac_poly_order = 1
int almanac_num_fourier_terms = 1

Number of Fourier harmonics per element in the almanac model (see AlmanacFitOptions::num_fourier_terms).

Frame output_frame = Frame::MOON_CI

Frame the ephemeris/almanac are fit and evaluated in. Defaults to propagate_frame (inertial). Set to Frame::MOON_PA to fit and broadcast in the rotating Moon-fixed principal-axis frame: the truth trajectory is converted from propagate_frame to this frame before fitting (per Iiyama & Gao). When equal to propagate_frame no conversion is applied.

double datasize_precision_m = 0.01

Required position accuracy [m] used to search each parameter’s minimum broadcast resolution (see EphemerisSimulation::Run).