EngEphemeris Class Reference
[Ephemeris calculations]

#include <EngEphemeris.hpp>

Inheritance diagram for EngEphemeris:

Inheritance graph
[legend]
Collaboration diagram for EngEphemeris:

Collaboration graph
[legend]
List of all members.

Detailed Description

Ephemeris information for a single satellite.

This class encapsulates the ephemeris navigation message (subframes 1-3) and provides functions to decode the as-broadcast ephemerides.

Definition at line 70 of file EngEphemeris.hpp.

Public Member Functions

 EngEphemeris () throw ()
 Default constructor.
virtual ~EngEphemeris ()
 Destructor.
bool addSubframe (const long subframe[10], const int gpsWeek, short PRN, short track) throw (gpstk::InvalidParameter)
 Store a subframe in this object.
bool addSubframeNoParity (const long subframe[10], const long gpsWeek, const short PRN, const short track) throw (gpstk::InvalidParameter)
 Store a subframe in this object.
bool addIncompleteSF1Thru3 (const long sf1[8], const long sf2[8], const long sf3[8], const long sf1TransmitSOW, const int gpsWeek, const short PRN, const short track)
 Store a subframe in this object.
bool isData (short subframe) const throw (gpstk::InvalidRequest)
 Query presence of subframe in this object.
void setAccuracy (const double &acc) throw (gpstk::InvalidParameter)
 Set the value of the SV accuracy (in meters).
short getFitInterval () const throw (gpstk::InvalidRequest)
 This computes and returns the fit interval for the satellite ephemeris from the IODC and the fit interval flag.
unsigned char getTLMPreamble () const throw ()
 Return 0x8b, the upper 5 bits of the 22-bit TLM word.
unsigned getTLMMessage (short subframe) const throw (gpstk::InvalidRequest)
 Return the lower 16 bits of the TLM word for the given subframe.
DayTime getEphemerisEpoch () const throw (InvalidRequest)
 Extracts the epoch time from this ephemeris, correcting for half weeks and HOW time.
DayTime getEpochTime () const throw (gpstk::InvalidRequest)
 Extracts the epoch time (time of clock) from this ephemeris, correcting for half weeks and HOW time.
DayTime getTransmitTime () const throw (gpstk::InvalidRequest)
 Extracts the transmit time from the ephemeris using the Tot.
DayTime getTimestamp () const throw (gpstk::InvalidRequest)
 used for template functions
short getPRNID () const throw (gpstk::InvalidRequest)
 This function returns the PRN ID of the SV.
short getTracker () const throw (gpstk::InvalidRequest)
 This function returns the tracker number.
double getHOWTime (short subframe) const throw (gpstk::InvalidRequest)
 This function returns the time of the HOW in subframe 1 or 2 or 3 in seconds of week.
short getASAlert (short subframe) const throw (gpstk::InvalidRequest)
 This function returns the A-S alert flag for either subframe 1 or 2 or 3.
short getFullWeek () const throw (gpstk::InvalidRequest)
 This function return the GPS week number for the ephemeris.
short getCodeFlags () const throw (gpstk::InvalidRequest)
 This function returns the values of the L2 codes.
double getAccuracy () const throw (gpstk::InvalidRequest)
 This function returns the value of the SV accuracy (m) computed from the accuracy flag in the nav message, or as set by the setAccuracy() method.
short getAccFlag () const throw (gpstk::InvalidRequest)
 This function returns the flag based on the SV accuracy flag as it appears in the nav message.
short getHealth () const throw (gpstk::InvalidRequest)
 This function returns the value of the SV health flag.
short getL2Pdata () const throw (gpstk::InvalidRequest)
 This function returns the value of the L2 P-code data flag.
short getIODC () const throw (gpstk::InvalidRequest)
 This function returns the IODC for the given PRN.
short getIODE () const throw (gpstk::InvalidRequest)
 This function return the IODE for the ephemeris.
long getAODO () const throw (gpstk::InvalidRequest)
 This function return the AODO for the ephemeris.
double getToc () const throw (gpstk::InvalidRequest)
 This function returns the clock epoch in GPS seconds of week.
double getAf0 () const throw (gpstk::InvalidRequest)
 This function returns the SV clock error in seconds.
double getAf1 () const throw (gpstk::InvalidRequest)
 This function returns the SV clock drift in seconds/seconds.
double getAf2 () const throw (gpstk::InvalidRequest)
 This function returns the SV clock rate of change of the drift in seconds/(seconds*seconds).
double getTgd () const throw (gpstk::InvalidRequest)
 This function returns the value of the group delay differential in seconds.
double getCus () const throw (gpstk::InvalidRequest)
 This function returns the value of the sine latitude harmonic perturbation in radians.
