Public Member Functions | Public Attributes | Static Public Attributes | List of all members
gnsstk::OrbitDataKepler Class Referenceabstract

Detailed Description

Base class for orbit information that uses Keplerian parameters.

Definition at line 52 of file OrbitDataKepler.hpp.

#include <OrbitDataKepler.hpp>

Inheritance diagram for gnsstk::OrbitDataKepler:
Inheritance graph
[legend]

Public Member Functions

std::list< std::string > compare (const NavDataPtr &right) const override
 
void dump (std::ostream &s, DumpDetail dl) const override
 
virtual void dumpClock (std::ostream &s) const
 
virtual void dumpHarmonics (std::ostream &s) const
 
virtual void dumpOrbit (std::ostream &s) const
 
virtual void dumpSVStatus (std::ostream &s) const
 
virtual std::string getDataType () const
 
CommonTime getNearTime () const override
 
bool getXvt (const CommonTime &when, const EllipsoidModel &ell, Xvt &xvt, const ObsID &oid=ObsID())
 
bool getXvt (const CommonTime &when, Xvt &xvt, const ObsID &oid=ObsID()) override=0
 
bool isSameData (const NavDataPtr &right) const override
 
 OrbitDataKepler ()
 Initialize all data members to 0. More...
 
double svClockBias (const CommonTime &when) const
 
double svClockDrift (const CommonTime &when) const
 
virtual double svRelativity (const CommonTime &when) const =0
 
virtual double svRelativity (const CommonTime &when, const EllipsoidModel &ell) const
 
- Public Member Functions inherited from gnsstk::NavData
virtual NavDataPtr clone () const =0
 Create a deep copy of this object, whatever it truly is. More...
 
virtual std::string getClassName () const
 
std::string getDumpTime (DumpDetail dl, const CommonTime &t) const
 
std::string getDumpTimeHdr (DumpDetail dl) const
 
std::string getSignalString () const
 
bool getSVN (const SatID &sat, const gnsstk::CommonTime &when, std::string &svn) const
 
virtual CommonTime getUserTime () const
 
 NavData ()
 Initialize internal data fields. More...
 
virtual bool validate () const =0
 

Public Attributes

double A
 Semi-major axis (m) More...
 
double Adot
 Rate of semi-major axis (m/sec) More...
 
double af0
 SV clock error (sec) More...
 
double af1
 SV clock drift (sec/sec) More...
 
double af2
 SV clock drift rate (sec/sec**2) More...
 
double Ahalf
 Square Root of semi-major axis (m**.5) More...
 
double Cic
 Cosine inclination (rad) More...
 
double Cis
 Sine inclination (rad) More...
 
double Crc
 Cosine radius (m) More...
 
double Crs
 Sine radius (m) More...
 
double Cuc
 Cosine latitude (rad) More...
 
double Cus
 Sine latitude (rad) More...
 
double dn
 Correction to mean motion (rad/sec) More...
 
double dndot
 Rate of correction to mean motion (rad/sec/sec) More...
 
double ecc
 Eccentricity. More...
 
RefFrameSys frame
 
SVHealth health
 SV health status. More...
 
double i0
 Inclination (rad) More...
 
double idot
 Rate of inclination angle (rad/sec) More...
 
double M0
 Mean anomaly (rad) More...
 
double OMEGA0
 Longitude of ascending node at weekly epoch (rad) More...
 
double OMEGAdot
 Rate of Rt ascension (rad/sec) More...
 
CommonTime Toc
 Clock epoch. More...
 
CommonTime Toe
 Orbit epoch. More...
 
double w
 Argument of perigee (rad) More...
 
CommonTime xmitTime
 Time of transmission of the start of the data. More...
 
- Public Attributes inherited from gnsstk::NavData
NavMessageID signal
 Source signal identification for this navigation message data. More...
 
CommonTime timeStamp
 
std::string weekFmt
 
- Public Attributes inherited from gnsstk::NavFit
CommonTime beginFit
 Time at beginning of fit interval. More...
 
CommonTime endFit
 Time at end of fit interval. More...
 

Static Public Attributes

static const size_t fw = 16
 Field width of floating point numbers (precision + 8). More...
 
static const size_t precision = 8
 Precision used when printing floating point numbers. More...
 
- Static Public Attributes inherited from gnsstk::NavData
static const GNSSTK_EXPORT std::string dumpTimeFmt
 Time format used for the dump method (Full). More...
 
