Classes | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
gnsstk::GLOFNavAlm Class Reference

Detailed Description

Class containing data elements unique to GLONASS Civil F-Nav almanacs.

Definition at line 53 of file GLOFNavAlm.hpp.

#include <GLOFNavAlm.hpp>

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

Classes

class  NumberCruncher
 Class to assist in doing all the math to get the XVT. More...
 

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
 
 GLOFNavAlm ()
 Sets the nav message type, and all other data members to 0. More...
 
void setSemiMajorAxisIncl ()
 Compute and set the semi-major axis (A) and inclination (i). More...
 
bool validate () const override
 
- Public Member Functions inherited from gnsstk::GLOFNavData
 GLOFNavData ()
 Sets the nav message type and all other data members to 0. More...
 
bool validate () const override
 
- 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...
 

Public Attributes

double deltainA
 Correction to mean inclination (Delta i_n^A). More...
 
double deltaTdotnA
 Time derivative of deltaT (Delta T'_n^A). More...
 
double deltaTnA
 Correction to mean value of Draconian period (Delta T_n^A). More...
 
double eccnA
 Eccentricity (epsilon_n^A). More...
 
int freqnA
 Frequency offset (H_n^A). More...
 
bool healthBits
 Health flag (C_n, 1 = operable). More...
 
double lambdanA
 Longitude of ascending node (lambda_n^A). More...
 
NumberCruncher math
 Retain as much computed data as possible. More...
 
double omeganA
 Argument of perigee (omega_n^A). More...
 
double taunA
 Time offset to GLONASS time (tau_n^A). More...
 
double tLambdanA
 Time of ascending node crossing (t_lambda_n^A). More...
 
CommonTime Toa
 Reference time for almanac. More...
 
- Public Attributes inherited from gnsstk::GLOFNavData
SVHealth health
 SV health status. More...
 
bool lhealth
 Health flag? Different from B_n and C_n? More...
 
GLOFNavSatType satType
 Satellite type (M_n: GLONASS or GLONASS-M). More...
 
unsigned slot
 Slot number (n). More...
 
CommonTime xmit2
 Transmit time for string 2 (eph) or odd string. 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 ae = ell.a_km()
 Equatorial radius of Earth in km. More...
 
static const GNSSTK_EXPORT double C20 = -1082.62575e-6
 Second zonal harmonic of spherical harmonic expansion. More...
 
static const GNSSTK_EXPORT double C20Term = (3.0/2.0) * C20
 Term used in computing orbit. More...
 
static const GNSSTK_EXPORT PZ90Ellipsoid ell
 Ellipsoid parameters used by GLONASS. More...
 
static const GNSSTK_EXPORT double icp = 63.0 * gnsstk::PI / 180.0
 icp</cp> as defined in GLONASS ICD appendix 3.2.1 More...
 
static const GNSSTK_EXPORT double J = (-3.0/2.0) * C20
 Some constant or other related to C20. More...
 
static const GNSSTK_EXPORT double mu = ell.gm_km()
 Gravitational constant. More...
 
static constexpr GNSSTK_EXPORT double omega3 = 0.7292115e-4
 
static const GNSSTK_EXPORT double Tcp = 43200.0
 Tcp</cp> as defined in GLONASS ICD appendix 3.2.1. 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

◆ GLOFNavAlm()

gnsstk::GLOFNavAlm::GLOFNavAlm ( )

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

Definition at line 60 of file GLOFNavAlm.cpp.

Member Function Documentation

◆ clone()

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

Create a deep copy of this object.

Implements gnsstk::NavData.

Definition at line 80 of file GLOFNavAlm.hpp.

◆ dump()

void gnsstk::GLOFNavAlm::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.
Bug:
this shouldn't be here, but I'm putting it here temporarily to make it easier to compare with legacy code output.

Reimplemented from gnsstk::NavData.

Definition at line 119 of file GLOFNavAlm.cpp.

◆ dumpTerse()

void gnsstk::GLOFNavAlm::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 206 of file GLOFNavAlm.cpp.

◆ fixFit()

void gnsstk::GLOFNavAlm::fixFit ( )

Fill the beginFit and endFit values for this object.

Todo:
Document correct predconditions here.
Precondition
Toe, interval and timeStamp must all be set.
Todo:
get a better end fit interval than this.

Definition at line 103 of file GLOFNavAlm.cpp.

◆ getUserTime()

CommonTime gnsstk::GLOFNavAlm::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 + 6s.

Reimplemented from gnsstk::NavData.

Definition at line 95 of file GLOFNavAlm.cpp.

◆ getXvt()

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

Compute the satellites position and velocity at a time.

Note
We consider this method validated by comparison with the GLONASS ICD almanac numerical example. We also determined that the example contains an error of statement for the sidereal time. We reproduce the example's numerical result using the stated value of S0, but the value doesn't match the sidereal time computation given the date. Our sidereal time method was previously validated by comparison with other available calculators.
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 GLOFNavAlm.cpp.

◆ setSemiMajorAxisIncl()

void gnsstk::GLOFNavAlm::setSemiMajorAxisIncl ( )

Compute and set the semi-major axis (A) and inclination (i).

Definition at line 229 of file GLOFNavAlm.cpp.

◆ validate()

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

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

Returns
true if this message is valid according to ICD criteria.
Todo:
implement some checking.

Implements gnsstk::NavData.

Definition at line 78 of file GLOFNavAlm.cpp.

Member Data Documentation

◆ ae

const double gnsstk::GLOFNavAlm::ae = ell.a_km()
static

Equatorial radius of Earth in km.

Definition at line 61 of file GLOFNavAlm.hpp.

◆ C20

const double gnsstk::GLOFNavAlm::C20 = -1082.62575e-6
static

Second zonal harmonic of spherical harmonic expansion.

Definition at line 71 of file GLOFNavAlm.hpp.

◆ C20Term

const double gnsstk::GLOFNavAlm::C20Term = (3.0/2.0) * C20
static

Term used in computing orbit.

Definition at line 75 of file GLOFNavAlm.hpp.

◆ deltainA

double gnsstk::GLOFNavAlm::deltainA

Correction to mean inclination (Delta i_n^A).

Definition at line 281 of file GLOFNavAlm.hpp.

◆ deltaTdotnA

double gnsstk::GLOFNavAlm::deltaTdotnA

Time derivative of deltaT (Delta T'_n^A).

Definition at line 286 of file GLOFNavAlm.hpp.

◆ deltaTnA

double gnsstk::GLOFNavAlm::deltaTnA

Correction to mean value of Draconian period (Delta T_n^A).

Definition at line 285 of file GLOFNavAlm.hpp.

◆ eccnA

double gnsstk::GLOFNavAlm::eccnA

Eccentricity (epsilon_n^A).

Definition at line 282 of file GLOFNavAlm.hpp.

◆ ell

const PZ90Ellipsoid gnsstk::GLOFNavAlm::ell
static

Ellipsoid parameters used by GLONASS.

Definition at line 57 of file GLOFNavAlm.hpp.

◆ freqnA

int gnsstk::GLOFNavAlm::freqnA

Frequency offset (H_n^A).

Definition at line 287 of file GLOFNavAlm.hpp.

◆ healthBits

bool gnsstk::GLOFNavAlm::healthBits

Health flag (C_n, 1 = operable).

Definition at line 276 of file GLOFNavAlm.hpp.

◆ icp

const double gnsstk::GLOFNavAlm::icp = 63.0 * gnsstk::PI / 180.0
static

icp</cp> as defined in GLONASS ICD appendix 3.2.1

Definition at line 67 of file GLOFNavAlm.hpp.

◆ J

const double gnsstk::GLOFNavAlm::J = (-3.0/2.0) * C20
static

Some constant or other related to C20.

Definition at line 73 of file GLOFNavAlm.hpp.

◆ lambdanA

double gnsstk::GLOFNavAlm::lambdanA

Longitude of ascending node (lambda_n^A).

Definition at line 280 of file GLOFNavAlm.hpp.

◆ math

NumberCruncher gnsstk::GLOFNavAlm::math

Retain as much computed data as possible.

Definition at line 292 of file GLOFNavAlm.hpp.

◆ mu

const double gnsstk::GLOFNavAlm::mu = ell.gm_km()
static

Gravitational constant.

Definition at line 59 of file GLOFNavAlm.hpp.

◆ omega3

constexpr GNSSTK_EXPORT double gnsstk::GLOFNavAlm::omega3 = 0.7292115e-4
staticconstexpr

Fatty acids? No, Earth's rotation rate.

Note
This is incorrectly listed as .73... in one location. It is, in fact, .72...

Definition at line 65 of file GLOFNavAlm.hpp.

◆ omeganA

double gnsstk::GLOFNavAlm::omeganA

Argument of perigee (omega_n^A).

Definition at line 283 of file GLOFNavAlm.hpp.

◆ taunA

double gnsstk::GLOFNavAlm::taunA

Time offset to GLONASS time (tau_n^A).

Definition at line 279 of file GLOFNavAlm.hpp.

◆ Tcp

const double gnsstk::GLOFNavAlm::Tcp = 43200.0
static

Tcp</cp> as defined in GLONASS ICD appendix 3.2.1.

Definition at line 69 of file GLOFNavAlm.hpp.

◆ tLambdanA

double gnsstk::GLOFNavAlm::tLambdanA

Time of ascending node crossing (t_lambda_n^A).

Definition at line 284 of file GLOFNavAlm.hpp.

◆ Toa

CommonTime gnsstk::GLOFNavAlm::Toa

Reference time for almanac.

Definition at line 275 of file GLOFNavAlm.hpp.


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


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