pub struct Omm {Show 26 fields
pub ccsds_omm_vers: String,
pub creation_date: Option<String>,
pub originator: Option<String>,
pub object_name: Option<String>,
pub object_id: Option<String>,
pub center_name: Option<String>,
pub ref_frame: Option<String>,
pub time_system: Option<String>,
pub mean_element_theory: Option<String>,
pub epoch: OmmEpoch,
pub mean_motion: f64,
pub eccentricity: f64,
pub inclination_deg: f64,
pub ra_of_asc_node_deg: f64,
pub arg_of_pericenter_deg: f64,
pub mean_anomaly_deg: f64,
pub ephemeris_type: i32,
pub classification_type: String,
pub norad_cat_id: u32,
pub element_set_no: i32,
pub rev_at_epoch: i64,
pub bstar: f64,
pub mean_motion_dot: f64,
pub mean_motion_ddot: f64,
pub exact_sgp4_epoch: Option<JulianDate>,
pub quantize_tle_derived_fields: bool,
}Expand description
Canonical, format-agnostic OMM container.
Pure data: it knows nothing about KVN/XML/JSON serialization. The numeric
element values use standard astrodynamic units (angles in degrees, mean
motion in revolutions/day, its derivatives in rev/day^2 and rev/day^3, B*
in inverse earth-radii) and are stored as directly parsed f64s, so every
encoding decodes to the same value.
Fields§
§ccsds_omm_vers: String§creation_date: Option<String>§originator: Option<String>§object_name: Option<String>§object_id: Option<String>International designator, CCSDS form (e.g. "1998-067A").
center_name: Option<String>§ref_frame: Option<String>§time_system: Option<String>§mean_element_theory: Option<String>§epoch: OmmEpoch§mean_motion: f64Mean motion, revolutions per day.
eccentricity: f64Eccentricity, dimensionless, in [0, 1).
inclination_deg: f64Inclination, degrees.
ra_of_asc_node_deg: f64Right ascension of the ascending node, degrees.
arg_of_pericenter_deg: f64Argument of pericenter, degrees.
mean_anomaly_deg: f64Mean anomaly, degrees.
ephemeris_type: i32§classification_type: String§norad_cat_id: u32§element_set_no: i32§rev_at_epoch: i64§bstar: f64SGP4 drag term B*, inverse earth-radii.
mean_motion_dot: f64First derivative of mean motion, rev/day^2.
mean_motion_ddot: f64Second derivative of mean motion, rev/day^3.
exact_sgp4_epoch: Option<JulianDate>Exact split SGP4 epoch for in-memory producers that already have the
split JD. CCSDS encodings do not carry this side channel; parsed catalog
messages leave it None and rebuild the split from epoch.
Scope: this preserves the producer’s exact (whole, fraction) split
in memory only. Through encode -> reparse the epoch travels as the
femtosecond-rounded calendar text and is rebuilt as a canonical
midnight-anchored split: the same instant to femtosecond precision (and
bit-identical when the producer’s split was already midnight-anchored),
but not necessarily the same split representation, which SGP4’s split
tsince subtraction is sensitive to at the last ULP.
quantize_tle_derived_fields: boolWhether TLE-derived GP fields (B*, the second mean-motion derivative)
should be snapped to the legacy assumed-decimal TLE grid when bridging
into SGP4. Parsed catalog OMMs default to true: their GP values
originate in the TLE field format, so the historical compatibility path
reproduces the value a TLE consumer would see. Fitted OMMs set this
false: their elements were estimated directly and never lived on the
TLE grid, so snapping would discard converged precision for no
compatibility gain; to_element_set then passes them through losslessly.
Implementations§
Source§impl Omm
impl Omm
Sourcepub fn to_element_set(&self) -> Result<ElementSet, OmmError>
pub fn to_element_set(&self) -> Result<ElementSet, OmmError>
Convert the canonical OMM elements into the SGP4 ElementSet consumed
by Satellite::from_elements.
The epoch is converted directly from the OMM calendar timestamp into SGP4’s split Julian date, preserving years outside the TLE pivot range. B* and the second mean-motion derivative are quantized onto the TLE assumed-decimal grid because those GP parameters originate in that field format.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Omm
impl<'de> Deserialize<'de> for Omm
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for Omm
Auto Trait Implementations§
impl Freeze for Omm
impl RefUnwindSafe for Omm
impl Send for Omm
impl Sync for Omm
impl Unpin for Omm
impl UnsafeUnpin for Omm
impl UnwindSafe for Omm
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.