static const GNSSTK_EXPORT std::string dumpTimeFmtBrief
 Time format used for the dump method (Brief). More...
 
static GNSSTK_EXPORT gnsstk::SatMetaDataStoresatMetaDataStore = nullptr
 Set this to a valid store to get PRN->SVN translations in dump(). More...
 

Additional Inherited Members

- Static Public Member Functions inherited from gnsstk::NavData
static gnsstk::SatMetaDataStoregetSatMetaDataStore ()
 Accessor for python. More...
 
static void setSatMetaDataStore (gnsstk::SatMetaDataStore *smds)
 Accessor for python. More...
 
- Protected Attributes inherited from gnsstk::NavData
double msgLenSec
 

Constructor & Destructor Documentation

◆ OrbitDataKepler()

gnsstk::OrbitDataKepler::OrbitDataKepler ( )

Initialize all data members to 0.

Definition at line 50 of file OrbitDataKepler.cpp.

Member Function Documentation

◆ compare()

std::list< std::string > gnsstk::OrbitDataKepler::compare ( const NavDataPtr right) const
overridevirtual

Compare two NavData descendent objects. Any differences are summarized and returned as a list of readable text.

Parameters
[in]rightThe data to compare against.
Returns
a text list of mismatched data.
Note
We use shared_ptr to allow for casting without risking memory leaks.

Reimplemented from gnsstk::OrbitData.

Definition at line 398 of file OrbitDataKepler.cpp.

◆ dump()

void gnsstk::OrbitDataKepler::dump ( std::ostream &  s,
DumpDetail  dl 
) const
overridevirtual

Print the contents of this NavData object in a human-readable format.

Parameters
[in,out]sThe stream to write the data to.
[in]dlThe level of detail the output should contain.

Reimplemented from gnsstk::NavData.

Definition at line 61 of file OrbitDataKepler.cpp.

◆ dumpClock()

void gnsstk::OrbitDataKepler::dumpClock ( std::ostream &  s) const
virtual

Dump the clock parameters.

Parameters
[in,out]sThe stream to write the data to.

Definition at line 118 of file OrbitDataKepler.cpp.

◆ dumpHarmonics()

void gnsstk::OrbitDataKepler::dumpHarmonics ( std::ostream &  s) const
virtual

Dump the harmonic corrections section of a full detail dump.

Parameters
[in,out]sThe stream to write the data to.

Reimplemented in gnsstk::GalFNavAlm, gnsstk::GalINavAlm, gnsstk::GPSCNavAlm, gnsstk::GPSCNav2Alm, gnsstk::BDSD1NavAlm, gnsstk::BDSD2NavAlm, and gnsstk::GPSLNavAlm.

Definition at line 152 of file OrbitDataKepler.cpp.

◆ dumpOrbit()

void gnsstk::OrbitDataKepler::dumpOrbit ( std::ostream &  s) const
virtual

Dump the orbit parameters section of a full detail dump.

Parameters
[in,out]sThe stream to write the data to.

Definition at line 131 of file OrbitDataKepler.cpp.

◆ dumpSVStatus()

virtual void gnsstk::OrbitDataKepler::dumpSVStatus ( std::ostream &  s) const
inlinevirtual

Dump SV status information (e.g. health). Nothing to do at this level, all the work is in derived classes.

Parameters
[in,out]sThe stream to write the data to.

Reimplemented in gnsstk::BDSD2NavEph, gnsstk::GalFNavAlm, gnsstk::GalINavAlm, gnsstk::GPSLNavEph, gnsstk::BDSD1NavEph, gnsstk::GPSCNavEph, gnsstk::GalFNavEph, gnsstk::GalINavEph, gnsstk::GPSCNav2Eph, gnsstk::BDSD1NavAlm, gnsstk::BDSD2NavAlm, and gnsstk::GPSLNavAlm.

Definition at line 77 of file OrbitDataKepler.hpp.

◆ getDataType()

virtual std::string gnsstk::OrbitDataKepler::getDataType ( ) const
inlinevirtual

This is just a method for making the dump output say "almanac" vs "ephemeris" when appropriate. Yes it's perfectly legitimate to alternate between Ephemeris and Almanac based on the message type, as no other message types would be inheriting from OrbitDataKepler.

Definition at line 93 of file OrbitDataKepler.hpp.

◆ getNearTime()

CommonTime gnsstk::OrbitDataKepler::getNearTime ( ) const
inlineoverridevirtual

