Struct anise::structure::planetocentric::PlanetaryData
source · pub struct PlanetaryData {
pub object_id: i32,
pub parent_id: i32,
pub mu_km3_s2: f64,
pub shape: Option<Ellipsoid>,
pub pole_right_ascension: Option<PhaseAngle<MAX_NUT_PREC_ANGLES>>,
pub pole_declination: Option<PhaseAngle<MAX_NUT_PREC_ANGLES>>,
pub prime_meridian: Option<PhaseAngle<MAX_NUT_PREC_ANGLES>>,
pub long_axis: Option<f64>,
pub num_nut_prec_angles: u8,
pub nut_prec_angles: [PhaseAngle<0>; 32],
}
Expand description
ANISE supports two different kinds of orientation data. High precision, with spline based interpolations, and constants right ascension, declination, and prime meridian, typically used for planetary constant data.
§Documentation of rotation angles
Source: https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/req/pck.html#Models%20for%20the%20Sun,%20Planets,%20and%20some%20Minor%20Bodies%20in%20Text%20PCK%20Kernels The angles RA, DEC, and W are defined as follows:
2
RA2*t
RA = RA0 + RA1*t/T + ------ + [optional trig polynomials]
2
T
2
DEC2*t
DEC = DEC0 + DEC1*t/T + ------- + [optional trig polynomials]
2
T
2
W2*t
W = W0 + W1*t/d + ----- + [optional trig polynomials]
2
d
where
d = seconds/day T = seconds/Julian century t = ephemeris time, expressed as seconds past the reference epoch for this body or planetary system
Fields§
§object_id: i32
The NAIF ID of this object
parent_id: i32
The NAIF ID of the parent orientation, NOT the parent translation
mu_km3_s2: f64
Gravitational parameter (μ) of this planetary object.
shape: Option<Ellipsoid>
The shape is always a tri axial ellipsoid
pole_right_ascension: Option<PhaseAngle<MAX_NUT_PREC_ANGLES>>
§pole_declination: Option<PhaseAngle<MAX_NUT_PREC_ANGLES>>
§prime_meridian: Option<PhaseAngle<MAX_NUT_PREC_ANGLES>>
§long_axis: Option<f64>
§num_nut_prec_angles: u8
These are the nutation precession angles as a list of tuples to rebuild them.
E.g. For E1 = 125.045 - 0.052992 d
, this would be stored as a single entry (125.045, -0.052992)
.
nut_prec_angles: [PhaseAngle<0>; 32]
Implementations§
source§impl PlanetaryData
impl PlanetaryData
sourcepub fn to_frame(&self, uid: FrameUid) -> Frame
pub fn to_frame(&self, uid: FrameUid) -> Frame
Converts this planetary data into a Frame, unsetting any shape data for non-body-fixed frames (ID < 100).
sourcepub fn rotation_to_parent(
&self,
epoch: Epoch,
system: &Self
) -> PhysicsResult<DCM>
pub fn rotation_to_parent( &self, epoch: Epoch, system: &Self ) -> PhysicsResult<DCM>
Computes the rotation to the parent frame, including its time derivative.
Trait Implementations§
source§impl Clone for PlanetaryData
impl Clone for PlanetaryData
source§fn clone(&self) -> PlanetaryData
fn clone(&self) -> PlanetaryData
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for PlanetaryData
impl Debug for PlanetaryData
source§impl<'a> Decode<'a> for PlanetaryData
impl<'a> Decode<'a> for PlanetaryData
source§impl Default for PlanetaryData
impl Default for PlanetaryData
source§fn default() -> PlanetaryData
fn default() -> PlanetaryData
source§impl Display for PlanetaryData
impl Display for PlanetaryData
source§impl Encode for PlanetaryData
impl Encode for PlanetaryData
source§fn encoded_len(&self) -> Result<Length>
fn encoded_len(&self) -> Result<Length>
source§fn encode(&self, encoder: &mut impl Writer) -> Result<()>
fn encode(&self, encoder: &mut impl Writer) -> Result<()>
Writer
.source§fn encode_to_slice<'a>(&self, buf: &'a mut [u8]) -> Result<&'a [u8], Error>
fn encode_to_slice<'a>(&self, buf: &'a mut [u8]) -> Result<&'a [u8], Error>
source§impl PartialEq for PlanetaryData
impl PartialEq for PlanetaryData
source§fn eq(&self, other: &PlanetaryData) -> bool
fn eq(&self, other: &PlanetaryData) -> bool
self
and other
values to be equal, and is used
by ==
.impl Copy for PlanetaryData
impl StructuralPartialEq for PlanetaryData
Auto Trait Implementations§
impl Freeze for PlanetaryData
impl RefUnwindSafe for PlanetaryData
impl Send for PlanetaryData
impl Sync for PlanetaryData
impl Unpin for PlanetaryData
impl UnwindSafe for PlanetaryData
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.