O_SESSAME::Keplerian Class Reference
[Orbit State Represenations]

#include <Keplerian.h>

Inheritance diagram for O_SESSAME::Keplerian:

Inheritance graph
[legend]
List of all members.

Detailed Description

Keplerian orbital element representation of the orbital position.

The Keplerian class stores the orbital elements of an orbital position.

Example:

Definition at line 71 of file Keplerian.h.

Public Member Functions

virtual ~Keplerian ()
 Default Deconstructor.

virtual Keplerian * NewPointer ()
 Return a pointer to a new instance of a Keplerian orbit state representation type.

virtual Keplerian * Clone ()
 Return a pointer to a copy of the Keplerian orbit state representation instance.

 Keplerian ()
 Create an initially empty Keplerian orbit state representation.

 Keplerian (const Vector &_Elements)
void SetPositionVelocity (const Vector &_Position, const Vector &_Velocity)
 Set the Keplerian representation by converting the position and velocity vectors in inertial coordinates.

void SetPositionVelocity (const Vector &_PositionVelocity)
 Set the Keplerian representation by converting the position and velocity vector given in inertial coordinates.

void SetPositionVelocity (const Vector &_Position, const Vector &_Velocity, const OrbitFrame &_OrbFrame)
 Set the Keplerian representation by converting the position and velocity vectors.

void SetPositionVelocity (const Vector &_PositionVelocity, const OrbitFrame &_OrbFrame)
 Set the Keplerian representation by converting the position and velocity vector.

Vector GetPositionVelocity () const
 Convert the Keplerian orbit representation to position and velocity vectors in the inertial frame.

Vector GetPositionVelocity (const OrbitFrame &_TargetOrbFrame) const
 Convert the Keplerian orbit representation to position and velocity vectors in the specified frame.

void GetPositionVelocity (Vector &_Position, Vector &_Velocity) const
 Return by reference the converted the Keplerian orbit representation to position and velocity vectors in the inertial frame.

void GetPositionVelocity (Vector &_Position, Vector &_Velocity, const OrbitFrame &_TargetOrbFrame) const
 Return by reference the converted Keplerian orbit representation to position and velocity vectors in the specified frame.

double GetEccentricAnomalyFromMeanAnomaly (const double &_MeanAnomaly)
 Solves Kepler's Equation in order to compute eccentric anomaly (E) from mean anomaly (M) and eccentricity (e). Adapted from Appendix A, Orbits, by Christopher D. Hall. Class notes for AOE 4140. Available at http://www.aoe.vt.edu/~chall/courses/aoe4140/.

void GetTrueAnomalyFromEccentricAnomaly (const double &_EccentricAnomaly)
 Calculates true anomaly ( ) from eccentric anomaly (E), semimajor axis (a), and eccentricity (e).

tleStruct ReadTwoLineElementSet (const string &_TwoLineElementSet)
 Parses a two line element set and updates orbital elements, returns a struct of additional information.

double GetSemiParameter () const
 Compute and return the Semiparameter of the orbit position.

double GetSemimajorAxis () const
 Return the Semimajor Axis of the orbit position. (km).

double GetEccentricity () const
 Return the Eccentricity of the orbit position. (-).

double GetInclination () const
 Return the Inclination of the orbit position. (-).

double GetLongAscNode () const
 Return the Longitude of the Ascending Node of the orbit position. (rad).

double GetArgPerigee () const
 Return the Argument of Perigee of the orbit position. (rad).

double GetTrueAnomaly () const
 Return the True Anomaly of the orbit position. (rad).

double GetMeanMotion () const
 Return the Mean orbital motion of the orbit position. (rad/s).

virtual void SetState (const Vector &_Elements)
 Set the vector of the representation's state vector.

virtual Vector GetState () const
 Return a vector of the representation's state vector.

virtual void GetState (Vector &_Elements) const
 Return a vector by reference of the representation's state vector.


Private Attributes

Vector m_OrbitalElements
tleStruct m_tleData


Constructor & Destructor Documentation

O_SESSAME::Keplerian::~Keplerian  )  [virtual]
 

Default Deconstructor.

Definition at line 17 of file Keplerian.cpp.

O_SESSAME::Keplerian::Keplerian  ) 
 

Create an initially empty Keplerian orbit state representation.

Definition at line 49 of file Keplerian.cpp.

O_SESSAME::Keplerian::Keplerian const Vector _Elements  ) 
 

Create a Keplerian orbit state representation from a vector of orbital elements.