Returns the time for the data to be used when searching in "Nearest" mode.

Reimplemented from gnsstk::NavData.

Definition at line 65 of file OrbitDataKepler.hpp.

◆ getXvt() [1/2]

bool gnsstk::OrbitDataKepler::getXvt ( const CommonTime when,
const EllipsoidModel ell,
Xvt xvt,
const ObsID oid = ObsID() 
)

Compute the satellites position and velocity at a time.

Parameters
[in]whenThe time at which to compute the xvt.
[in]ellThe ellipsoid used in computing the Xvt (specifically EllipsoidModel::gm() and EllipsoidModel::angVelocity()).
[out]xvtThe resulting computed position/velocity.
[in]oidIgnored at this level, only used in derived classes.
Returns
true if successful, false if required nav data was unavailable.

Definition at line 168 of file OrbitDataKepler.cpp.

◆ getXvt() [2/2]

bool gnsstk::OrbitDataKepler::getXvt ( const CommonTime when,
Xvt xvt,
const ObsID oid = ObsID() 
)
overridepure virtual

Compute the satellites position and velocity at a time.

Note
Defaults to using the GPS ellipsoid parameters.
Parameters
[in]whenThe time at which to compute the xvt.
[out]xvtThe resulting computed position/velocity.
[in]oidIgnored at this level, only used in derived classes.
Returns
true if successful, false if required nav data was unavailable.

Implements gnsstk::OrbitData.

Implemented in FakeODK, gnsstk::OrbitDataBDS, gnsstk::OrbitDataGal, gnsstk::OrbitDataGPS, and gnsstk::BDSD2NavEph.

◆ isSameData()

bool gnsstk::OrbitDataKepler::isSameData ( const NavDataPtr right) const
overridevirtual

Returns true if this two objects are

  1. same concrete type, and
  2. same data contents. This is intended as a "data uniqueness test" to allow detection of successive transmissions of same data and avoid duplicate storage. The exact rules for uniqueness will vary by descendent class.
    Note
    This method assumes that no tweaking of values has been made, i.e. it checks all potentially relevant parameters, not just those that are specific to the type (e.g. Cuc etc. are checked even for almanacs, which should be fine as long as they remain in their initial states).

Reimplemented from gnsstk::OrbitData.

Definition at line 361 of file OrbitDataKepler.cpp.

◆ svClockBias()

double gnsstk::OrbitDataKepler::svClockBias ( const CommonTime when) const

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

Parameters
[in]whenThe time at which to get the satellite clock bias.
Returns
the satellite's clock bias in seconds.

Definition at line 341 of file OrbitDataKepler.cpp.

◆ svClockDrift()

double gnsstk::OrbitDataKepler::svClockDrift ( const CommonTime when) const

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

Parameters
[in]whenThe time at which to get the satellite clock drift.
Returns
the satellite's clock drift in seconds per second.

Definition at line 351 of file OrbitDataKepler.cpp.

◆ svRelativity() [1/2]

virtual double gnsstk::OrbitDataKepler::svRelativity ( const CommonTime when) const
pure virtual

Compute satellite relativity correction (sec) at the given time.

Note
Each child class must implement this method to call svRelativity(CommonTime,EllipsoidModel) with the appropriate EllipsoidModel.
Parameters
[in]whenThe time at which to get the relativity correction.
Returns
the relativity correction in seconds.

Implemented in FakeODK, gnsstk::OrbitDataBDS, gnsstk::OrbitDataGal, and gnsstk::OrbitDataGPS.

◆ svRelativity() [2/2]

double gnsstk::OrbitDataKepler::svRelativity ( const CommonTime when,
const EllipsoidModel ell 
) const
virtual

Compute satellite relativity correction (sec) at the given time.

Parameters
[in]ellThe ellipsoid used in computing the Xvt (specifically EllipsoidModel::gm()).
[in]whenThe time at which to get the relativity correction.
Returns
the relativity correction in seconds.

Definition at line 314 of file OrbitDataKepler.cpp.

Member Data Documentation

◆ A

double gnsstk::OrbitDataKepler::A

Semi-major axis (m)

Definition at line 186 of file OrbitDataKepler.hpp.

◆ Adot

double gnsstk::OrbitDataKepler::Adot

Rate of semi-major axis (m/sec)

Definition at line 188 of file OrbitDataKepler.hpp.

◆ af0

double gnsstk::OrbitDataKepler::af0

SV clock error (sec)