double getCrs () const throw (gpstk::InvalidRequest)
 This function returns the value of the sine radius harmonic perturbation in meters.
double getCis () const throw (gpstk::InvalidRequest)
 This function returns the value of the sine inclination harmonic perturbation in radians.
double getCrc () const throw (gpstk::InvalidRequest)
 This function returns the value of the cosine radius harmonic perturbation in meters.
double getCuc () const throw (gpstk::InvalidRequest)
 This function returns the value of the cosine latitude harmonic perturbation in radians.
double getCic () const throw (gpstk::InvalidRequest)
 This function returns the value of the cosine inclination harmonic perturbation in radians.
double getToe () const throw (gpstk::InvalidRequest)
 This function returns the value of the time of ephemeris in GPS seconds of week.
double getM0 () const throw (gpstk::InvalidRequest)
 This function returns the value of the mean anomaly in radians.
double getDn () const throw (gpstk::InvalidRequest)
 This function returns the value of the correction to the mean motion in radians/second.
double getEcc () const throw (gpstk::InvalidRequest)
 This function returns the value of the eccentricity.
double getAhalf () const throw (gpstk::InvalidRequest)
 This function returns the value of the square root of the semi-major axis in square root of meters.
double getA () const throw (gpstk::InvalidRequest)
 This function returns the value of the semi-major axis in meters.
double getOmega0 () const throw (gpstk::InvalidRequest)
 This function returns the value of the right ascension of the ascending node in radians.
double getI0 () const throw (gpstk::InvalidRequest)
 This function returns the value of the inclination in radians.
double getW () const throw (gpstk::InvalidRequest)
 This function returns the value of the argument of perigee in radians.
double getOmegaDot () const throw (gpstk::InvalidRequest)
 This function returns the value of the rate of the right ascension of the ascending node in radians/second.
double getIDot () const throw (gpstk::InvalidRequest)
 This function returns the value of the rate of the inclination in radians/second.
Xvt svXvt (const DayTime &t) const throw (gpstk::InvalidRequest)
 Compute satellite velocity/position at the given time using this ephemeris.
double svRelativity (const DayTime &t) const throw (gpstk::InvalidRequest)
 Compute satellite relativity correction (sec) at the given time
Exceptions:
InvalidRequest if a required subframe has not been stored.

double svClockBias (const DayTime &t) const throw (gpstk::InvalidRequest)
 Compute the satellite clock bias (sec) at the given time
Exceptions:
InvalidRequest if a required subframe has not been stored.

double svClockDrift (const DayTime &t) const throw (gpstk::InvalidRequest)
 Compute the satellite clock drift (sec/sec) at the given time
Exceptions:
InvalidRequest if a required subframe has not been stored.

short getFitInt () const throw (gpstk::InvalidRequest)
 This function returns the value of the fit interval flag.
double getEphkey () const throw (gpstk::InvalidRequest)
 This function returns the value of the ephemeris key that is used to sort the ephemerides when they are stored in the bcetable.
long getTot () const throw (gpstk::InvalidRequest)
 This function returnst the value of the Time of Transmit.
EngEphemerissetSF1 (unsigned tlm, double how, short asalert, short fullweek, short cflags, short acc, short svhealth, short iodc, short l2pdata, double tgd, double toc, double Af2, double Af1, double Af0, short Tracker, short prn) throw ()
 Set the values contained in SubFrame 1.
EngEphemerissetSF2 (unsigned tlm, double how, short asalert, short iode, double crs, double Dn, double m0, double cuc, double Ecc, double cus, double ahalf, double toe, short fitInt) throw ()
 Set the values contained in SubFrame 2.
EngEphemerissetSF3 (unsigned tlm, double how, short asalert, double cic, double Omega0, double cis, double I0, double crc, double W, double OmegaDot, double IDot) throw ()
 Set the values contained in SubFrame 2.
void dump (std::ostream &s=std::cout) const
 Output the contents of this ephemeris to the given stream.

Protected Attributes

bool haveSubframe [3]
 flags indicating presence of a subframe
unsigned short tlm_message [3]
short PRNID
 SV PRN ID.
short tracker
 Tracker number.
long HOWtime [3]
 Time of subframe 1-3 (sec of week).
short ASalert [3]
 A-S and "alert" flags for each subframe.
short weeknum
 GPS full week number that corresponds to the HOWtime of SF1.
short codeflags
 L2 codes.
double accuracy
 SV accuracy (m).
short accFlag
 User Range Accuracy (URA) the accuracy flag.
short health
 SV health.
short L2Pdata
 L2 P data flag.
short IODC
 Index of data-clock.
short IODE
 Index of data-eph.
long AODO
 Age of Data Offset for NMCT.
double Toc
 Clock epoch (sec of week).