Parameters:
_Elements 6-element vector of Keplerian orbital elements [a, e, i, , , ]. (km, -, rad, rad, rad, rad)

Definition at line 57 of file Keplerian.cpp.


Member Function Documentation

Keplerian * O_SESSAME::Keplerian::NewPointer  )  [virtual]
 

Return a pointer to a new instance of a Keplerian orbit state representation type.

This is used to request memory for a new instance of a Keplerian. It is necessary when attempting to get a pointer from the abstract data type OrbitStateRepresentation and the actual representation type isn't known.

Returns:
a pointer to a new allocation of memory for the Keplerian object.

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 29 of file Keplerian.cpp.

Keplerian * O_SESSAME::Keplerian::Clone  )  [virtual]
 

Return a pointer to a copy of the Keplerian orbit state representation instance.

This is used to request memory for a copy of this instance of Keplerian. It is necessary when attempting to get a pointer from the abstract data type OrbitStateRepresentation and the actual representation type isn't known.

Returns:
a pointer to a copy of the Keplerian object.

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 42 of file Keplerian.cpp.

void O_SESSAME::Keplerian::SetPositionVelocity const Vector _Position,
const Vector _Velocity
[virtual]
 

Set the Keplerian representation by converting the position and velocity vectors in inertial coordinates.

Required to match the OrbitStateRepresentation abstract class interface.

Todo:
implement Keplerian conversion functions
Parameters:
_Position 3-element vector of position components in inertial coordinates. (km)
_Velocity 3-element vector of vector components in inertial coordinates. (km/s)

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 70 of file Keplerian.cpp.

void O_SESSAME::Keplerian::SetPositionVelocity const Vector _PositionVelocity  )  [virtual]
 

Set the Keplerian representation by converting the position and velocity vector given in inertial coordinates.

required to match the OrbitStateRepresentation abstract class interface.

Todo:
implement Keplerian conversion functions
Parameters:
_Position 6-element vector of position and velocity components in inertial coordinates. (km, km/s)

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 138 of file Keplerian.cpp.

void O_SESSAME::Keplerian::SetPositionVelocity const Vector _Position,
const Vector _Velocity,
const OrbitFrame _OrbFrame
 

Set the Keplerian representation by converting the position and velocity vectors.

Todo:
implement Keplerian conversion functions
Parameters:
_Position 3-element vector of position components. (km)
_Velocity 3-element vector of vector components. (km/s)
_TargetOrbFrame Reference frame that the vector components are in.

Definition at line 153 of file Keplerian.cpp.

void O_SESSAME::Keplerian::SetPositionVelocity const Vector _PositionVelocity,
const OrbitFrame _OrbFrame
 

Set the Keplerian representation by converting the position and velocity vector.

Todo:
implement Keplerian conversion functions
Parameters:
_Position 6-element vector of position and velocity components. (km, km/s)
_TargetOrbFrame Reference frame that the vector components are in.

Definition at line 169 of file Keplerian.cpp.

Vector O_SESSAME::Keplerian::GetPositionVelocity  )  const [virtual]
 

Convert the Keplerian orbit representation to position and velocity vectors in the inertial frame.

Required to match the OrbitStateRepresentation abstract class interface.

Returns:
6-element vector of position and velocity vector components in the inertial reference frame. [km, km, km, km/s, km/s, km/s]^T

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 183 of file Keplerian.cpp.

Vector O_SESSAME::Keplerian::GetPositionVelocity const OrbitFrame _TargetOrbFrame  )  const
 

Convert the Keplerian orbit representation to position and velocity vectors in the specified frame.

Parameters:
_TargetOrbFrame the desired reference frame to return the vector components in.
Returns:
6-element vector of position and velocity vector components in the specified reference frame. [km, km, km, km/s, km/s, km/s]^T

Definition at line 200 of file Keplerian.cpp.

void O_SESSAME::Keplerian::GetPositionVelocity Vector _Position,
Vector _Velocity
const [virtual]
 

Return by reference the converted the Keplerian orbit representation to position and velocity vectors in the inertial frame.

required to match the OrbitStateRepresentation abstract class interface.

Parameters:
_Position a Vector through which to return the 3-element position vector in inertial corrdinates. (km)
_Velocity a Vector through which to return the 3-element velocity vector in inertial corrdinates. (km/s)
_TargetOrbFrame the desired reference frame to return the vector components in.

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 219 of file Keplerian.cpp.

void O_SESSAME::Keplerian::GetPositionVelocity Vector _Position,
Vector _Velocity,
const OrbitFrame _TargetOrbFrame
const
 

