pub struct RinexClock {
pub time_scale: TimeScale,
pub series: BTreeMap<String, Vec<ClockPoint>>,
}Expand description
Parsed RINEX clock product.
Fields§
§time_scale: TimeScaleTime scale declared by the RINEX clock header. Missing headers default to GPST.
series: BTreeMap<String, Vec<ClockPoint>>Per-satellite, strictly time-ordered clock-bias series.
Implementations§
Source§impl RinexClock
impl RinexClock
Sourcepub fn parse(text: &str) -> Result<Self, RinexClockError>
pub fn parse(text: &str) -> Result<Self, RinexClockError>
Parse a RINEX clock text into per-satellite AS records.
Sourcepub fn parse_lossy(text: &str) -> Self
pub fn parse_lossy(text: &str) -> Self
Parse a RINEX clock text while skipping malformed and non-AS records.
Sourcepub fn from_series_rows(
rows: Vec<(String, Vec<(f64, f64)>)>,
) -> Result<Self, RinexClockError>
pub fn from_series_rows( rows: Vec<(String, Vec<(f64, f64)>)>, ) -> Result<Self, RinexClockError>
Rebuild a GPST product from the legacy public GPS-second row shape.
Sourcepub fn from_instant_series_rows(
time_scale: TimeScale,
rows: Vec<(String, Vec<(Instant, f64)>)>,
) -> Result<Self, RinexClockError>
pub fn from_instant_series_rows( time_scale: TimeScale, rows: Vec<(String, Vec<(Instant, f64)>)>, ) -> Result<Self, RinexClockError>
Rebuild a parsed product from scale-tagged instant rows.
Sourcepub fn series_rows(&self) -> Vec<(String, Vec<(f64, f64)>)>
pub fn series_rows(&self) -> Vec<(String, Vec<(f64, f64)>)>
Export GPST samples as [(satellite, [(gps_seconds, bias_s), ...]), ...].
Non-GPST samples are not coerced into GPS seconds and are omitted.
Sourcepub fn instant_series_rows(&self) -> Vec<(String, Vec<(Instant, f64)>)>
pub fn instant_series_rows(&self) -> Vec<(String, Vec<(Instant, f64)>)>
Export the product as scale-tagged instant rows.
Sourcepub fn clock_s(
&self,
satellite_id: &str,
epoch: ClockEpoch,
) -> Result<Option<f64>, RinexClockError>
pub fn clock_s( &self, satellite_id: &str, epoch: ClockEpoch, ) -> Result<Option<f64>, RinexClockError>
Interpolate one satellite clock bias at a civil epoch in this file’s scale.
Sourcepub fn clock_s_at_instant(
&self,
satellite_id: &str,
epoch: Instant,
) -> Result<Option<f64>, RinexClockError>
pub fn clock_s_at_instant( &self, satellite_id: &str, epoch: Instant, ) -> Result<Option<f64>, RinexClockError>
Interpolate one satellite clock bias at a scale-tagged instant.
Sourcepub fn clock_s_at_gps_seconds(
&self,
satellite_id: &str,
gps_seconds: f64,
) -> Result<Option<f64>, RinexClockError>
pub fn clock_s_at_gps_seconds( &self, satellite_id: &str, gps_seconds: f64, ) -> Result<Option<f64>, RinexClockError>
Interpolate one satellite clock bias at GPS seconds.
Sourcepub fn to_rinex_string(&self) -> String
pub fn to_rinex_string(&self) -> String
Serialize this product to standard RINEX clock text - the inverse of
RinexClock::parse.
Pure and deterministic: the same product always produces byte-identical
text and no I/O is performed. The header declares the product time system
and each sample is written as an AS satellite clock-bias record, so
re-parsing the output reproduces the same time scale and per-satellite
series. Epoch components are written on the microsecond civil grid the
parser reads, and bias values use their shortest round-tripping decimal,
so a parsed product re-encodes to the same f64s.
Trait Implementations§
Source§impl Clone for RinexClock
impl Clone for RinexClock
Source§fn clone(&self) -> RinexClock
fn clone(&self) -> RinexClock
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RinexClock
impl Debug for RinexClock
Source§impl PartialEq for RinexClock
impl PartialEq for RinexClock
Source§fn eq(&self, other: &RinexClock) -> bool
fn eq(&self, other: &RinexClock) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for RinexClock
Auto Trait Implementations§
impl Freeze for RinexClock
impl RefUnwindSafe for RinexClock
impl Send for RinexClock
impl Sync for RinexClock
impl Unpin for RinexClock
impl UnsafeUnpin for RinexClock
impl UnwindSafe for RinexClock
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,
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.