double af0
 SV clock error (sec).
double af1
 SV clock drift (sec/sec).
double af2
 SV clock drift rate (sec/sec**2).
double Tgd
 Group delay differential (sec).
double Cuc
 Cosine latitude (rad).
double Cus
 Sine latitude (rad).
double Crc
 Cosine radius (m).
double Crs
 Sine radius (m).
double Cic
 Cosine inclination (rad).
double Cis
 Sine inclination (rad).
double Toe
 Ephemeris epoch (sec of week).
double M0
 Mean anomaly (rad).
double dn
 Correction to mean motion (rad/sec).
double ecc
 Eccentricity.
double Ahalf
 SQRT of semi-major axis (m**1/2).
double OMEGA0
 Rt ascension of ascending node (rad).
double i0
 Inclination (rad).
double w
 Argument of perigee (rad).
double OMEGAdot
 Rate of Rt ascension (rad/sec).
double idot
 Rate of inclination angle (rad/sec).
short fitint
 Fit interval flag.

Friends

std::ostream & operator<< (std::ostream &s, const EngEphemeris &eph)


Constructor & Destructor Documentation

EngEphemeris  )  throw ()
 

Default constructor.

Definition at line 63 of file EngEphemeris.cpp.

References EngEphemeris::accFlag, EngEphemeris::accuracy, EngEphemeris::af0, EngEphemeris::af1, EngEphemeris::af2, EngEphemeris::Ahalf, EngEphemeris::ASalert, EngEphemeris::Cic, EngEphemeris::Cis, EngEphemeris::codeflags, EngEphemeris::Crc, EngEphemeris::Crs, EngEphemeris::Cuc, EngEphemeris::Cus, EngEphemeris::dn, EngEphemeris::ecc, EngEphemeris::fitint, EngEphemeris::haveSubframe, EngEphemeris::health, EngEphemeris::HOWtime, EngEphemeris::i0, EngEphemeris::idot, EngEphemeris::IODC, EngEphemeris::IODE, EngEphemeris::L2Pdata, EngEphemeris::M0, EngEphemeris::OMEGA0, EngEphemeris::OMEGAdot, EngEphemeris::PRNID, EngEphemeris::Tgd, EngEphemeris::tlm_message, EngEphemeris::Toc, EngEphemeris::Toe, EngEphemeris::tracker, EngEphemeris::w, and EngEphemeris::weeknum.

virtual ~EngEphemeris  )  [inline, virtual]
 

Destructor.

Definition at line 77 of file EngEphemeris.hpp.


Member Function Documentation

bool addIncompleteSF1Thru3 const long  sf1[8],
const long  sf2[8],
const long  sf3[8],
const long  sf1TransmitSOW,
const int  gpsWeek,
const short  PRN,
const short  track
 

Store a subframe in this object.

This method is provided in order to provide a path to a EngEphemeris object for cases where a receiver only provides words 3-10 of subframes 1-3.

Note:
: It is important to appropriately determine the transmit time of the data. The parameters sf1TransmitSOW and gpsWeek should be consistent and should represent the time when the data in sf1, sf2, and sf3 were received. As a general rule, the transmit time should be somewhere in the range of 0-2 hours BEFORE the epoch time of the ephemeris.

: EngEphemeris objects built via this method will not contain valid TLM message data, A-S flags, and "Alert" bits. Methods getTLMMesage() and getASAlert() should not be used.

Parameters:
sf1 words 3-10 of navigation subframe1 stored in the 30 least-significant bits of each array index.
sf2 words 3-10 of navigation subframe 2
sf3 words 3-10 of navigation subframe 3
sf1TransmitSOW time (in GPS seconds of week) corresponding to leading edge of first bit of subframe 1
gpsWeek full GPS week number.
PRN PRN ID of source satellite.
track tracker number (typically receiver channel number).
Returns:
true if successful.

Definition at line 182 of file EngEphemeris.cpp.

References EngEphemeris::accFlag, EngEphemeris::accuracy, EngEphemeris::af0, EngEphemeris::af1, EngEphemeris::af2, EngEphemeris::Ahalf, EngEphemeris::ASalert, EngEphemeris::Cic, EngEphemeris::Cis, EngEphemeris::codeflags, EngEphemeris::Crc, EngEphemeris::Crs, EngEphemeris::Cuc, EngEphemeris::Cus, EngEphemeris::dn, EngEphemeris::ecc, EngEphemeris::fitint, EngEphemeris::haveSubframe, EngEphemeris::health, EngEphemeris::HOWtime, EngEphemeris::i0, EngEphemeris::idot, EngEphemeris::IODC, EngEphemeris::IODE, EngEphemeris::L2Pdata, EngEphemeris::M0, EngEphemeris::OMEGA0, EngEphemeris::OMEGAdot, EngEphemeris::PRNID, EngNav::subframeConvert(), EngEphemeris::Tgd, EngEphemeris::tlm_message, EngEphemeris::Toc, EngEphemeris::Toe, EngEphemeris::tracker, gpstk::ura2accuracy(), EngEphemeris::w, and EngEphemeris::weeknum.