Return by reference the converted Keplerian orbit representation to position and velocity vectors in the specified frame.

Parameters:
_Position a Vector through which to return the 3-element position vector. (km)
_Velocity a Vector through which to return the 3-element velocity vector. (km/s)
_TargetOrbFrame the desired reference frame to return the vector components in.

Definition at line 236 of file Keplerian.cpp.

double O_SESSAME::Keplerian::GetEccentricAnomalyFromMeanAnomaly const double &  _MeanAnomaly  ) 
 

Solves Kepler's Equation in order to compute eccentric anomaly (E) from mean anomaly (M) and eccentricity (e). Adapted from Appendix A, Orbits, by Christopher D. Hall. Class notes for AOE 4140. Available at http://www.aoe.vt.edu/~chall/courses/aoe4140/.

Todo:
Allow user to specify tolerance for numerical convergence.

Todo:
Allow user to specify tolerance for numerical convergence.

Definition at line 253 of file Keplerian.cpp.

void O_SESSAME::Keplerian::GetTrueAnomalyFromEccentricAnomaly const double &  _EccentricAnomaly  ) 
 

Calculates true anomaly ( ) from eccentric anomaly (E), semimajor axis (a), and eccentricity (e).

Adapted from Appendix A, Orbits, by Christopher D. Hall. Class notes for AOE 4140. Available at http://www.aoe.vt.edu/~chall/courses/aoe4140/

Definition at line 287 of file Keplerian.cpp.

tleStruct O_SESSAME::Keplerian::ReadTwoLineElementSet const string &  _TwoLineElementSet  ) 
 

Parses a two line element set and updates orbital elements, returns a struct of additional information.

Adapted from Appendix A, Orbits, by Christopher D. Hall. Class notes for AOE 4140. Available at http://www.aoe.vt.edu/~chall/courses/aoe4140/

Sample TLEs: COSMOS 2278 1 23087U 94023A 98011.59348139 .00000348 00000-0 21464-3 0 5260 2 23087 71.0176 58.4285 0007185 172.8790 187.2435 14.12274429191907

NOAA 14 1 23455U 94089A 97320.90946019 .00000140 00000-0 10191-3 0 2621 2 23455 99.0090 272.6745 0008546 223.1686 136.8816 14.11711747148495

TLE Definition AAAAAAAAAAAAAAAAAAAAAAAA 1 NNNNNU NNNNNAAA NNNNN.NNNNNNNN +.NNNNNNNN +NNNNN-N +NNNNN-N N NNNNN 2 NNNNN NNN.NNNN NNN.NNNN NNNNNNN NNN.NNNN NNN.NNNN NN.NNNNNNNNNNNNNN Line 0 is a twenty-four character name (to be consistent with the name length in the NORAD SATCAT). Lines 1 and 2 are the standard Two-Line Orbital Element Set Format identical to that used by NORAD and NASA.

Todo:
Error checking for syntactically correct TLEs, including endlines, carriage returns.

Include full year info logic as per the tle standard, wherein 57-99 --> 19__ and 00-56 --> 20__.

verify that RAAN = longitude of the ascending node.

Definition at line 337 of file Keplerian.cpp.

void O_SESSAME::Keplerian::SetState const Vector _Elements  )  [virtual]
 

Set the vector of the representation's state vector.

Warning:
Deprecated - Do Not Use - will be moved internally

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 584 of file Keplerian.cpp.

Vector O_SESSAME::Keplerian::GetState  )  const [virtual]
 

Return a vector of the representation's state vector.

Warning:
Deprecated - Do Not Use - will be moved internally

Implements O_SESSAME::OrbitStateRepresentation.

Definition at line 594 of file Keplerian.cpp.

void O_SESSAME::Keplerian::GetState Vector _Elements  )  const [virtual]
 

Return a vector by reference of the representation's state vector.

Warning:
Deprecated - Do Not Use - will be moved internally

Definition at line 603 of file Keplerian.cpp.


Member Data Documentation

Vector O_SESSAME::Keplerian::m_OrbitalElements [private]
 

6x1 vector of Keplerian orbital elements [a, e, i, , , ] (km, -, rad, rad, rad, rad)

Definition at line 164 of file Keplerian.h.

tleStruct O_SESSAME::Keplerian::m_tleData [private]
 

All of the non-orbital element data that's inside of a TLE.

Definition at line 167 of file Keplerian.h.


Generated on Wed Aug 6 12:59:24 2003 for Open-Sessame Framework by doxygen1.3