Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | List of all members
gnsstk::GLOCNavEph Class Reference

Detailed Description

Class containing data elements unique to GLONASS Civil C-Nav ephemerides.

See also
PNBGLOCNavDataFactory for additional details on the long-term dynamic model parameters.

Definition at line 57 of file GLOCNavEph.hpp.

#include <GLOCNavEph.hpp>

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

Public Member Functions

NavDataPtr clone () const override
 Create a deep copy of this object. More...
 
void dump (std::ostream &s, DumpDetail dl) const override
 
void dumpTerse (std::ostream &s) const
 
void fixFit ()
 
CommonTime getUserTime () const override
 
bool getXvt (const CommonTime &when, Xvt &xvt, const ObsID &=ObsID()) override
 
 GLOCNavEph ()
 Sets the nav message type and all other data members to 0. More...
 
bool haveLTDMP () const
 
bool validate () const override
 
- Public Member Functions inherited from gnsstk::GLOCNavData
 GLOCNavData ()
 Sets the nav message type and all other data members to 0. More...
 
- Public Member Functions inherited from gnsstk::OrbitData
std::list< std::string > compare (const NavDataPtr &right) const override
 
bool isSameData (const NavDataPtr &right) const override
 
- Public Member Functions inherited from gnsstk::NavData
virtual std::string getClassName () const
 
std::string getDumpTime (DumpDetail dl, const CommonTime &t) const
 
std::string getDumpTimeHdr (DumpDetail dl) const
 
virtual CommonTime getNearTime () const
 
std::string getSignalString () const
 
bool getSVN (const SatID &sat, const gnsstk::CommonTime &when, std::string &svn) const
 
 NavData ()
 Initialize internal data fields. More...
 

Static Public Member Functions

static double factorToSigma (int8_t factor)
 
- 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...
 

Public Attributes

Triple acc
 Satellite acceleration at tb in km/s**2. More...
 
Triple apcOffset
 L3OC APC offset from center of mass. More...
 
double clkBias
 Satellite clock bias in sec (tau^j). More...
 
double driftRate
 Half rate of relative deviation of carrier freq. More...
 
uint8_t EjE
 Age of ephemeris (6-hour intervals). More...
 
uint8_t EjT
 Age of clock (6-hour intervals). More...
 
int8_t FjE
 Accuracy factors dependent on ephemeris errors. More...
 
int8_t FjT
 Accuracy factors dependent on clock errors. More...
 
double freqBias
 Satellite relative frequency bias (gamma^j). More...
 
GLOCNavHeader header11
 Header (incl xmit time) data from string 11. More...
 
GLOCNavHeader header12
 Header (incl xmit time) data from string 12. More...
 
GLOCNavLTDMP ltdmp
 Long-term dynamic model parameters. More...
 
GLOCSatType Mj
 What satellite j is and what it transmits. More...
 
uint8_t N4
 Number of leap years since 1996. More...
 
uint16_t NT
 Day within four-year interval N4. More...
 
Triple pos
 Satellite position at tb in km. More...
 
uint8_t PS
 Number of strings from this type 10 to the next. More...
 
GLOCRegime RjE
 Regime for generation of ephemeris data. More...
 
GLOCRegime RjT
 Regime for generation of clock data. More...
 
double step
 
double tauc
 Correction for GLONASS to Moscow time. More...
 
double taucdot
 Rate of correction for GLONASS to Moscow time. More...
 
double tauDelta
 Offset of L3OCP time to L3OCD time. More...
 
double tauGPS
 Fractional part of offset from GPS to GLONASS time. More...
 
unsigned long tb
 Instant in Moscow time this data relates to. More...
 
CommonTime Toe
 Reference time, combining N4, NT and tb. More...
 
Triple vel
 Satellite velocity at tb in km/s. More...
 
- Public Attributes inherited from gnsstk::GLOCNavData
GLOCNavHeader header
 Common 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 GNSSTK_EXPORT double we = 7.2921151467e-5
 
- 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...
 

Private Member Functions

Vector< double > derivative (const Vector< double > &inState, const Vector< double > &accel, const Vector< double > &lt, bool simplified) const
 

Additional Inherited Members

- Protected Attributes inherited from gnsstk::NavData
double msgLenSec
 

Constructor & Destructor Documentation

◆ GLOCNavEph()

gnsstk::GLOCNavEph::GLOCNavEph ( )

Sets the nav message type and all other data members to 0.

Definition at line 55 of file GLOCNavEph.cpp.

Member Function Documentation

◆ clone()

NavDataPtr gnsstk::GLOCNavEph::clone ( ) const
inlineoverridevirtual

Create a deep copy of this object.

Implements gnsstk::NavData.

Definition at line 70 of file GLOCNavEph.hpp.

◆ derivative()

