Skip to main content

EarthOrientation

Struct EarthOrientation 

Source
pub struct EarthOrientation { /* private fields */ }
Expand description

A single evaluated Earth-orientation state for one epoch.

The stored direction-cosine matrix maps GCRF/GCRS inertial coordinates to ITRF/ITRS Earth-fixed coordinates using the existing IAU 2006/2000A precession-nutation chain, apparent sidereal rotation, and optional polar motion. The inverse matrix is cached as the transpose so callers can evaluate the frame once and reuse it across many satellite states.

Implementations§

Source§

impl EarthOrientation

Source

pub fn from_time_scales(ts: &TimeScales) -> Result<Self, FrameTransformError>

Evaluate the full GCRF to ITRF rotation with zero polar motion.

Source

pub fn from_time_scales_with_polar_motion( ts: &TimeScales, polar_motion: PolarMotion, ) -> Result<Self, FrameTransformError>

Evaluate the full GCRF to ITRF rotation with caller-supplied polar motion.

Source

pub fn from_utc( year: i32, month: i32, day: i32, hour: i32, minute: i32, second: f64, ) -> Result<Self, FrameTransformError>

Evaluate the full GCRF to ITRF rotation from UTC calendar fields with zero polar motion.

Source

pub fn from_utc_with_polar_motion( year: i32, month: i32, day: i32, hour: i32, minute: i32, second: f64, polar_motion: PolarMotion, ) -> Result<Self, FrameTransformError>

Evaluate the full GCRF to ITRF rotation from UTC calendar fields with caller-supplied polar motion.

Source

pub fn from_instant(epoch: Instant) -> Result<Self, FrameTransformError>

Evaluate the full GCRF to ITRF rotation from a scale-tagged instant with zero polar motion.

Source

pub fn from_instant_with_polar_motion( epoch: Instant, polar_motion: PolarMotion, ) -> Result<Self, FrameTransformError>

Evaluate the full GCRF to ITRF rotation from a scale-tagged instant with caller-supplied polar motion.

Source

pub fn time_scales(&self) -> TimeScales

Time scales used to evaluate this orientation.

Source

pub fn polar_motion(&self) -> PolarMotion

Polar-motion coordinates used to evaluate this orientation.

Source

pub fn earth_rotation_vector_itrf_rad_s(&self) -> [f64; 3]

Earth rotation vector in ITRF axes, radians per second.

Source

pub fn gcrf_to_itrf_matrix(&self) -> Mat3

GCRF to ITRF direction-cosine matrix.

Source

pub fn itrf_to_gcrf_matrix(&self) -> Mat3

ITRF to GCRF direction-cosine matrix.

Source

pub fn gcrf_to_itrf_rotation_rate_matrix(&self) -> Mat3

Time derivative of the GCRF to ITRF matrix from Earth rotation, with precession, nutation, and polar motion frozen at this evaluation point.

Source

pub fn itrf_to_gcrf_rotation_rate_matrix(&self) -> Mat3

Time derivative of the ITRF to GCRF matrix from Earth rotation, with precession, nutation, and polar motion frozen at this evaluation point.

Source

pub fn gcrf_to_itrf_position_km( &self, position_gcrf_km: [f64; 3], ) -> Result<[f64; 3], FrameTransformError>

Rotate a GCRF position vector in kilometers into ITRF.

Source

pub fn itrf_to_gcrf_position_km( &self, position_itrf_km: [f64; 3], ) -> Result<[f64; 3], FrameTransformError>

Rotate an ITRF position vector in kilometers into GCRF.

Source

pub fn gcrf_to_itrf_state_km( &self, position_gcrf_km: [f64; 3], velocity_gcrf_km_s: [f64; 3], ) -> Result<([f64; 3], [f64; 3]), FrameTransformError>

Transform a GCRF state in kilometers and kilometers per second into ITRF.

The velocity includes the rotating-frame term v_itrf = R v_gcrf - omega_itrf x r_itrf.

Source

pub fn itrf_to_gcrf_state_km( &self, position_itrf_km: [f64; 3], velocity_itrf_km_s: [f64; 3], ) -> Result<([f64; 3], [f64; 3]), FrameTransformError>

Transform an ITRF state in kilometers and kilometers per second into GCRF.

The velocity includes the inertial transport term v_gcrf = R^T (v_itrf + omega_itrf x r_itrf).

Trait Implementations§

Source§

impl Clone for EarthOrientation

Source§

fn clone(&self) -> EarthOrientation

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 Copy for EarthOrientation

Source§

impl Debug for EarthOrientation

Source§

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

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

impl PartialEq for EarthOrientation

Source§

fn eq(&self, other: &EarthOrientation) -> 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 StructuralPartialEq for EarthOrientation

Auto Trait Implementations§

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,

Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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.