Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

OrbitObserver Class Reference

#include <OrbitObserver.h>

Inheritance diagram for OrbitObserver:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 OrbitObserver ()
virtual ~OrbitObserver ()
virtual int Run ()=0
virtual int Initialize ()=0
Matrix DirectionCosMatrix1Axis (double _angle)
 Direction Cosine Matrix about the 1 axis.
Matrix DirectionCosMatrix2Axis (double _angle)
 Direction Cosine Matrix about the 2 axis.
Matrix DirectionCosMatrix3Axis (double _angle)
 Direction Cosine Matrix about the 3 axis.
Vector WGS2ECEFPosition (double _latitude, double _longitude, double _altitude)
 Convert from WGS84 ( latitude (rad), longitude (rad), altitude (m) ) to ECEF poisiton (m) ).
Vector NED2ECEFVelocity (double _latitude, double _longitude, double _altitude, double _velocityNorth, double _velocityEast, double _velocityDown)
 Convert from NED velocity (m/s) to ECEF velocity (m/s).
Vector WGS842ECEF (double _latitude, double _longitude, double _altitude, double _velocityNorth, double _velocityEast, double _velocityDown)
 Convert from WGS84 ( latitude (rad), longitude (rad), altitude (m) ) to ECEF poisiton (m) and velocity (m/s).
Vector ECEFPosition2WGS84 (double _x, double _y, double _z)
 Convert from ECEF position (m) to WGS84 ( latitude (rad), longitude (rad), altitude (m) ).
Vector ECEF2NEDVelocity (double _latitude, double _longitude, double _altitude, double _Vx, double _Vy, double _Vz)
 Convert from ECEF velocity (m/s) to NED velocity (m/s).
Vector ECEF2WGS84 (double _x, double _y, double _z, double _Vx, double _Vy, double _Vz)
 Convert from ECEF position (m) and velocity (m/s) to WGS84 ( latitude (rad), longitude (rad), altitude (m) ).
Vector ECEF2ECI (CAMdoubleVector _ECEFVector, double _jDay)
Vector ECI2ECEF (CAMdoubleVector _ECIVector, double _jDay)
double lat_lon (double latlon, char sector)
 Convert Latitude and Longitude in the form of DEG 'N/S' 'E/W' to +/-RAD.
void TangentPlaneState (AshtechG12_GPS_PhysicalDevice::Position recPos, CAMdoubleVector &_WGS84Vector)
void ECI2COE (Vector ECI, Vector VECI, Keplerian &myCOE, double &a, double &e, double &i, double &Lon, double &Arg, double &tru)

Constructor & Destructor Documentation

OrbitObserver::OrbitObserver  ) 
 

Definition at line 12 of file OrbitObserver.cpp.

OrbitObserver::~OrbitObserver  )  [virtual]
 

Definition at line 17 of file OrbitObserver.cpp.


Member Function Documentation

Matrix OrbitObserver::DirectionCosMatrix1Axis double  _angle  ) 
 

Direction Cosine Matrix about the 1 axis.

Parameters:
_angle the single axis rotation angle
Returns:
_DCM 3x3 matrix

Definition at line 28 of file OrbitObserver.cpp.

References O_SESSAME::Matrix.

Referenced by ECEF2NEDVelocity(), and NED2ECEFVelocity().

Matrix OrbitObserver::DirectionCosMatrix2Axis double  _angle  ) 
 

Direction Cosine Matrix about the 2 axis.

Parameters:
_angle the single axis rotation angle
Returns:
_DCM 3x3 matrix

Definition at line 44 of file OrbitObserver.cpp.

References O_SESSAME::Matrix.

Referenced by ECEF2NEDVelocity(), and NED2ECEFVelocity().

Matrix OrbitObserver::DirectionCosMatrix3Axis double  _angle  ) 
 

Direction Cosine Matrix about the 3 axis.

Parameters:
_angle the single axis rotation angle
Returns:
_DCM 3x3 matrix

Definition at line 60 of file OrbitObserver.cpp.

References O_SESSAME::Matrix.

Referenced by ECEF2NEDVelocity(), and NED2ECEFVelocity().

Vector OrbitObserver::ECEF2ECI CAMdoubleVector  _ECEFVector,
double  _jDay
 

Referenced by GPSObserver::Run().

Vector OrbitObserver::ECEF2NEDVelocity double  _latitude,
double  _longitude,
double  _altitude,
double  _Vx,
double  _Vy,
double  _Vz
 

Convert from ECEF velocity (m/s) to NED velocity (m/s).

Equation:

\[ V_{NED} = DCM_{321}(\phi, \phi+\frac{\pi}{2}, 0 )V_{ECEF} \]

Parameters:
_latitude (rad)
_longitude (rad)
_altitude (m)
_Vx (m/s)
_Vy (m/s)
_Vz (m/s)
Returns:
_NEDVector (3x1) [ Vx, Vy, Vz ] (m/s)

Definition at line 217 of file OrbitObserver.cpp.

References _, DirectionCosMatrix1Axis(), DirectionCosMatrix2Axis(), DirectionCosMatrix3Axis(), O_SESSAME::Matrix, PI, and O_SESSAME::Vector.

Referenced by ECEF2WGS84().

Vector OrbitObserver::ECEF2WGS84 double  _x,
double  _y,
double  _z,
double  _Vx,
double  _Vy,
double  _Vz
 

Convert from ECEF position (m) and velocity (m/s) to WGS84 ( latitude (rad), longitude (rad), altitude (m) ).

