pub struct Orbit {
pub inclination: f64,
pub right_ascension: f64,
pub eccentricity: f64,
pub argument_of_perigee: f64,
pub mean_anomaly: f64,
pub mean_motion: f64,
}
Expand description
The Brouwer orbital elements
Fields
inclination: f64
Angle between the equator and the orbit plane in rad
right_ascension: f64
Angle between vernal equinox and the point where the orbit crosses the equatorial plane in rad
eccentricity: f64
Shape of the orbit
argument_of_perigee: f64
Angle between the ascending node and the orbit’s point of closest approach to the earth in rad
mean_anomaly: f64
Angle of the satellite location measured from perigee in rad
mean_motion: f64
Mean number of orbits per day in rad.min⁻¹
Implementations
sourceimpl Orbit
impl Orbit
sourcepub fn from_kozai_elements(
geopotential: &Geopotential,
inclination: f64,
right_ascension: f64,
eccentricity: f64,
argument_of_perigee: f64,
mean_anomaly: f64,
kozai_mean_motion: f64
) -> Result<Self>
pub fn from_kozai_elements(
geopotential: &Geopotential,
inclination: f64,
right_ascension: f64,
eccentricity: f64,
argument_of_perigee: f64,
mean_anomaly: f64,
kozai_mean_motion: f64
) -> Result<Self>
Creates a new Brouwer orbit representation from Kozai elements
If the Kozai orbital elements are obtained from a TLE or OMM,
the convenience function sgp4::Constants::from_elements
can be used instead of manually mapping the Elements
fields to the Constants::new
parameters.
Arguments
geopotential
- The model of Earth gravity to use in the conversioninclination
- Angle between the equator and the orbit plane in radright_ascension
- Angle between vernal equinox and the point where the orbit crosses the equatorial plane in radeccentricity
- The shape of the orbitargument_of_perigee
- Angle between the ascending node and the orbit’s point of closest approach to the earth in radmean_anomaly
- Angle of the satellite location measured from perigee in radkozai_mean_motion
- Mean orbital angular velocity in rad.min⁻¹ (Kozai convention)
Example
let elements = sgp4::Elements::from_tle(
Some("ISS (ZARYA)".to_owned()),
"1 25544U 98067A 20194.88612269 -.00002218 00000-0 -31515-4 0 9992".as_bytes(),
"2 25544 51.6461 221.2784 0001413 89.1723 280.4612 15.49507896236008".as_bytes(),
)?;
let orbit_0 = sgp4::Orbit::from_kozai_elements(
&sgp4::WGS84,
elements.inclination * (std::f64::consts::PI / 180.0),
elements.right_ascension * (std::f64::consts::PI / 180.0),
elements.eccentricity,
elements.argument_of_perigee * (std::f64::consts::PI / 180.0),
elements.mean_anomaly * (std::f64::consts::PI / 180.0),
elements.mean_motion * (std::f64::consts::PI / 720.0),
)?;
Auto Trait Implementations
impl RefUnwindSafe for Orbit
impl Send for Orbit
impl Sync for Orbit
impl Unpin for Orbit
impl UnwindSafe for Orbit
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more