Skip to main content

Module frames

Module frames 

Source
Expand description

§Reference Frames Module

This module re-exports astronomical reference frames defined in affn and adds siderust-specific extensions including planetary body-fixed frames and historical catalog frames.

§Predefined Frames (from affn)

The following reference frames are available (from affn):

  • ICRS: International Celestial Reference System (quasi-inertial, fundamental reference).
  • ICRF: International Celestial Reference Frame (ICRS realization via VLBI).
  • Horizontal: Local horizon system (altitude-azimuth).
  • EquatorialMeanJ2000: Mean equator/equinox of J2000 (FK5/J2000 mean).
  • EquatorialMeanOfDate: Mean equator/equinox of date (precessed, no nutation).
  • EquatorialTrueOfDate: True equator/equinox of date (precession + nutation).
  • EclipticMeanJ2000: Mean ecliptic coordinate system at J2000.
  • EclipticOfDate: Mean ecliptic coordinate system of date.
  • EclipticMeanOfDate: Alias for EclipticOfDate (naming parity).
  • EclipticTrueOfDate: True ecliptic coordinate system of date.
  • ITRF: International Terrestrial Reference Frame (Earth-fixed).
  • ECEF: Earth-Centered, Earth-Fixed (geocentric, rotating with the Earth).
  • Galactic: Galactic coordinate system (IAU 1958).
  • GCRS: Geocentric Celestial Reference System.
  • CIRS: Celestial Intermediate Reference System.
  • TIRS: Terrestrial Intermediate Reference System.

§Siderust-Specific Frames

All frames are now defined in affn and re-exported here.

§Planetary Body-Fixed Frames (from affn)

The following body-fixed frame marker types are defined in affn (behind feature = "astro") and re-exported here. The generic crate::astro::orientation::IauRotationParams type comes from crate::astro, while body-specific constants (e.g. MARS_ROTATION) are defined in crate::bodies::solar_system and re-exported by planetary. FrameRotationProvider implementations live in transform::providers.

Each frame type provides its canonical name via ReferenceFrame::frame_name(). Planetocentric body-fixed frames use latitude/longitude/radius naming via SphericalNaming.

§Extending

To define a new reference frame, use the derive macro:

use affn::prelude::*;

#[derive(Debug, Copy, Clone, ReferenceFrame)]
struct MyCustomFrame;
assert_eq!(MyCustomFrame::frame_name(), "MyCustomFrame");

Modules§

planetary
Planetary body-fixed frame markers and their IAU rotation-parameter constants.

Structs§

CIRS
Celestial Intermediate Reference System (CIRS).
ECEF
Earth-Centred Earth-Fixed — mathematical geocentric frame (no EOP).
EME2000
Earth Mean Equator and Equinox of J2000.0 (EME2000).
EclipticMeanJ2000
Mean ecliptic of J2000.0.
EclipticOfDate
Mean ecliptic of date.
EclipticTrueOfDate
True ecliptic of date.
EllipsoidalPosition
An ellipsoidal position (center + frame + height above ellipsoid).
EquatorialMeanJ2000
Mean equator and equinox of J2000.0 (FK5/J2000 mean).
EquatorialMeanOfDate
Mean equator and equinox of date.
EquatorialTrueOfDate
True equator and equinox of date.
FK4B1950
Mean equator and mean equinox of B1950.0 (FK4 catalog reference).
GCRS
Geocentric Celestial Reference System (GCRS).
Galactic
Galactic coordinate system.
Grs80
GRS 80 (Geodetic Reference System 1980) reference ellipsoid.
Horizontal
Local horizon coordinate system.
ICRF
International Celestial Reference Frame (ICRF).
ICRS
International Celestial Reference System (ICRS).
ITRF
International Terrestrial Reference Frame — EOP-realised Earth-fixed frame.
JupiterSystemIII
Jupiter System III body-fixed frame.
MarsFixed
Mars IAU body-fixed frame.
MercuryFixed
Mercury IAU body-fixed frame.
MoonPrincipalAxes
Moon principal axes (selenocentric) frame.
NeptuneFixed
Neptune IAU body-fixed frame.
PlutoFixed
Pluto IAU body-fixed frame.
SaturnFixed
Saturn IAU body-fixed frame.
TEME
True Equator, Mean Equinox (TEME) frame.
TIRS
Terrestrial Intermediate Reference System (TIRS).
UranusFixed
Uranus IAU body-fixed frame.
VenusFixed
Venus IAU body-fixed frame.
Wgs84
WGS 84 (World Geodetic System 1984) reference ellipsoid.

Traits§

Ellipsoid
A geodetic reference ellipsoid defined by its semi-major axis and flattening.
HasEllipsoid
Marker trait associating a ReferenceFrame with a specific Ellipsoid.
MutableFrame
Marker trait for frames that support time-independent mutual transformations.
ReferenceFrame
A trait for defining a reference frame (orientation).
SphericalNaming
Provides frame-specific names for spherical coordinate components.

Type Aliases§

EclipticMeanOfDate
Mean ecliptic of date.