Definition at line 195 of file OrbitDataKepler.hpp.

◆ af1

double gnsstk::OrbitDataKepler::af1

SV clock drift (sec/sec)

Definition at line 196 of file OrbitDataKepler.hpp.

◆ af2

double gnsstk::OrbitDataKepler::af2

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

Definition at line 197 of file OrbitDataKepler.hpp.

◆ Ahalf

double gnsstk::OrbitDataKepler::Ahalf

Square Root of semi-major axis (m**.5)

Definition at line 187 of file OrbitDataKepler.hpp.

◆ Cic

double gnsstk::OrbitDataKepler::Cic

Cosine inclination (rad)

Definition at line 179 of file OrbitDataKepler.hpp.

◆ Cis

double gnsstk::OrbitDataKepler::Cis

Sine inclination (rad)

Definition at line 180 of file OrbitDataKepler.hpp.

◆ Crc

double gnsstk::OrbitDataKepler::Crc

Cosine radius (m)

Definition at line 177 of file OrbitDataKepler.hpp.

◆ Crs

double gnsstk::OrbitDataKepler::Crs

Sine radius (m)

Definition at line 178 of file OrbitDataKepler.hpp.

◆ Cuc

double gnsstk::OrbitDataKepler::Cuc

Cosine latitude (rad)

Definition at line 175 of file OrbitDataKepler.hpp.

◆ Cus

double gnsstk::OrbitDataKepler::Cus

Sine latitude (rad)

Definition at line 176 of file OrbitDataKepler.hpp.

◆ dn

double gnsstk::OrbitDataKepler::dn

Correction to mean motion (rad/sec)

Definition at line 183 of file OrbitDataKepler.hpp.

◆ dndot

double gnsstk::OrbitDataKepler::dndot

Rate of correction to mean motion (rad/sec/sec)

Definition at line 184 of file OrbitDataKepler.hpp.

◆ ecc

double gnsstk::OrbitDataKepler::ecc

Eccentricity.

Definition at line 185 of file OrbitDataKepler.hpp.

◆ frame

RefFrameSys gnsstk::OrbitDataKepler::frame

Reference frame system of produced Xvt data. This is used in combination with the Xvt time to properly set the Xvt RefFrame.

Definition at line 202 of file OrbitDataKepler.hpp.

◆ fw

const size_t gnsstk::OrbitDataKepler::fw = 16
static

Field width of floating point numbers (precision + 8).

Definition at line 58 of file OrbitDataKepler.hpp.

◆ health

SVHealth gnsstk::OrbitDataKepler::health

SV health status.

Definition at line 173 of file OrbitDataKepler.hpp.

◆ i0

double gnsstk::OrbitDataKepler::i0

Inclination (rad)

Definition at line 190 of file OrbitDataKepler.hpp.

◆ idot

double gnsstk::OrbitDataKepler::idot

Rate of inclination angle (rad/sec)

Definition at line 193 of file OrbitDataKepler.hpp.

◆ M0

double gnsstk::OrbitDataKepler::M0

Mean anomaly (rad)

Definition at line 182 of file OrbitDataKepler.hpp.

◆ OMEGA0

double gnsstk::OrbitDataKepler::OMEGA0

Longitude of ascending node at weekly epoch (rad)

Definition at line 189 of file OrbitDataKepler.hpp.

◆ OMEGAdot

double gnsstk::OrbitDataKepler::OMEGAdot

Rate of Rt ascension (rad/sec)

Definition at line 192 of file OrbitDataKepler.hpp.

◆ precision

const size_t gnsstk::OrbitDataKepler::precision = 8
static

Precision used when printing floating point numbers.

Definition at line 56 of file OrbitDataKepler.hpp.

◆ Toc

CommonTime gnsstk::OrbitDataKepler::Toc

Clock epoch.

Definition at line 172 of file OrbitDataKepler.hpp.

◆ Toe

CommonTime gnsstk::OrbitDataKepler::Toe

Orbit epoch.

Definition at line 171 of file OrbitDataKepler.hpp.

◆ w

double gnsstk::OrbitDataKepler::w

Argument of perigee (rad)

Definition at line 191 of file OrbitDataKepler.hpp.

◆ xmitTime

CommonTime gnsstk::OrbitDataKepler::xmitTime

Time of transmission of the start of the data.

Definition at line 170 of file OrbitDataKepler.hpp.


The documentation for this class was generated from the following files:


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:45