#include <Keplerian.h>
Inheritance diagram for O_SESSAME::Keplerian:
The Keplerian class stores the orbital elements of an orbital position.
Definition at line 87 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) | |
Create an initially empty Keplerian orbit state representation. | |
Keplerian | KeplerianCopy () |
Create a copy of the Keplerian representation. | |
void | SetKeplerianRepresentationMeanAnomaly (const Vector &_OrbitalElements) |
Set the Keplerian representation by a vector representation of Orbital Elements. | |
void | SetKeplerianRepresentationEccentricAnomaly (const Vector &_OrbitalElements) |
Set the Keplerian representation by a vector representation of Orbital Elements. | |
void | SetKeplerianRepresentationTrueAnomaly (const Vector &_OrbitalElements) |
Set the Keplerian representation by a vector representation of Orbital Elements. | |
void | SetPositionVelocity (const Vector &_Position, const Vector &_Velocity) |
Set the Keplerian representation by converting the position and velocity vectors in inertial coordinates (ECI) to Keplerian Orbit Elements. Follows procedure outlined in Analytical Mechanics of Space Systems by Schaub and Junkins (page 409). | |
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. | |
Vector | GetPositionVelocityPQW () const |
Convert the Keplerian orbit representation to position and velocity vectors in the Perifocal frame (PQW). | |
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 (![]() | |
tleStruct | ReadTwoLineElementSet (const string &_TwoLineElementSet) |
Parses a two line element set and updates orbital elements, returns a struct of additional information. | |
double | GetEccentricAnomalyFromTrueAnomaly () |
Determine the Eccentric Anomaly ![]() | |
double | GetMeanAnomalyFromEccentricAnomaly () |
Determine the Mean Anomaly ![]() | |
double | GetArgLattitude () |
Determine the Argument of Lattitude, ![]() | |
double | GetLongPerigee () |
Determine the Longitude of Perigee, ![]() | |
double | GetTrueLongitude () |
Determine the True Longitude, ![]() | |
double | GetSemiParameter () const |
Compute and return the Semiparameter ![]() | |
double | GetSemimajorAxis () const |
Return the Semimajor Axis ![]() | |
double | GetEccentricity () const |
Return the Eccentricity ![]() | |
double | GetInclination () const |
Return the Inclination ![]() | |
double | GetLongAscNode () const |
Return the Longitude of the Ascending Node ![]() | |
double | GetArgPerigee () const |
Return the Argument of Perigee ![]() | |
double | GetTrueAnomaly () const |
Return the True Anomaly ![]() | |
double | GetMeanMotion () const |
Return the Mean orbital motion ![]() | |
double | GetEccentricAnomaly () const |
Return the Eccentric Anomaly ![]() | |
double | GetMeanAnomaly () const |
Return the Mean Anomaly ![]() | |
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 |
Vector | m_OrbitalParameters |
tleStruct | m_tleData |
|
Default Deconstructor.
Definition at line 17 of file Keplerian.cpp. |
|
Create an initially empty Keplerian orbit state representation.
Definition at line 49 of file Keplerian.cpp. References NUM_KEPLERIAN_ELEMENTS, and NUM_KEPLERIAN_PARAMETERS. Referenced by Clone(), and NewPointer(). |
|
Create an initially empty Keplerian orbit state representation. Create a Keplerian orbit state representation from a vector of orbital elements.
Definition at line 62 of file Keplerian.cpp. References NUM_KEPLERIAN_ELEMENTS, NUM_KEPLERIAN_PARAMETERS, SetKeplerianRepresentationTrueAnomaly(), and O_SESSAME::Vector. |
|
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.
Implements O_SESSAME::OrbitStateRepresentation. Reimplemented in O_SESSAME::OsculatingOrbitalElements. Definition at line 42 of file Keplerian.cpp. References Keplerian(). |
|
Determine the Argument of Lattitude,
Definition at line 267 of file Keplerian.cpp. References O_SESSAME::ARG_LATTITUDE, O_SESSAME::ARG_PERIGEE, m_OrbitalElements, m_OrbitalParameters, and O_SESSAME::TRUE_ANOMALY. Referenced by SetKeplerianRepresentationEccentricAnomaly(), SetKeplerianRepresentationMeanAnomaly(), SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity(). |
|
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/.
Definition at line 463 of file Keplerian.cpp. References O_SESSAME::ECCENTRICITY, and m_OrbitalElements. Referenced by ReadTwoLineElementSet(), and SetKeplerianRepresentationMeanAnomaly(). |
|
Determine the Eccentric Anomaly
Definition at line 298 of file Keplerian.cpp. References O_SESSAME::ECCENTRIC_ANOMALY, O_SESSAME::ECCENTRICITY, m_OrbitalElements, m_OrbitalParameters, and O_SESSAME::TRUE_ANOMALY. Referenced by SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity(). |
|
Determine the Longitude of Perigee,
Definition at line 277 of file Keplerian.cpp. References O_SESSAME::ARG_PERIGEE, O_SESSAME::LONG_ASC_NODE, O_SESSAME::LONG_PERIGEE, m_OrbitalElements, and m_OrbitalParameters. Referenced by SetKeplerianRepresentationEccentricAnomaly(), SetKeplerianRepresentationMeanAnomaly(), SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity(). |
|
Determine the Mean Anomaly
Definition at line 310 of file Keplerian.cpp. References O_SESSAME::ECCENTRIC_ANOMALY, O_SESSAME::ECCENTRICITY, m_OrbitalElements, m_OrbitalParameters, and O_SESSAME::MEAN_ANOMALY. Referenced by SetKeplerianRepresentationEccentricAnomaly(), SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity(). |
|
Return by reference the converted Keplerian orbit representation to position and velocity vectors in the specified frame.
Definition at line 445 of file Keplerian.cpp. References GetPositionVelocity(), OrbitFrame::GetRotationFromIJK(), and O_SESSAME::Vector. |
|
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.
Implements O_SESSAME::OrbitStateRepresentation. Definition at line 430 of file Keplerian.cpp. References _, GetPositionVelocity(), O_SESSAME::Vector, and O_SESSAME::VectorIndexBase. |
|
Convert the Keplerian orbit representation to position and velocity vectors in the specified frame.
Definition at line 412 of file Keplerian.cpp. References _, GetPositionVelocity(), OrbitFrame::GetRotationFromIJK(), O_SESSAME::Vector, and O_SESSAME::VectorIndexBase. |
|
Convert the Keplerian orbit representation to position and velocity vectors in the inertial frame. Required to match the OrbitStateRepresentation abstract class interface.
Implements O_SESSAME::OrbitStateRepresentation. Definition at line 371 of file Keplerian.cpp. References _, GetArgPerigee(), GetInclination(), GetLongAscNode(), GetPositionVelocityPQW(), O_SESSAME::R1(), O_SESSAME::R3(), O_SESSAME::Vector, and O_SESSAME::VectorIndexBase. Referenced by GetPositionVelocity(), and O_SESSAME::TestKeplerian::Keplerian2ECI2Keplerian(). |
|
Convert the Keplerian orbit representation to position and velocity vectors in the Perifocal frame (PQW). This does not match the the OrbitStateRepresentation abstract class interface, but is used to obtain ECI position and velocity.
Definition at line 394 of file Keplerian.cpp. References GetEccentricity(), GetSemiParameter(), GetTrueAnomaly(), MU, O_SESSAME::Vector, and O_SESSAME::VectorIndexBase. Referenced by GetPositionVelocity(). |
|
Return a vector by reference of the representation's state vector.
Definition at line 815 of file Keplerian.cpp. References O_SESSAME::Vector. |
|
Return a vector of the representation's state vector.
Implements O_SESSAME::OrbitStateRepresentation. Definition at line 806 of file Keplerian.cpp. References O_SESSAME::Vector. |
|
Calculates true anomaly ( 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 497 of file Keplerian.cpp. References O_SESSAME::ECCENTRICITY, m_OrbitalElements, O_SESSAME::SEMIMAJOR_AXIS, and O_SESSAME::TRUE_ANOMALY. Referenced by ReadTwoLineElementSet(), SetKeplerianRepresentationEccentricAnomaly(), and SetKeplerianRepresentationMeanAnomaly(). |
|
Determine the True Longitude,
Definition at line 287 of file Keplerian.cpp. References O_SESSAME::ARG_PERIGEE, O_SESSAME::LONG_ASC_NODE, m_OrbitalElements, m_OrbitalParameters, O_SESSAME::TRUE_ANOMALY, and O_SESSAME::TRUE_LONGITUDE. Referenced by SetKeplerianRepresentationEccentricAnomaly(), SetKeplerianRepresentationMeanAnomaly(), SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity(). |
|
Create a copy of the Keplerian representation.
Definition at line 71 of file Keplerian.cpp. Referenced by O_SESSAME::OsculatingOrbitalElements::SetMeanOrbitalElements(), and O_SESSAME::OsculatingOrbitalElements::SetOsculatingOrbitalElements(). |
|
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.
Implements O_SESSAME::OrbitStateRepresentation. Reimplemented in O_SESSAME::OsculatingOrbitalElements. Definition at line 29 of file Keplerian.cpp. References Keplerian(). |
|
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.
Definition at line 547 of file Keplerian.cpp. References O_SESSAME::ARG_PERIGEE, O_SESSAME::tleStruct::bstarDrag, O_SESSAME::tleStruct::checksumLine1, O_SESSAME::tleStruct::checksumLine2, O_SESSAME::tleStruct::eccentricAnomaly, O_SESSAME::ECCENTRICITY, O_SESSAME::tleStruct::elementNumber, O_SESSAME::tleStruct::ephemerisType, O_SESSAME::tleStruct::epochDay, O_SESSAME::tleStruct::epochYear, GetEccentricAnomalyFromMeanAnomaly(), GetTrueAnomalyFromEccentricAnomaly(), O_SESSAME::INCLINATION, O_SESSAME::tleStruct::launchNumber, O_SESSAME::tleStruct::launchPiece, O_SESSAME::tleStruct::launchYear, O_SESSAME::LONG_ASC_NODE, m_OrbitalElements, m_tleData, O_SESSAME::tleStruct::meanAnomaly, O_SESSAME::tleStruct::meanMotion, O_SESSAME::tleStruct::meanmotion1stDeriv, O_SESSAME::tleStruct::meanmotion2ndDeriv, MU, PI, O_SESSAME::tleStruct::revolutionNumber, O_SESSAME::tleStruct::satClassification, O_SESSAME::tleStruct::satName, O_SESSAME::tleStruct::satNumber, and O_SESSAME::SEMIMAJOR_AXIS. |
|
Set the Keplerian representation by a vector representation of Orbital Elements.
Definition at line 104 of file Keplerian.cpp. References _, O_SESSAME::ARG_LATTITUDE, O_SESSAME::ARG_PERIGEE, O_SESSAME::ECCENTRIC_ANOMALY, GetArgLattitude(), GetLongPerigee(), GetMeanAnomalyFromEccentricAnomaly(), GetTrueAnomalyFromEccentricAnomaly(), GetTrueLongitude(), O_SESSAME::LONG_PERIGEE, m_OrbitalElements, m_OrbitalParameters, O_SESSAME::MEAN_ANOMALY, O_SESSAME::SEMIMAJOR_AXIS, O_SESSAME::TRUE_LONGITUDE, O_SESSAME::Vector, and O_SESSAME::VectorIndexBase. |
|
Set the Keplerian representation by a vector representation of Orbital Elements.
Definition at line 131 of file Keplerian.cpp. References _, O_SESSAME::ARG_LATTITUDE, O_SESSAME::ARG_PERIGEE, O_SESSAME::ECCENTRIC_ANOMALY, GetArgLattitude(), GetEccentricAnomalyFromMeanAnomaly(), GetLongPerigee(), GetTrueAnomalyFromEccentricAnomaly(), GetTrueLongitude(), O_SESSAME::LONG_PERIGEE, m_OrbitalElements, m_OrbitalParameters, O_SESSAME::MEAN_ANOMALY, O_SESSAME::SEMIMAJOR_AXIS, O_SESSAME::TRUE_LONGITUDE, O_SESSAME::Vector, and O_SESSAME::VectorIndexBase. Referenced by O_SESSAME::OsculatingOrbitalElements::Mapping(). |
|
Set the Keplerian representation by a vector representation of Orbital Elements.
Definition at line 81 of file Keplerian.cpp. References O_SESSAME::ARG_LATTITUDE, O_SESSAME::ECCENTRIC_ANOMALY, GetArgLattitude(), GetEccentricAnomalyFromTrueAnomaly(), GetLongPerigee(), GetMeanAnomalyFromEccentricAnomaly(), GetTrueLongitude(), O_SESSAME::LONG_PERIGEE, m_OrbitalElements, m_OrbitalParameters, O_SESSAME::MEAN_ANOMALY, O_SESSAME::TRUE_LONGITUDE, and O_SESSAME::Vector. Referenced by O_SESSAME::TestKeplerian::Check(), Keplerian(), and SetState(). |
|
Set the Keplerian representation by converting the position and velocity vector.
Definition at line 357 of file Keplerian.cpp. References _, SetPositionVelocity(), O_SESSAME::Vector, and O_SESSAME::VectorIndexBase. |
|
Set the Keplerian representation by converting the position and velocity vectors.
Definition at line 341 of file Keplerian.cpp. References OrbitFrame::GetRotation2IJK(), SetPositionVelocity(), and O_SESSAME::Vector. |
|
Set the Keplerian representation by converting the position and velocity vector given in inertial coordinates. required to match the OrbitStateRepresentation abstract class interface.
Implements O_SESSAME::OrbitStateRepresentation. Definition at line 324 of file Keplerian.cpp. References _, SetPositionVelocity(), O_SESSAME::Vector, and O_SESSAME::VectorIndexBase. |
|
|
Set the vector of the representation's state vector.
Implements O_SESSAME::OrbitStateRepresentation. Definition at line 794 of file Keplerian.cpp. References SetKeplerianRepresentationTrueAnomaly(), and O_SESSAME::Vector. |
|
6x1 vector of Keplerian orbital elements [a, e, i, Definition at line 204 of file Keplerian.h. Referenced by GetArgLattitude(), GetEccentricAnomalyFromMeanAnomaly(), GetEccentricAnomalyFromTrueAnomaly(), GetLongPerigee(), GetMeanAnomalyFromEccentricAnomaly(), GetTrueAnomalyFromEccentricAnomaly(), GetTrueLongitude(), ReadTwoLineElementSet(), SetKeplerianRepresentationEccentricAnomaly(), SetKeplerianRepresentationMeanAnomaly(), SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity(). |
|
nx1 vector of Keplerian orbital elements [E, E_o, M, Mo ] (rad, rad, -, - ) Definition at line 207 of file Keplerian.h. Referenced by GetArgLattitude(), GetEccentricAnomalyFromTrueAnomaly(), GetLongPerigee(), GetMeanAnomalyFromEccentricAnomaly(), GetTrueLongitude(), SetKeplerianRepresentationEccentricAnomaly(), SetKeplerianRepresentationMeanAnomaly(), SetKeplerianRepresentationTrueAnomaly(), and SetPositionVelocity(). |
|
All of the non-orbital element data that's inside of a TLE. Definition at line 210 of file Keplerian.h. Referenced by ReadTwoLineElementSet(). |