Referenced by MinSfTest::process().

bool addSubframe const long  subframe[10],
const int  gpsWeek,
short  PRN,
short  track
throw (gpstk::InvalidParameter)
 

Store a subframe in this object.

Parameters:
subframe ten word navigation subframe stored in the 30 least-significant bits of each array index.
gpsWeek full GPS week number.
PRN PRN ID of source satellite.
track tracking number (typically receiver channel number).
Returns:
true if successful.
Exceptions:
InvalidParameter if subframe is valid but not subframe 1-3.

Definition at line 83 of file EngEphemeris.cpp.

References GPSTK_THROW, and gpstk::ura2accuracy().

Referenced by gpstk::makeEngEphemeris(), FICData::operator EngEphemeris(), and NovatelData::operator RinexNavData().

bool addSubframeNoParity const long  subframe[10],
const long  gpsWeek,
const short  PRN,
const short  track
throw (gpstk::InvalidParameter)
 

Store a subframe in this object.

This method is provided in order to allow construction of an EngEphemeris object for cases where a receiver only provides the 24 msb of each word and strips the parity.l

Parameters:
subframe ten word navigation subframe (minus the six parity bits) stored in the 24 least-significant bits of each array index.
gpsWeek full GPS week number.
PRN PRN ID of source satellite.
track tracking number (typically receiver channel number).
Returns:
true if successful.
Exceptions:
InvalidParameter if subframe is valid but not subframe 1-3.

Definition at line 161 of file EngEphemeris.cpp.

void dump std::ostream &  s = std::cout  )  const
 

Output the contents of this ephemeris to the given stream.

Definition at line 1225 of file EngEphemeris.cpp.

References EngEphemeris::accFlag, EngEphemeris::af0, EngEphemeris::af1, EngEphemeris::af2, EngEphemeris::Ahalf, EngEphemeris::ASalert, EngEphemeris::Cic, EngEphemeris::Cis, EngEphemeris::Crc, EngEphemeris::Crs, EngEphemeris::Cuc, EngEphemeris::Cus, EngEphemeris::dn, EngEphemeris::ecc, EngEphemeris::fitint, EngEphemeris::getEphemerisEpoch(), EngEphemeris::getEpochTime(), EngEphemeris::getFitInt(), DayTime::GPSsecond(), EngEphemeris::health, EngEphemeris::HOWtime, EngEphemeris::i0, EngEphemeris::idot, EngEphemeris::L2Pdata, EngEphemeris::M0, EngEphemeris::OMEGA0, EngEphemeris::OMEGAdot, EngEphemeris::PRNID, EngEphemeris::Tgd, EngEphemeris::w, and EngEphemeris::weeknum.

Referenced by gpstk::operator<<().

double getA  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the semi-major axis in meters.

Definition at line 981 of file EngEphemeris.cpp.

References EngEphemeris::Ahalf, GPSTK_THROW, and EngEphemeris::haveSubframe.

short getAccFlag  )  const throw (gpstk::InvalidRequest)
 

This function returns the flag based on the SV accuracy flag as it appears in the nav message.

Definition at line 739 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), ComputeIURAWeights::getWeight(), SimpleIURAWeight::getWeights(), and MinSfTest::process().

double getAccuracy  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the SV accuracy (m) computed from the accuracy flag in the nav message, or as set by the setAccuracy() method.

Definition at line 728 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by MinSfTest::process(), and RinexNavData::RinexNavData().

double getAf0  )  const throw (gpstk::InvalidRequest)
 

This function returns the SV clock error in seconds.

Definition at line 816 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getAf1  )  const throw (gpstk::InvalidRequest)
 

This function returns the SV clock drift in seconds/seconds.

Definition at line 827 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getAf2  )  const throw (gpstk::InvalidRequest)
 

This function returns the SV clock rate of change of the drift in seconds/(seconds*seconds).

Definition at line 838 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getAhalf  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the square root of the semi-major axis in square root of meters.

Definition at line 970 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

long getAODO  )  const throw (gpstk::InvalidRequest)
 

This function return the AODO for the ephemeris.

Definition at line 794 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

short getASAlert short  subframe  )  const throw (gpstk::InvalidRequest)
 

This function returns the A-S alert flag for either subframe 1 or 2 or 3.

Definition at line 694 of file EngEphemeris.cpp.

References GPSTK_THROW.