Parameters:
_x (m)
_y (m)
_z (m)
_Vx (m/s)
_Vy (m/s)
_Vz (m/s)
Returns:
_WGS84Vector (6x1) [ latitude, longitude, altitude, velocity North, velocity East, velocity Down ] (rad, rad, m, m/s, m/s, m/s)

Definition at line 243 of file OrbitObserver.cpp.

References _, ECEF2NEDVelocity(), ECEFPosition2WGS84(), and O_SESSAME::Vector.

Vector OrbitObserver::ECEFPosition2WGS84 double  _x,
double  _y,
double  _z
 

Convert from ECEF position (m) to WGS84 ( latitude (rad), longitude (rad), altitude (m) ).

Equation: ( www.colorado.edu/geographyy/gcraft/notes/datum/datum_f.html )

\[ \phi = atan{ \left( \frac{ z+e^{'2}b\sin^2{\theta} }{ p-e^2 acos^2{\theta} } \right) } \]

\[ \lambda = atan{ \frac{y}{x} } \]

\[ h = \frac{p}{\cos{\phi}} - N(\phi) \]

where: $\phi, \lambda, h $ are the geodetic latitude, longitude, and height above ellipsoid

\[ p = \sqrt{x^2+y^2} \]

\[ \theta = atan \frac{ za }{ pb } \]

\[ e^{'2} = \frac{a^2-b^2}{b^2} \]

\[ N = \frac{a}{ \sqrt{ 1-e^2\sin^2{ \phi } } } \]

\[ e^2 = 2f-f^2 \]

Parameters:
_x (m)
_y (m)
_z (m)
Returns:
_WGS84Vector (3x1) [ latitude, longitude, altitude ] (rad, rad, m)

Definition at line 165 of file OrbitObserver.cpp.

References f(), and O_SESSAME::Vector.

Referenced by ECEF2WGS84().

void OrbitObserver::ECI2COE Vector  ECI,
Vector  VECI,
Keplerian myCOE,
double &  a,
double &  e,
double &  i,
double &  Lon,
double &  Arg,
double &  tru
 

Vector OrbitObserver::ECI2ECEF CAMdoubleVector  _ECIVector,
double  _jDay
 

virtual int OrbitObserver::Initialize  )  [pure virtual]
 

Initializes the observer (pure virtual function

Implemented in GPSObserver, and OrbitPropObserver.

double OrbitObserver::lat_lon double  latlon,
char  sector
 

Convert Latitude and Longitude in the form of DEG 'N/S' 'E/W' to +/-RAD.

Parameters:
latlon 
sector return value (+/-rad) of conversion.

Definition at line 322 of file OrbitObserver.cpp.

References O_SESSAME::Deg2Rad().

Vector OrbitObserver::NED2ECEFVelocity double  _latitude,
double  _longitude,
double  _altitude,
double  _velocityNorth,
double  _velocityEast,
double  _velocityDown
 

Convert from NED velocity (m/s) to ECEF velocity (m/s).

Equation:

\[ V_{ECEF} = DCM_{321}(\phi, -\phi-\frac{\pi}{2}, 0 )^{-1}V_{NED} \]

Parameters:
_latitude (rad)
_longitude (rad)
_altitude (m)
_velocityNorth (m/s)
_velocityEast (m/s)
_velocityDown (m/s)
Returns:
_ECEFVector (3x1) [ Vx, Vy, Vz ] (m/s)

Definition at line 109 of file OrbitObserver.cpp.

References _, DirectionCosMatrix1Axis(), DirectionCosMatrix2Axis(), DirectionCosMatrix3Axis(), O_SESSAME::Matrix, PI, and O_SESSAME::Vector.

Referenced by WGS842ECEF().

virtual int OrbitObserver::Run  )  [pure virtual]
 

Runs the observer (pure virtual function)

Implemented in GPSObserver, and OrbitPropObserver.

void OrbitObserver::TangentPlaneState AshtechG12_GPS_PhysicalDevice::Position  recPos,
CAMdoubleVector _WGS84Vector
 

Referenced by GPSObserver::Run().

Vector OrbitObserver::WGS2ECEFPosition double  _latitude,
double  _longitude,
double  _altitude
 

Convert from WGS84 ( latitude (rad), longitude (rad), altitude (m) ) to ECEF poisiton (m) ).

Parameters:
_latitude (rad)
_longitude (rad)
_altitude (m)

Definition at line 78 of file OrbitObserver.cpp.

References f(), and O_SESSAME::Vector.

Referenced by WGS842ECEF().

Vector OrbitObserver::WGS842ECEF double  _latitude,
double  _longitude,
double  _altitude,
double  _velocityNorth,
double  _velocityEast,
double  _velocityDown
 

Convert from WGS84 ( latitude (rad), longitude (rad), altitude (m) ) to ECEF poisiton (m) and velocity (m/s).

Parameters:
_latitude (rad)
_longitude (rad)
_altitude (m)
_velocityNorth (m/s)
_velocityEast (m/s)
_velocityDown (m/s)
Returns:
_ECEFVector (6x1) [ x, y, z, Vx, Vy, Vz ] (m & m/s)

Definition at line 134 of file OrbitObserver.cpp.

References _, NED2ECEFVelocity(), O_SESSAME::Vector, and WGS2ECEFPosition().

Referenced by GPSObserver::Run().


The documentation for this class was generated from the following files:
Generated on Wed Sep 5 12:54:41 2007 for DSACSS Operational Code by  doxygen 1.3.9.1