org.orekit.orbits
Class Orbit

java.lang.Object
  extended by org.orekit.orbits.Orbit
All Implemented Interfaces:
java.io.Serializable, TimeStamped
Direct Known Subclasses:
CartesianOrbit, CircularOrbit, EquinoctialOrbit, KeplerianOrbit

public abstract class Orbit
extends java.lang.Object
implements TimeStamped, java.io.Serializable

This class handles orbital parameters without date.

The aim of this class is to separate the orbital parameters from the date for cases where dates are managed elsewhere. This occurs for example during numerical integration and interpolation because date is the free parameter whereas the orbital parameters are bound to either differential or interpolation equations.

For user convenience, both the cartesian and the equinoctial elements are provided by this class, regardless of the canonical representation implemented in the derived class (which may be classical keplerian elements for example).

The parameters are defined in a frame specified by the user. It is important to make sure this frame is consistent: it probably is inertial and centered on the central body. This information is used for example by some force models.

The object OrbitalParameters is guaranteed to be immutable.

Version:
$Revision:1665 $ $Date:2008-06-11 12:12:59 +0200 (mer., 11 juin 2008) $
Author:
Luc Maisonobe, Guylaine Prat, Fabien Maussion, Véronique Pommier-Maurussane
See Also:
Serialized Form

Constructor Summary
protected Orbit(Frame frame, AbsoluteDate date, double mu)
          Default constructor.
protected Orbit(PVCoordinates pvCoordinates, Frame frame, AbsoluteDate date, double mu)
          Set the orbit from cartesian parameters.
 
Method Summary
abstract  double getA()
          Get the semi-major axis.
 AbsoluteDate getDate()
          Get the date of orbital parameters.
abstract  double getE()
          Get the eccentricity.
abstract  double getEquinoctialEx()
          Get the first component of the equinoctial eccentricity vector.
abstract  double getEquinoctialEy()
          Get the second component of the equinoctial eccentricity vector.
 Frame getFrame()
          Get the frame in which the orbital parameters are defined.
abstract  double getHx()
          Get the first component of the inclination vector.
abstract  double getHy()
          Get the second component of the inclination vector.
abstract  double getI()
          Get the inclination.
 double getKeplerianMeanMotion()
          Get the keplerian mean motion.
 double getKeplerianPeriod()
          Get the keplerian period.
abstract  double getLE()
          Get the eccentric latitude argument.
abstract  double getLM()
          Get the mean latitude argument.
abstract  double getLv()
          Get the true latitude argument.
 double getMu()
          Get the central acceleration constant.
 PVCoordinates getPVCoordinates()
          Get the PVCoordinates in definition frame.
 PVCoordinates getPVCoordinates(Frame outputFrame)
          Get the PVCoordinates.
abstract  Orbit shiftedBy(double dt)
          Get a time-shifted orbit.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Orbit

protected Orbit(Frame frame,
                AbsoluteDate date,
                double mu)
         throws java.lang.IllegalArgumentException
Default constructor. Build a new instance with arbitrary default elements.

Parameters:
frame - the frame in which the parameters are defined (must be a quasi-inertial frame)
date - date of the orbital parameters
mu - central attraction coefficient (m^3/s^2)
Throws:
java.lang.IllegalArgumentException - if frame is not a quasi-inertial frame

Orbit

protected Orbit(PVCoordinates pvCoordinates,
                Frame frame,
                AbsoluteDate date,
                double mu)
         throws java.lang.IllegalArgumentException
Set the orbit from cartesian parameters.

Parameters:
pvCoordinates - the position and velocity in the inertial frame
frame - the frame in which the PVCoordinates are defined (must be a quasi-inertial frame)
date - date of the orbital parameters
mu - central attraction coefficient (m^3/s^2)
Throws:
java.lang.IllegalArgumentException - if frame is not a quasi-inertial frame
Method Detail

getFrame

public Frame getFrame()
Get the frame in which the orbital parameters are defined.

Returns:
frame in which the orbital parameters are defined

getA

public abstract double getA()
Get the semi-major axis.

Returns:
semi-major axis (m)

getEquinoctialEx

public abstract double getEquinoctialEx()
Get the first component of the equinoctial eccentricity vector.

Returns:
first component of the equinoctial eccentricity vector

getEquinoctialEy

public abstract double getEquinoctialEy()
Get the second component of the equinoctial eccentricity vector.

Returns:
second component of the equinoctial eccentricity vector

getHx

public abstract double getHx()
Get the first component of the inclination vector.

Returns:
first component of the inclination vector

getHy

public abstract double getHy()
Get the second component of the inclination vector.

Returns:
second component of the inclination vector

getLE

public abstract double getLE()
Get the eccentric latitude argument.

Returns:
eccentric latitude argument (rad)

getLv

public abstract double getLv()
Get the true latitude argument.

Returns:
true latitude argument (rad)

getLM

public abstract double getLM()
Get the mean latitude argument.

Returns:
mean latitude argument (rad)

getE

public abstract double getE()
Get the eccentricity.

Returns:
eccentricity

getI

public abstract double getI()
Get the inclination.

Returns:
inclination (rad)

getMu

public double getMu()
Get the central acceleration constant.

Returns:
central acceleration constant

getKeplerianPeriod

public double getKeplerianPeriod()
Get the keplerian period.

The keplerian period is computed directly from semi major axis and central acceleration constant.

Returns:
keplerian period in seconds

getKeplerianMeanMotion

public double getKeplerianMeanMotion()
Get the keplerian mean motion.

The keplerian mean motion is computed directly from semi major axis and central acceleration constant.

Returns:
keplerian mean motion in radians per second

getDate

public AbsoluteDate getDate()
Get the date of orbital parameters.

Specified by:
getDate in interface TimeStamped
Returns:
date of the orbital parameters

getPVCoordinates

public PVCoordinates getPVCoordinates(Frame outputFrame)
                               throws OrekitException
Get the PVCoordinates.

Parameters:
outputFrame - frame in which the position/velocity coordinates shall be computed
Returns:
pvCoordinates in the specified output frame
Throws:
OrekitException - if transformation between frames cannot be computed
See Also:
getPVCoordinates()

getPVCoordinates

public PVCoordinates getPVCoordinates()
Get the PVCoordinates in definition frame.

Returns:
pvCoordinates in the definition frame
See Also:
getPVCoordinates(Frame)

shiftedBy

public abstract Orbit shiftedBy(double dt)
Get a time-shifted orbit.

The orbit can be slightly shifted to close dates. This shift is based on a simple keplerian model. It is not intended as a replacement for proper orbit and attitude propagation but should be sufficient for small time shifts or coarse accuracy.

Parameters:
dt - time shift in seconds
Returns:
a new orbit, shifted with respect to the instance (which is immutable)
See Also:
AbsoluteDate.shiftedBy(double), PVCoordinates.shiftedBy(double), Attitude.shiftedBy(double), SpacecraftState.shiftedBy(double)


Copyright © 2002-2010 CS Communication & Systèmes. All Rights Reserved.