Referenced by FICData9::firstFiveItems().

double getCic  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the cosine inclination harmonic perturbation in radians.

Definition at line 915 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getCis  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the sine inclination harmonic perturbation in radians.

Definition at line 882 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

short getCodeFlags  )  const throw (gpstk::InvalidRequest)
 

This function returns the values of the L2 codes.

Definition at line 717 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), MinSfTest::process(), and RinexNavData::RinexNavData().

double getCrc  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the cosine radius harmonic perturbation in meters.

Definition at line 893 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getCrs  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the sine radius harmonic perturbation in meters.

Definition at line 871 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getCuc  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the cosine latitude harmonic perturbation in radians.

Definition at line 904 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getCus  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the sine latitude harmonic perturbation in radians.

Definition at line 860 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getDn  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the correction to the mean motion in radians/second.

Definition at line 948 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getEcc  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the eccentricity.

Definition at line 959 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

DayTime getEphemerisEpoch  )  const throw (InvalidRequest)
 

Extracts the epoch time from this ephemeris, correcting for half weeks and HOW time.

Definition at line 645 of file EngEphemeris.cpp.

References EngEphemeris::getFullWeek(), EngEphemeris::getHOWTime(), EngEphemeris::getToe(), and DayTime::setGPSfullweek().

Referenced by EngEphemeris::dump().

double getEphkey  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the ephemeris key that is used to sort the ephemerides when they are stored in the bcetable.

DayTime getEpochTime  )  const throw (gpstk::InvalidRequest)
 

Extracts the epoch time (time of clock) from this ephemeris, correcting for half weeks and HOW time.

Definition at line 632 of file EngEphemeris.cpp.

References EngEphemeris::getFullWeek(), EngEphemeris::getHOWTime(), EngEphemeris::getToc(), and DayTime::setGPSfullweek().

Referenced by GPSEphemerisStore::dump(), EngEphemeris::dump(), MinSfTest::process(), and RinexNavData::RinexNavData().

short getFitInt  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the fit interval flag.

Definition at line 1047 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by EngEphemeris::dump(), FICData9::FICData9(), EngEphemeris::getFitInterval(), and MinSfTest::process().

short getFitInterval  )  const throw (gpstk::InvalidRequest)
 

This computes and returns the fit interval for the satellite ephemeris from the IODC and the fit interval flag.

This fit interval is (typciallY) centered around the Toe (time of ephemeris) for the ephemeris. See IS-GPS-200 section 20.3.4.4, Table 20-XIA and section 20.3.3.4.3.1 for more information.

Returns:
the fit interval in hours (0 = failure).
Exceptions:
InvalidRequest if data is missing.

Definition at line 522 of file EngEphemeris.cpp.

References EngEphemeris::getFitInt(), and EngEphemeris::getIODC().

Referenced by GPSEphemerisStore::findNearEphemeris(), GPSEphemerisStore::findUserEphemeris(), MinSfTest::process(), and RinexNavData::RinexNavData().

short getFullWeek  )  const throw (gpstk::InvalidRequest)
 

This function return the GPS week number for the ephemeris.

this is the full GPS week (ie > 10 bits).

Definition at line 706 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by EngEphemeris::getEphemerisEpoch(), EngEphemeris::getEpochTime(), EngEphemeris::getTransmitTime(), and RinexNavData::RinexNavData().

short getHealth  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the SV health flag.

Definition at line 750 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), GPSEphemerisStore::getSatHealth(), MinSfTest::process(), and RinexNavData::RinexNavData().

double getHOWTime short  subframe  )  const throw (gpstk::InvalidRequest)
 

This function returns the time of the HOW in subframe 1 or 2 or 3 in seconds of week.

Definition at line 680 of file EngEphemeris.cpp.

References GPSTK_THROW.

Referenced by FICData9::firstFiveItems(), EngEphemeris::getEphemerisEpoch(), EngEphemeris::getEpochTime(), EngEphemeris::getTot(), and RinexNavData::RinexNavData().

double getI0  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the inclination in radians.

Definition at line 1003 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getIDot  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the rate of the inclination in radians/second.

Definition at line 1036 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

short getIODC  )  const throw (gpstk::InvalidRequest)
 

This function returns the IODC for the given PRN.

Definition at line 772 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), EngEphemeris::getFitInterval(), GPSEphemerisStore::getXvt(), MinSfTest::process(), and RinexNavData::RinexNavData().

short getIODE  )  const throw (gpstk::InvalidRequest)
 

This function return the IODE for the ephemeris.

Definition at line 783 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), MinSfTest::process(), and RinexNavData::RinexNavData().

short getL2Pdata  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the L2 P-code data flag.

Definition at line 761 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), MinSfTest::process(), and RinexNavData::RinexNavData().

