Skip to main content

RotationProvider

Trait RotationProvider 

Source
pub trait RotationProvider<T: ContinuousTimeScale>: OffsetProvider {
    type EopError: Error + Send + Sync + 'static;

Show 28 methods // Required methods fn corrections( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Corrections, Self::EopError>; fn pole_coords(&self, time: Time<T>) -> Result<PoleCoords, Self::EopError>; // Provided methods fn icrf_to_iau<R>( &self, time: Time<T>, frame: Iau<R>, ) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, R: TryRotationalElements, Self: TryOffset<T, Tdb> { ... } fn iau_to_icrf<R>( &self, time: Time<T>, frame: Iau<R>, ) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, R: TryRotationalElements, Self: TryOffset<T, Tdb> { ... } fn icrf_to_itrf(&self, time: Time<T>) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb> + TryOffset<T, Tt> + TryOffset<T, Ut1> { ... } fn itrf_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb> + TryOffset<T, Tt> + TryOffset<T, Ut1> { ... } fn icrf_to_j2000(&self) -> Rotation { ... } fn j2000_to_icrf(&self) -> Rotation { ... } fn j2000_to_mod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> { ... } fn mod_to_j2000( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> { ... } fn icrf_to_mod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> { ... } fn mod_to_icrf( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> { ... } fn mod_to_tod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb> { ... } fn tod_to_mod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb> { ... } fn tod_to_pef( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> + TryOffset<T, Ut1> { ... } fn pef_to_tod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> + TryOffset<T, Ut1> { ... } fn pef_to_itrf( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> { ... } fn itrf_to_pef( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> { ... } fn tod_to_teme(&self, time: Time<T>) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb> { ... } fn teme_to_tod(&self, time: Time<T>) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb> { ... } fn icrf_to_teme(&self, time: Time<T>) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> + TryOffset<T, Tdb> { ... } fn teme_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> + TryOffset<T, Tdb> { ... } fn icrf_to_cirf(&self, time: Time<T>) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb> { ... } fn cirf_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb> { ... } fn cirf_to_tirf(&self, time: Time<T>) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Ut1> { ... } fn tirf_to_cirf(&self, time: Time<T>) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Ut1> { ... } fn tirf_to_itrf(&self, time: Time<T>) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> { ... } fn itrf_to_tirf(&self, time: Time<T>) -> Result<Rotation, RotationError> where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> { ... }
}
Expand description

Provides Earth orientation data and frame rotation methods for a given time scale.

Required Associated Types§

Source

type EopError: Error + Send + Sync + 'static

The error type for EOP lookups.

Required Methods§

Source

fn corrections( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Corrections, Self::EopError>

Returns nutation/precession corrections for the given reference system.

Source

fn pole_coords(&self, time: Time<T>) -> Result<PoleCoords, Self::EopError>

Returns polar motion coordinates at the given time.

Provided Methods§

Source

fn icrf_to_iau<R>( &self, time: Time<T>, frame: Iau<R>, ) -> Result<Rotation, RotationError>

Rotation from ICRF to an IAU body-fixed frame.

Source

fn iau_to_icrf<R>( &self, time: Time<T>, frame: Iau<R>, ) -> Result<Rotation, RotationError>

Rotation from an IAU body-fixed frame to ICRF.

Source

fn icrf_to_itrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb> + TryOffset<T, Tt> + TryOffset<T, Ut1>,

Rotation from ICRF to ITRF (via CIO-based path).

Source

fn itrf_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb> + TryOffset<T, Tt> + TryOffset<T, Ut1>,

Rotation from ITRF to ICRF.

Source

fn icrf_to_j2000(&self) -> Rotation

Rotation from ICRF to J2000 (frame bias).

Source

fn j2000_to_icrf(&self) -> Rotation

Rotation from J2000 to ICRF (inverse frame bias).

Source

fn j2000_to_mod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt>,

Rotation from J2000 to Mean of Date.

Source

fn mod_to_j2000( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt>,

Rotation from Mean of Date to J2000.

Source

fn icrf_to_mod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt>,

Rotation from ICRF to Mean of Date (bias + precession).

Source

fn mod_to_icrf( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt>,

Rotation from Mean of Date to ICRF.

Source

fn mod_to_tod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb>,

Rotation from Mean of Date to True of Date (nutation).

Source

fn tod_to_mod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb>,

Rotation from True of Date to Mean of Date.

Source

fn tod_to_pef( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> + TryOffset<T, Ut1>,

Rotation from True of Date to Pseudo-Earth Fixed (Earth rotation).

Source

fn pef_to_tod( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> + TryOffset<T, Ut1>,

Rotation from Pseudo-Earth Fixed to True of Date.

Source

fn pef_to_itrf( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt>,

Rotation from Pseudo-Earth Fixed to ITRF (polar motion).

Source

fn itrf_to_pef( &self, time: Time<T>, sys: ReferenceSystem, ) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt>,

Rotation from ITRF to Pseudo-Earth Fixed.

Source

fn tod_to_teme(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb>,

Rotation from True of Date to TEME.

Source

fn teme_to_tod(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb>,

Rotation from TEME to True of Date.

Source

fn icrf_to_teme(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> + TryOffset<T, Tdb>,

Rotation from ICRF to TEME (classical FK5 chain).

Source

fn teme_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt> + TryOffset<T, Tdb>,

Rotation from TEME to ICRF.

Source

fn icrf_to_cirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb>,

Rotation from ICRF to CIRF (CIP + CIO).

Source

fn cirf_to_icrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tdb>,

Rotation from CIRF to ICRF.

Source

fn cirf_to_tirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Ut1>,

Rotation from CIRF to TIRF (Earth rotation angle).

Source

fn tirf_to_cirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Ut1>,

Rotation from TIRF to CIRF.

Source

fn tirf_to_itrf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt>,

Rotation from TIRF to ITRF (polar motion).

Source

fn itrf_to_tirf(&self, time: Time<T>) -> Result<Rotation, RotationError>
where T: ContinuousTimeScale + Copy, Self: TryOffset<T, Tt>,

Rotation from ITRF to TIRF.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§