Skip to main content

SpaceTimeCoordinate

Struct SpaceTimeCoordinate 

Source
pub struct SpaceTimeCoordinate<R: Real + Div<Output = R>> {
    pub timestamp: u64,
    pub sat_id: u32,
    pub r_m: R,
    pub v_ms: R,
    pub clock_bias_s: R,
    pub position: [R; 3],
    pub velocity: [R; 3],
    pub clock_drift_rate: R,
}
Expand description

Represents a point in 4D Space-Time with associated kinematic and clock data.

This is the fundamental that maps a measurable “Clock Event” (timestamp + bias) to a “Geometric Event” (position + velocity) ensuring that $M \leftrightarrow T$ (Mass-Time Equivalence) can be calculated.

§Type Parameter

  • R: real analytic scalar (e.g., f64, Float106, or Dual for forward-mode automatic differentiation) — Real + Div, not the stronger RealField.

Fields§

§timestamp: u64

The UTC timestamp in seconds (Unix Epoch).

§sat_id: u32

Satellite ID (e.g., E14)

§r_m: R

Radius from Earth’s center of mass (meters) $|r|$

§v_ms: R

Velocity magnitude relative to Earth (m/s) $|v|$

§clock_bias_s: R

Raw clock bias (seconds), uncorrected for relativistic effects.

§position: [R; 3]

Full 3D position vector [x, y, z] (ITRF frame)

§velocity: [R; 3]

Full 3D velocity vector [vx, vy, vz] (ITRF frame)

§clock_drift_rate: R

Rate of change of clock bias (seconds/second), i.e., frequency offset. This corresponds to $\mathcal{T} - 1$.

Implementations§

Source§

impl<R: Real + Div<Output = R> + FromPrimitive> SpaceTimeCoordinate<R>

Source

pub fn get_total_bias(&self) -> R

Helper to restore relativistic effects removed by IGS. Calculates $\Delta t_{periodic} = -2(\vec{r} \cdot \vec{v}) / c^2$

Trait Implementations§

Source§

impl<R: Clone + Real + Div<Output = R>> Clone for SpaceTimeCoordinate<R>

Source§

fn clone(&self) -> SpaceTimeCoordinate<R>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<R: Copy + Real + Div<Output = R>> Copy for SpaceTimeCoordinate<R>

Source§

impl<R: Debug + Real + Div<Output = R>> Debug for SpaceTimeCoordinate<R>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<R: PartialEq + Real + Div<Output = R>> PartialEq for SpaceTimeCoordinate<R>

Source§

fn eq(&self, other: &SpaceTimeCoordinate<R>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<R: Real + Div<Output = R>> StructuralPartialEq for SpaceTimeCoordinate<R>

Auto Trait Implementations§

§

impl<R> Freeze for SpaceTimeCoordinate<R>
where R: Freeze,

§

impl<R> RefUnwindSafe for SpaceTimeCoordinate<R>
where R: RefUnwindSafe,

§

impl<R> Send for SpaceTimeCoordinate<R>
where R: Send,

§

impl<R> Sync for SpaceTimeCoordinate<R>
where R: Sync,

§

impl<R> Unpin for SpaceTimeCoordinate<R>
where R: Unpin,

§

impl<R> UnsafeUnpin for SpaceTimeCoordinate<R>
where R: UnsafeUnpin,

§

impl<R> UnwindSafe for SpaceTimeCoordinate<R>
where R: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Satisfies<NoConstraint> for T

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.