double getM0  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the mean anomaly in radians.

Definition at line 937 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getOmega0  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the right ascension of the ascending node in radians.

Definition at line 992 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getOmegaDot  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the rate of the right ascension of the ascending node in radians/second.

Definition at line 1025 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

short getPRNID  )  const throw (gpstk::InvalidRequest)
 

This function returns the PRN ID of the SV.

Definition at line 658 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

double getTgd  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the group delay differential in seconds.

Definition at line 849 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), ModelObsFixedStation::getTGDCorrections(), ModeledReferencePR::getTGDCorrections(), BasicModel::getTGDCorrections(), and RinexNavData::RinexNavData().

DayTime getTimestamp  )  const throw (gpstk::InvalidRequest) [inline]
 

used for template functions

Definition at line 199 of file EngEphemeris.hpp.

unsigned getTLMMessage short  subframe  )  const throw (gpstk::InvalidRequest)
 

Return the lower 16 bits of the TLM word for the given subframe.

Definition at line 612 of file EngEphemeris.cpp.

References GPSTK_THROW.

Referenced by FICData9::firstFiveItems().

unsigned char getTLMPreamble  )  const throw () [inline]
 

Return 0x8b, the upper 5 bits of the 22-bit TLM word.

Definition at line 181 of file EngEphemeris.hpp.

double getToc  )  const throw (gpstk::InvalidRequest)
 

This function returns the clock epoch in GPS seconds of week.

Definition at line 805 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), EngEphemeris::getEpochTime(), and RinexNavData::RinexNavData().

double getToe  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the time of ephemeris in GPS seconds of week.

Definition at line 926 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), EngEphemeris::getEphemerisEpoch(), and RinexNavData::RinexNavData().

long getTot  )  const throw (gpstk::InvalidRequest)
 

This function returnst the value of the Time of Transmit.

Basically just the earliest of the HOWs.

Definition at line 1058 of file EngEphemeris.cpp.

References EngEphemeris::getHOWTime(), GPSTK_THROW, EngEphemeris::haveSubframe, and gpstk::min().

Referenced by EngEphemeris::getTransmitTime().

short getTracker  )  const throw (gpstk::InvalidRequest)
 

This function returns the tracker number.

Definition at line 669 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9().

DayTime getTransmitTime  )  const throw (gpstk::InvalidRequest)
 

Extracts the transmit time from the ephemeris using the Tot.

Definition at line 624 of file EngEphemeris.cpp.

References EngEphemeris::getFullWeek(), EngEphemeris::getTot(), and DayTime::setGPSfullweek().

Referenced by GPSEphemerisStore::addEphemeris(), FICData9::FICData9(), GPSEphemerisStore::findNearEphemeris(), GPSEphemerisStore::findUserEphemeris(), and MinSfTest::process().

double getW  )  const throw (gpstk::InvalidRequest)
 

This function returns the value of the argument of perigee in radians.

Definition at line 1014 of file EngEphemeris.cpp.

References GPSTK_THROW, and EngEphemeris::haveSubframe.

Referenced by FICData9::FICData9(), and RinexNavData::RinexNavData().

bool isData short  subframe  )  const throw (gpstk::InvalidRequest)
 

Query presence of subframe in this object.

Parameters:
subframe subframe ID (1-3) to check.
Returns:
true if the given subframe is present in this object.
Exceptions:
InvalidParameter if subframe is not a valid ephemeris subframe number.

Definition at line 285 of file EngEphemeris.cpp.

References GPSTK_THROW.

Referenced by gpstk::makeEngEphemeris(), and MinSfTest::process().

void setAccuracy const double &  acc  )  throw (gpstk::InvalidParameter)
 

Set the value of the SV accuracy (in meters).

This is the only "set" method and is provided so that one can set the SV accuracy directly and thereby override the conversion of the SV accuracy flag to meters. This is usually used when entering data from some source other than an SV nav message.

Note:
Subsequent use of the addSubframe(), with subframe 1 info, or the setSF1() methods will overwrite any value set using this method.

This function converts the given accuracy to the appropriate SV accuracy flag and stores it in the accFlag data member.

Parameters:
acc the new value of SV accuracy in meters.
Exceptions:
InvalidParameter if the given accuracy value is invalid.

Definition at line 298 of file EngEphemeris.cpp.

References gpstk::accuracy2ura(), and GPSTK_THROW.

Referenced by RinexNavData::operator EngEphemeris().

EngEphemeris & setSF1 unsigned  tlm,
double  how,
short  asalert,
short  fullweek,
short  cflags,
short  acc,
short  svhealth,
short  iodc,
short  l2pdata,
double  tgd,
double  toc,
double  Af2,
double  Af1,
double  Af0,
short  Tracker,
short  prn
throw ()
 

