org.orekit.orbits
Class KeplerianOrbit

java.lang.Object
  extended by org.orekit.orbits.Orbit
      extended by org.orekit.orbits.KeplerianOrbit
All Implemented Interfaces:
java.io.Serializable, TimeStamped

public class KeplerianOrbit
extends Orbit

This class handles traditional keplerian orbital parameters.

The parameters used internally are the classical keplerian elements:

     a
     e
     i
     ω
     Ω
     v
   
where ω stands for the Perigee Argument, Ω stands for the Right Ascension of the Ascending Node and v stands for the true anomaly.

When orbit is either equatorial or circular, some keplerian elements (more precisely ω and Ω) become ambiguous so this class should not be used for such orbits. For this reason, equinoctial orbits is the recommended way to represent orbits.

The instance KeplerianOrbit 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:
Orbit, CircularOrbit, CartesianOrbit, EquinoctialOrbit, Serialized Form

Field Summary
static double E_CIRC
          Eccentricity threshold for near circular orbits.
static int ECCENTRIC_ANOMALY
          Identifier for eccentric anomaly.
static int MEAN_ANOMALY
          Identifier for mean anomaly.
static int TRUE_ANOMALY
          Identifier for true anomaly.
 
Constructor Summary
KeplerianOrbit(double a, double e, double i, double pa, double raan, double anomaly, int type, Frame frame, AbsoluteDate date, double mu)
          Creates a new instance.
KeplerianOrbit(Orbit op)
          Constructor from any kind of orbital parameters.
KeplerianOrbit(PVCoordinates pvCoordinates, Frame frame, AbsoluteDate date, double mu)
          Constructor from cartesian parameters.
 
Method Summary
 double getA()
          Get the semi-major axis.
 double getE()
          Get the eccentricity.
 double getEccentricAnomaly()
          Get the eccentric anomaly.
 double getEquinoctialEx()
          Get the first component of the eccentricity vector.
 double getEquinoctialEy()
          Get the second component of the eccentricity vector.
 double getHx()
          Get the first component of the inclination vector.
 double getHy()
          Get the second component of the inclination vector.
 double getI()
          Get the inclination.
 double getLE()
          Get the eccentric latitude argument.
 double getLM()
          Get the mean latitude argument.
 double getLv()
          Get the true latitude argument.
 double getMeanAnomaly()
          Get the mean anomaly.
 double getPerigeeArgument()
          Get the perigee argument.
 double getRightAscensionOfAscendingNode()
          Get the right ascension of the ascending node.
 double getTrueAnomaly()
          Get the true anomaly.
 KeplerianOrbit shiftedBy(double dt)
          Get a time-shifted orbit.
 java.lang.String toString()
          Returns a string representation of this keplerian parameters object.
 
Methods inherited from class org.orekit.orbits.Orbit
getDate, getFrame, getKeplerianMeanMotion, getKeplerianPeriod, getMu, getPVCoordinates, getPVCoordinates
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

MEAN_ANOMALY

public static final int MEAN_ANOMALY
Identifier for mean anomaly.

See Also:
Constant Field Values

ECCENTRIC_ANOMALY

public static final int ECCENTRIC_ANOMALY
Identifier for eccentric anomaly.

See Also:
Constant Field Values

TRUE_ANOMALY

public static final int TRUE_ANOMALY
Identifier for true anomaly.

See Also:
Constant Field Values

E_CIRC

public static final double E_CIRC
Eccentricity threshold for near circular orbits. if e < E_CIRC : the orbit is considered circular

See Also:
Constant Field Values
Constructor Detail

KeplerianOrbit

public KeplerianOrbit(double a,
                      double e,
                      double i,
                      double pa,
                      double raan,
                      double anomaly,
                      int type,
                      Frame frame,
                      AbsoluteDate date,
                      double mu)
               throws java.lang.IllegalArgumentException
Creates a new instance.

Parameters:
a - semi-major axis (m)
e - eccentricity
i - inclination (rad)
pa - perigee argument (ω, rad)
raan - right ascension of ascending node (Ω, rad)
anomaly - mean, eccentric or true anomaly (rad)
type - type of anomaly, must be one of MEAN_ANOMALY, ECCENTRIC_ANOMALY or TRUE_ANOMALY
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 (m3/s2)
Throws:
java.lang.IllegalArgumentException - if the longitude argument type is not one of MEAN_ANOMALY, ECCENTRIC_ANOMALY or TRUE_ANOMALY or if frame is not a quasi-inertial frame
See Also:
MEAN_ANOMALY, ECCENTRIC_ANOMALY, TRUE_ANOMALY

KeplerianOrbit

public KeplerianOrbit(PVCoordinates pvCoordinates,
                      Frame frame,
                      AbsoluteDate date,
                      double mu)
               throws java.lang.IllegalArgumentException
Constructor from cartesian parameters.

Parameters:
pvCoordinates - the PVCoordinates of the satellite
frame - the frame in which are defined the PVCoordinates (must be a quasi-inertial frame)
date - date of the orbital parameters
mu - central attraction coefficient (m3/s2)
Throws:
java.lang.IllegalArgumentException - if frame is not a quasi-inertial frame

KeplerianOrbit

public KeplerianOrbit(Orbit op)
Constructor from any kind of orbital parameters.

Parameters:
op - orbital parameters to copy
Method Detail

getA

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

Specified by:
getA in class Orbit
Returns:
semi-major axis (m)

getE

public double getE()
Get the eccentricity.

Specified by:
getE in class Orbit
Returns:
eccentricity

getI

public double getI()
Get the inclination.

Specified by:
getI in class Orbit
Returns:
inclination (rad)

getPerigeeArgument

public double getPerigeeArgument()
Get the perigee argument.

Returns:
perigee argument (rad)

getRightAscensionOfAscendingNode

public double getRightAscensionOfAscendingNode()
Get the right ascension of the ascending node.

Returns:
right ascension of the ascending node (rad)

getTrueAnomaly

public double getTrueAnomaly()
Get the true anomaly.

Returns:
true anomaly (rad)

getEccentricAnomaly

public double getEccentricAnomaly()
Get the eccentric anomaly.

Returns:
eccentric anomaly (rad)

getMeanAnomaly

public double getMeanAnomaly()
Get the mean anomaly.

Returns:
mean anomaly (rad)

getEquinoctialEx

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

Specified by:
getEquinoctialEx in class Orbit
Returns:
first component of the eccentricity vector

getEquinoctialEy

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

Specified by:
getEquinoctialEy in class Orbit
Returns:
second component of the eccentricity vector

getHx

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

Specified by:
getHx in class Orbit
Returns:
first component of the inclination vector.

getHy

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

Specified by:
getHy in class Orbit
Returns:
second component of the inclination vector.

getLv

public double getLv()
Get the true latitude argument.

Specified by:
getLv in class Orbit
Returns:
true latitude argument (rad)

getLE

public double getLE()
Get the eccentric latitude argument.

Specified by:
getLE in class Orbit
Returns:
eccentric latitude argument.(rad)

getLM

public double getLM()
Get the mean latitude argument.

Specified by:
getLM in class Orbit
Returns:
mean latitude argument.(rad)

shiftedBy

public KeplerianOrbit 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.

Specified by:
shiftedBy in class Orbit
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)

toString

public java.lang.String toString()
Returns a string representation of this keplerian parameters object.

Overrides:
toString in class java.lang.Object
Returns:
a string representation of this object


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