Skip to main content

ICRS

Struct ICRS 

Source
pub struct ICRS;
Expand description

International Celestial Reference System (ICRS).

The system — i.e. the abstract definition of the reference frame: quasi-inertial, kinematically non-rotating, with origin at the solar- system barycentre and axes fixed by the positions of distant quasars. Adopted by the IAU at the XXIIIrd General Assembly (1997, Resolution B2) as the fundamental celestial reference system replacing FK5/J2000.

ICRS is the definition; ICRF is the materialisation.

§Relationship to neighbouring frames

PairRotationMagnitude
ICRSICRFexact identity0
ICRSGCRS (direction-only)identity (translation only on positions)0
ICRSEME2000IAU 2006 frame bias B≈ 23 mas

The frame-bias rotation between ICRS and EME2000 is the same matrix that connects GCRS to EME2000. The bias constants and transform methods live in siderust::astro::frame_bias.

§References

  • IAU 1997 Resolution B2 (definition of the ICRS).
  • IAU 2000 Resolution B1.3 (relationship to the GCRS).
  • IERS Conventions (2010), §3.2 and §5.4.4.

Implementations§

Source§

impl ICRS

Source

pub fn direction_rotation_to_icrf() -> Rotation3

Direction-frame rotation from ICRS to ICRF.

At the catalog level used by affn the ICRS and its realisation ICRF are bit-identical: the rotation is exactly Rotation3::IDENTITY.

Source

pub fn direction_rotation_to_gcrs() -> Rotation3

Direction-frame rotation from ICRS to GCRS.

Per IAU 2000 Resolution B1.3 the GCRS axes are kinematically non-rotating with respect to ICRS, so for directions the rotation is exactly Rotation3::IDENTITY. (Origin translation is encoded in the center type, not here.)

Trait Implementations§

Source§

impl Clone for ICRS

Source§

fn clone(&self) -> ICRS

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 ICRS

Source§

impl Debug for ICRS

Source§

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

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

impl Default for ICRS

Source§

fn default() -> ICRS

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ICRS

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<ICRS, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for ICRS

Source§

impl FrameRotationProvider<CIRS, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ECEF, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<EME2000, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<EclipticMeanJ2000, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<EquatorialMeanJ2000, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( _jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<EquatorialMeanOfDate, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<EquatorialTrueOfDate, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<FK4B1950, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( _jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<GCRS, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( _jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<Galactic, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( _jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRF, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( _jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, CIRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, ECEF> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, EME2000> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, EclipticMeanJ2000> for ()

ICRS → EclipticMeanJ2000 rotation (J2000 mean ecliptic).

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( _jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, EquatorialMeanJ2000> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( _jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, EquatorialMeanOfDate> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, EquatorialTrueOfDate> for ()

ICRS → EquatorialTrueOfDate rotation.

Combines nutation (dispatched via Nut) with IERS celestial-pole corrections (dX, dY) from the EOP provider into a full precession–nutation matrix.

The first-order correction is: dψ_eop = dX / sin(εA), dε_eop = dY

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, FK4B1950> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( _jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, GCRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( _jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, Galactic> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( _jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, ICRF> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, ITRF> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, JupiterSystemIII> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, MarsFixed> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, MercuryFixed> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, MoonPrincipalAxes> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, NeptuneFixed> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, PlutoFixed> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, SaturnFixed> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, TEME> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, TIRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, UranusFixed> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ICRS, VenusFixed> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<ITRF, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<JupiterSystemIII, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<MarsFixed, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<MercuryFixed, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<MoonPrincipalAxes, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<NeptuneFixed, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<PlutoFixed, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<SaturnFixed, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<TEME, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<TIRS, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<UranusFixed, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl FrameRotationProvider<VenusFixed, ICRS> for ()

Source§

fn rotation<Eph, Eop: EopProvider, Nut: NutationModel>( jd: JulianDate, _ctx: &AstroContext<Eph, Eop>, ) -> Rotation3

Computes the rotation matrix from frame F1 to frame F2.
Source§

impl IcrsFrameBias for ICRS

Source§

fn frame_bias_to_eme2000() -> Rotation3

Constant IAU 2006 frame-bias rotation B from ICRS to EME2000. Read more
Source§

impl MutableFrame for ICRS

Source§

impl PartialEq for ICRS

Source§

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

Source§

fn frame_name() -> &'static str

Returns the canonical name of this reference frame.
Source§

fn spherical_names() -> Option<(&'static str, &'static str, &'static str)>

Returns frame-specific names for spherical coordinate components. Read more
Source§

impl Serialize for ICRS

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl SphericalNaming for ICRS

Source§

fn polar_name() -> &'static str

Returns the name for the polar/elevation angle (e.g., “dec”, “lat”, “alt”, “b”).
Source§

fn azimuth_name() -> &'static str

Returns the name for the azimuthal angle (e.g., “ra”, “lon”, “az”, “l”).
Source§

fn distance_name() -> &'static str

Returns the name for the radial distance (e.g., “distance”, “altitude”, “radius”). Read more
Source§

impl StructuralPartialEq for ICRS

Auto Trait Implementations§

§

impl Freeze for ICRS

§

impl RefUnwindSafe for ICRS

§

impl Send for ICRS

§

impl Sync for ICRS

§

impl Unpin for ICRS

§

impl UnsafeUnpin for ICRS

§

impl UnwindSafe for ICRS

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<T> UsingEngine for T

Source§

fn using<'a, Ctx>(&'a self, engine: &'a Ctx) -> WithEngine<'a, Self, Ctx>
where Ctx: TransformContext,

Wrap this coordinate with a custom transform context for the next transformation call.