Set the values contained in SubFrame 1.

Parameters:
tlm the new value for the TLM word
how the new value for the HOW
asalert the new falue for the A-S alert flag
fullweek the new value for the full GPS week
cflags the nve values for the L2 code flags
acc the new value for the SV accuracy flag
svhealth the new value for the SV health
iodc the new value for the IODC
l2pdata the new value for the L2 P-code data flag
tgd the new value for the Tgd
toc the new value for the clock epoch
Af2 the new value for Af2
Af1 the new value for Af1
Af0 the new value for Af0
Tracker the new value of the tracker number
prn the new value of the PRN ID
Returns:
a reference to the modified EngEphemeris object

Definition at line 1092 of file EngEphemeris.cpp.

References gpstk::ura2accuracy().

Referenced by RinexNavData::operator EngEphemeris(), and FICData::operator EngEphemeris().

EngEphemeris & setSF2 unsigned  tlm,
double  how,
short  asalert,
short  iode,
double  crs,
double  Dn,
double  m0,
double  cuc,
double  Ecc,
double  cus,
double  ahalf,
double  toe,
short  fitInt
throw ()
 

Set the values contained in SubFrame 2.

Parameters:
tlm the new value for the TLM word
how the new value for the HOW
asalert the new falue for the A-S alert flag
iode the new value for the IODE
crs the new value for the Crs
m0 the new value for M0
Dn the new value for Dn
cuc the new value for the Cuc
Ecc the new value for the Ecc
cus the new value for the Cus
ahalf the new value for Ahalf
toe the new value for the Toe
fitInt the new value for the fit interval flag
Returns:
a reference to the modified EngEphemeris object

Definition at line 1123 of file EngEphemeris.cpp.

Referenced by RinexNavData::operator EngEphemeris(), and FICData::operator EngEphemeris().

EngEphemeris & setSF3 unsigned  tlm,
double  how,
short  asalert,
double  cic,
double  Omega0,
double  cis,
double  I0,
double  crc,
double  W,
double  OmegaDot,
double  IDot
throw ()
 

Set the values contained in SubFrame 2.

Parameters:
tlm the new value for the TLM word
how the new value for the HOW
asalert the new falue for the A-S alert flag
cic the new value for the Cic
Omega0 the enw value for Omega0
cis the new value for the Cis
I0 the new value for I0
crc the new value for the Crc
W the new value for W
OmegaDot the new value for OmegaDot
IDot the new value for IDot
Returns:
a reference to the modified EngEphemeris object

Definition at line 1148 of file EngEphemeris.cpp.

Referenced by RinexNavData::operator EngEphemeris(), and FICData::operator EngEphemeris().

double svClockBias const DayTime t  )  const throw (gpstk::InvalidRequest)
 

Compute the satellite clock bias (sec) at the given time

Exceptions:
InvalidRequest if a required subframe has not been stored.

Definition at line 503 of file EngEphemeris.cpp.

double svClockDrift const DayTime t  )  const throw (gpstk::InvalidRequest)
 

Compute the satellite clock drift (sec/sec) at the given time

Exceptions:
InvalidRequest if a required subframe has not been stored.

Definition at line 513 of file EngEphemeris.cpp.

double svRelativity const DayTime t  )  const throw (gpstk::InvalidRequest)
 

Compute satellite relativity correction (sec) at the given time

Exceptions:
InvalidRequest if a required subframe has not been stored.

Definition at line 474 of file EngEphemeris.cpp.

References GPSGeoid::gm(), and gpstk::REL_CONST.

Xvt svXvt const DayTime t  )  const throw (gpstk::InvalidRequest)
 

Compute satellite velocity/position at the given time using this ephemeris.

Exceptions:
InvalidRequest if a required subframe has not been stored.

Definition at line 311 of file EngEphemeris.cpp.

References GPSGeoid::angVelocity(), Xvt::ddtime, Xvt::dtime, GPSGeoid::gm(), gpstk::REL_CONST, Xvt::v, and Xvt::x.

Referenced by GPSEphemerisStore::getXvt().


Friends And Related Function Documentation

std::ostream& operator<< std::ostream &  s,
const EngEphemeris eph
[friend]
 


Member Data Documentation

short accFlag [protected]
 

User Range Accuracy (URA) the accuracy flag.

Definition at line 450 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double accuracy [protected]
 

SV accuracy (m).

Definition at line 449 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), and EngEphemeris::EngEphemeris().

double af0 [protected]
 

SV clock error (sec).

Definition at line 461 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double af1 [protected]
 

SV clock drift (sec/sec).

Definition at line 462 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double af2 [protected]
 

SV clock drift rate (sec/sec**2).