Vector< double > gnsstk::GLOCNavEph::derivative ( const Vector< double > &  inState,
const Vector< double > &  accel,
const Vector< double > &  lt,
bool  simplified 
) const
private

Function implementing the derivative of GLONASS orbital model.

See also
ICD GLONASS CDMA General Description Appendix J.2.1.
Parameters
[in]inStateThe input state vector consisting of [x, x', y, y', z, z'].
[in]accelThe acceleration values, [x'', y'', z''].
[in]ltThe long-term corrections [ax,ay,az]. Only used when simplified==false.
[in]simplifiedIf true, use the simplified algorithm from appendix J.2.1. If false, use the long-term algorithm from J.3.1.
Returns
A vector containing [x',Vx',Y',Vy',Z',Vz'].
Todo:
figure out a reasonable way to handle the fact that FDMA nav uses a less precise value for omega_e. Maybe a different PZ90Ellipsoid class?

Definition at line 378 of file GLOCNavEph.cpp.

◆ dump()

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

Print the contents of this NavData object in a (usually) 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 252 of file GLOCNavEph.cpp.

◆ dumpTerse()

void gnsstk::GLOCNavEph::dumpTerse ( std::ostream &  s) const

Dump contents in terse format (DumpDetail==Terse)

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

Definition at line 363 of file GLOCNavEph.cpp.

◆ factorToSigma()

double gnsstk::GLOCNavEph::factorToSigma ( int8_t  factor)
static

Convert the coded factor values as described in ICD section 5.2.2.9 into a pseudorange error (sigma).

Parameters
[in]factorThe accuracy factor as broadcast.
Returns
the sigma value in meters, or NaN if factor is invalid.

Definition at line 425 of file GLOCNavEph.cpp.

◆ fixFit()

void gnsstk::GLOCNavEph::fixFit ( )

Fill the beginFit and endFit values for this object.

Precondition
Toe, interval and timeStamp must all be set.

Definition at line 233 of file GLOCNavEph.cpp.

◆ getUserTime()

CommonTime gnsstk::GLOCNavEph::getUserTime ( ) const
overridevirtual

Returns the time when the navigation message would have first been available to the user equipment, i.e. the time at which the final bit of a given broadcast navigation message is received. This is used by NavDataFactoryWithStore::find() in User mode.

Returns
most recent transmit time + 3s.

Reimplemented from gnsstk::NavData.

Definition at line 196 of file GLOCNavEph.cpp.

◆ getXvt()

bool gnsstk::GLOCNavEph::getXvt ( const CommonTime when,
Xvt xvt,
const ObsID oid = ObsID() 
)
overridevirtual

Compute the satellites position and velocity at a time.

Note
There are three algorithms in Appendix J of ICD-GLONASS-CDMA General Edition. We follow the recommendation therein of using the simplified algorithm for prediction intervals <=30 minutes, and the long-term algorithm for prediction intervals between 30 minutes and 4 hours. The long-term algorithm requires the data from the LTDMP strings (31-32), so if those are absent for a long-term request, getXvt will indicate failure.
Parameters
[in]whenThe time at which to compute the xvt.
[out]xvtThe resulting computed position/velocity.
[in]oidValue is ignored - GLONASS does not have distinct transmitters.
Returns
true if successful, false if required nav data was unavailable.

Implements gnsstk::OrbitData.

Definition at line 86 of file GLOCNavEph.cpp.

◆ haveLTDMP()

bool gnsstk::GLOCNavEph::haveLTDMP ( ) const
inline
Returns
true if this object has Long-Term Dynamic Model Parameters, needed for best results for prediction intervals > 30 minutes.

Definition at line 132 of file GLOCNavEph.hpp.

◆ validate()

bool gnsstk::GLOCNavEph::validate ( ) const
overridevirtual

Checks the contents of this message against known validity rules as defined in the appropriate ICD.

Note
This does not check the LTDMP, as the ephemeris can still be used for short-term solutions in the case the long-term parameters are unusable.
Returns
true if this message is valid according to ICD criteria.

Reimplemented from gnsstk::GLOCNavData.

Definition at line 75 of file GLOCNavEph.cpp.

Member Data Documentation

◆ acc

Triple gnsstk::GLOCNavEph::acc

Satellite acceleration at tb in km/s**2.

Definition at line 155 of file GLOCNavEph.hpp.

◆ apcOffset

Triple gnsstk::GLOCNavEph::apcOffset

L3OC APC offset from center of mass.

Todo:
implement support for this, see ICD-GLONASS-CDMA General Edition Appendix J, and weep.

Definition at line 158 of file GLOCNavEph.hpp.

◆ clkBias

double gnsstk::GLOCNavEph::clkBias

Satellite clock bias in sec (tau^j).

Definition at line 147 of file GLOCNavEph.hpp.

◆ driftRate

double gnsstk::GLOCNavEph::driftRate

Half rate of relative deviation of carrier freq.

Definition at line 149 of file GLOCNavEph.hpp.

◆ EjE

uint8_t gnsstk::GLOCNavEph::EjE

Age of ephemeris (6-hour intervals).

Definition at line 141 of file GLOCNavEph.hpp.

◆ EjT

uint8_t gnsstk::GLOCNavEph::EjT

Age of clock (6-hour intervals).

Definition at line 142 of file GLOCNavEph.hpp.

◆ FjE

int8_t gnsstk::GLOCNavEph::FjE

Accuracy factors dependent on ephemeris errors.

Definition at line 145 of file GLOCNavEph.hpp.

◆ FjT

int8_t gnsstk::GLOCNavEph::FjT

Accuracy factors dependent on clock errors.

Definition at line 146 of file GLOCNavEph.hpp.

◆ freqBias

double gnsstk::GLOCNavEph::freqBias

Satellite relative frequency bias (gamma^j).

Definition at line 148 of file GLOCNavEph.hpp.

◆ header11

GLOCNavHeader gnsstk::GLOCNavEph::header11

Header (incl xmit time) data from string 11.

Definition at line 163 of file GLOCNavEph.hpp.

◆ header12

GLOCNavHeader gnsstk::GLOCNavEph::header12

Header (incl xmit time) data from string 12.

Definition at line 164 of file GLOCNavEph.hpp.

◆ ltdmp

GLOCNavLTDMP gnsstk::GLOCNavEph::ltdmp

Long-term dynamic model parameters.

Definition at line 161 of file GLOCNavEph.hpp.

◆ Mj

GLOCSatType gnsstk::GLOCNavEph::Mj

What satellite j is and what it transmits.

Definition at line 138 of file GLOCNavEph.hpp.

◆ N4

uint8_t gnsstk::GLOCNavEph::N4

Number of leap years since 1996.

Definition at line 136 of file GLOCNavEph.hpp.

◆ NT

uint16_t gnsstk::GLOCNavEph::NT

Day within four-year interval N4.

Definition at line 137 of file GLOCNavEph.hpp.

◆ pos

Triple gnsstk::GLOCNavEph::pos

Satellite position at tb in km.

Definition at line 153 of file GLOCNavEph.hpp.

◆ PS

uint8_t gnsstk::GLOCNavEph::PS

Number of strings from this type 10 to the next.

Definition at line 139 of file GLOCNavEph.hpp.

◆ RjE

GLOCRegime gnsstk::GLOCNavEph::RjE

Regime for generation of ephemeris data.

Definition at line 143 of file GLOCNavEph.hpp.

◆ RjT

GLOCRegime gnsstk::GLOCNavEph::RjT

Regime for generation of clock data.

Definition at line 144 of file GLOCNavEph.hpp.

◆ step

double gnsstk::GLOCNavEph::step

Integration step for Runge-Kutta algorithm (1 minute by default).

Note
The default value is suggested in ICD-GLONASS-CDMA General Edition Appendix J.

Definition at line 169 of file GLOCNavEph.hpp.

◆ tauc

double gnsstk::GLOCNavEph::tauc

Correction for GLONASS to Moscow time.

Definition at line 150 of file GLOCNavEph.hpp.

◆ taucdot

double gnsstk::GLOCNavEph::taucdot

Rate of correction for GLONASS to Moscow time.

Definition at line 151 of file GLOCNavEph.hpp.

◆ tauDelta

double gnsstk::GLOCNavEph::tauDelta

Offset of L3OCP time to L3OCD time.

Definition at line 159 of file GLOCNavEph.hpp.

◆ tauGPS

double gnsstk::GLOCNavEph::tauGPS

Fractional part of offset from GPS to GLONASS time.

Definition at line 160 of file GLOCNavEph.hpp.

◆ tb

unsigned long gnsstk::GLOCNavEph::tb

Instant in Moscow time this data relates to.

Definition at line 140 of file GLOCNavEph.hpp.

◆ Toe

CommonTime gnsstk::GLOCNavEph::Toe

Reference time, combining N4, NT and tb.

Definition at line 135 of file GLOCNavEph.hpp.

◆ vel

Triple gnsstk::GLOCNavEph::vel

Satellite velocity at tb in km/s.

Definition at line 154 of file GLOCNavEph.hpp.

◆ we

const double gnsstk::GLOCNavEph::we = 7.2921151467e-5
static

Angular velocity of Earth in rad/s. This differs from the PZ90Ellipsoid value in that it has more precision. Based on almanac tests, it's clear that the ICD authors use the truncated value for almanacs, so we're just going to define and use the different value here.

Definition at line 65 of file GLOCNavEph.hpp.


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


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