Definition at line 463 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double Ahalf [protected]
 

SQRT of semi-major axis (m**1/2).

Definition at line 483 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), EngEphemeris::EngEphemeris(), and EngEphemeris::getA().

long AODO [protected]
 

Age of Data Offset for NMCT.

Definition at line 455 of file EngEphemeris.hpp.

short ASalert[3] [protected]
 

A-S and "alert" flags for each subframe.

Definition at line 446 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double Cic [protected]
 

Cosine inclination (rad).

Definition at line 473 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double Cis [protected]
 

Sine inclination (rad).

Definition at line 474 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

short codeflags [protected]
 

L2 codes.

Definition at line 448 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), and EngEphemeris::EngEphemeris().

double Crc [protected]
 

Cosine radius (m).

Definition at line 471 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double Crs [protected]
 

Sine radius (m).

Definition at line 472 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double Cuc [protected]
 

Cosine latitude (rad).

Definition at line 469 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double Cus [protected]
 

Sine latitude (rad).

Definition at line 470 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double dn [protected]
 

Correction to mean motion (rad/sec).

Definition at line 481 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double ecc [protected]
 

Eccentricity.

Definition at line 482 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

short fitint [protected]
 

Fit interval flag.

Definition at line 489 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

bool haveSubframe[3] [protected]
 

flags indicating presence of a subframe

Definition at line 438 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::EngEphemeris(), EngEphemeris::getA(), EngEphemeris::getAccFlag(), EngEphemeris::getAccuracy(), EngEphemeris::getAf0(), EngEphemeris::getAf1(), EngEphemeris::getAf2(), EngEphemeris::getAhalf(), EngEphemeris::getAODO(), EngEphemeris::getCic(), EngEphemeris::getCis(), EngEphemeris::getCodeFlags(), EngEphemeris::getCrc(), EngEphemeris::getCrs(), EngEphemeris::getCuc(), EngEphemeris::getCus(), EngEphemeris::getDn(), EngEphemeris::getEcc(), EngEphemeris::getFitInt(), EngEphemeris::getFullWeek(), EngEphemeris::getHealth(), EngEphemeris::getI0(), EngEphemeris::getIDot(), EngEphemeris::getIODC(), EngEphemeris::getIODE(), EngEphemeris::getL2Pdata(), EngEphemeris::getM0(), EngEphemeris::getOmega0(), EngEphemeris::getOmegaDot(), EngEphemeris::getPRNID(), EngEphemeris::getTgd(), EngEphemeris::getToc(), EngEphemeris::getToe(), EngEphemeris::getTot(), EngEphemeris::getTracker(), and EngEphemeris::getW().

short health [protected]
 

SV health.

Definition at line 451 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

long HOWtime[3] [protected]
 

Time of subframe 1-3 (sec of week).

Definition at line 445 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double i0 [protected]
 

Inclination (rad).

Definition at line 485 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double idot [protected]
 

Rate of inclination angle (rad/sec).

Definition at line 488 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

short IODC [protected]
 

Index of data-clock.

Definition at line 453 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), and EngEphemeris::EngEphemeris().

short IODE [protected]
 

Index of data-eph.

Definition at line 454 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), and EngEphemeris::EngEphemeris().

short L2Pdata [protected]
 

L2 P data flag.

Definition at line 452 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double M0 [protected]
 

Mean anomaly (rad).

Definition at line 480 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double OMEGA0 [protected]
 

Rt ascension of ascending node (rad).

Definition at line 484 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double OMEGAdot [protected]
 

Rate of Rt ascension (rad/sec).

Definition at line 487 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

short PRNID [protected]
 

SV PRN ID.

Definition at line 443 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

double Tgd [protected]
 

Group delay differential (sec).

Definition at line 464 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

unsigned short tlm_message[3] [protected]
 

Definition at line 442 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), and EngEphemeris::EngEphemeris().

double Toc [protected]
 

Clock epoch (sec of week).

Definition at line 460 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), and EngEphemeris::EngEphemeris().

double Toe [protected]
 

Ephemeris epoch (sec of week).

Definition at line 479 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), and EngEphemeris::EngEphemeris().

short tracker [protected]
 

Tracker number.

Definition at line 444 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), and EngEphemeris::EngEphemeris().

double w [protected]
 

Argument of perigee (rad).

Definition at line 486 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().

short weeknum [protected]
 

GPS full week number that corresponds to the HOWtime of SF1.

Definition at line 447 of file EngEphemeris.hpp.

Referenced by EngEphemeris::addIncompleteSF1Thru3(), EngEphemeris::dump(), and EngEphemeris::EngEphemeris().


The documentation for this class was generated from the following files:
Generated on Wed Feb 8 03:31:37 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1