0.4.1
Loading...
Searching...
No Matches
NAV::GalileoEphemeris Class Referencefinal

Broadcasted ephemeris message data. More...

Data Structures

struct  SvHealth
 Navigation Data Validity and Signal Health Status. More...
 

Public Member Functions

Corrections calcClockCorrections (const InsTime &recvTime, double dist, const Frequency &freq) const final
 Calculates clock bias and drift of the satellite.
 
double calcSatellitePositionVariance () const final
 Calculates the Variance of the satellite position in [m^2].
 
 GalileoEphemeris (const GalileoEphemeris &)=default
 Copy constructor.
 
 GalileoEphemeris (const InsTime &toc)
 Default Constructor.
 
 GalileoEphemeris (const InsTime &toc, const InsTime &toe, const size_t &IODnav, const std::array< double, 3 > &a, const double &sqrt_A, const double &e, const double &i_0, const double &Omega_0, const double &omega, const double &M_0, const double &delta_n, const double &Omega_dot, const double &i_dot, const double &Cus, const double &Cuc, const double &Cis, const double &Cic, const double &Crs, const double &Crc, const std::bitset< 10 > &dataSource, const double &signalAccuracy, const SvHealth &svHealth, const double &BGD_E1_E5a, const double &BGD_E1_E5b)
 Constructor.
 
 GalileoEphemeris (GalileoEphemeris &&)=default
 Move constructor.
 
bool isHealthy () const final
 Checks whether the signal is healthy.
 
GalileoEphemerisoperator= (const GalileoEphemeris &)=delete
 Copy assignment operator.
 
GalileoEphemerisoperator= (GalileoEphemeris &&)=delete
 Move assignment operator.
 
 ~GalileoEphemeris () final=default
 Destructor.
 
- Public Member Functions inherited from NAV::SatNavData
SatNavDataoperator= (const SatNavData &)=delete
 Copy assignment operator.
 
SatNavDataoperator= (SatNavData &&)=delete
 Move assignment operator.
 
 SatNavData (const SatNavData &)=default
 Copy constructor.
 
 SatNavData (SatNavData &&)=default
 Move constructor.
 
 SatNavData (Type type, const InsTime &refTime)
 Constructor.
 
 ~SatNavData () override=default
 Destructor.
 
- Public Member Functions inherited from NAV::Clock
 Clock ()=default
 Default Constructor.
 
 Clock (Clock &&)=default
 Move constructor.
 
 Clock (const Clock &)=default
 Copy constructor.
 
Clockoperator= (Clock &&)=delete
 Move assignment operator.
 
Clockoperator= (const Clock &)=delete
 Copy assignment operator.
 
virtual ~Clock ()=default
 Destructor.
 
- Public Member Functions inherited from NAV::Orbit
Pos calcSatellitePos (const InsTime &transTime) const
 Calculates position of the satellite at transmission time.
 
PosVel calcSatellitePosVel (const InsTime &transTime) const
 Calculates position and velocity of the satellite at transmission time.
 
PosVelAccel calcSatellitePosVelAccel (const InsTime &transTime) const
 Calculates position, velocity and acceleration of the satellite at transmission time.
 
Orbitoperator= (const Orbit &)=delete
 Copy assignment operator.
 
Orbitoperator= (Orbit &&)=delete
 Move assignment operator.
 
 Orbit ()=default
 Default Constructor.
 
 Orbit (const Orbit &)=default
 Copy constructor.
 
 Orbit (Orbit &&)=default
 Move constructor.
 
virtual ~Orbit ()=default
 Destructor.
 

Data Fields

std::array< double, 3 > a
 
double BGD_E1_E5a
 E1-E5a Broadcast Group Delay [s].
 
double BGD_E1_E5b
 E1-E5b Broadcast Group Delay [s].
 
double Cic
 Amplitude of the cosine harmonic correction term to the angle of inclination [rad].
 
double Cis
 Amplitude of the sine harmonic correction term to the angle of inclination [rad].
 
double Crc
 Amplitude of the cosine harmonic correction term to the orbit radius [m].
 
double Crs
 Amplitude of the sine harmonic correction term to the orbit radius [m].
 
double Cuc
 Amplitude of the cosine harmonic correction term to the argument of latitude [rad].
 
double Cus
 Amplitude of the sine harmonic correction term to the argument of latitude [rad].
 
std::bitset< 10 > dataSource
 Data sources.
 
double delta_n
 Mean motion difference from computed value [rad/s].
 
double e
 Eccentricity [-].
 
double i_0
 Inclination angle at reference time [rad].
 
double i_dot
 Rate of change of inclination [rad/s].
 
size_t IODnav
 Issue of Data of the nav batch.
 
double M_0
 Mean anomaly at reference time [rad].
 
double omega
 Argument of perigee [rad].
 
double Omega_0
 Longitude of the ascending node at reference time [rad].
 
double Omega_dot
 Rate of change of right ascension [rad/s].
 
double signalAccuracy
 
double sqrt_A
 Square root of the semi-major axis [m^1/2].
 
SvHealth svHealth
 Signal Health.
 
InsTime toc
 Time of Clock.
 
InsTime toe
 Time of Ephemeris.
 
- Data Fields inherited from NAV::SatNavData
InsTime refTime
 Reference time of the information.
 
const Type type
 Child type (for down-casting)
 

Private Member Functions

PosVelAccel calcSatelliteData (const InsTime &transTime, Orbit::Calc calc) const final
 Calculates position, velocity and acceleration of the satellite at transmission time.
 

Additional Inherited Members

- Public Types inherited from NAV::SatNavData
enum  Type : uint8_t {
  GPSEphemeris ,
  GalileoEphemeris ,
  GLONASSEphemeris ,
  BeiDouEphemeris ,
  QZSSEphemeris ,
  IRNSSEphemeris ,
  SBASEphemeris
}
 Child type. More...
 
- Protected Types inherited from NAV::Orbit
enum  Calc : uint8_t {
  Calc_None ,
  Calc_Position ,
  Calc_Velocity ,
  Calc_Acceleration
}
 Calculation flags. More...
 

Detailed Description

Broadcasted ephemeris message data.

Note
See [13] GAL-ICD-2.0, ch. 5., p. 43ff
Description of the GPS satellite orbits

Definition at line 28 of file GalileoEphemeris.hpp.

Constructor & Destructor Documentation

◆ GalileoEphemeris() [1/4]

NAV::GalileoEphemeris::GalileoEphemeris ( const InsTime & toc)
explicit

Default Constructor.

Parameters
[in]tocTime the Clock information is calculated (Time of Clock)

Definition at line 19 of file GalileoEphemeris.cpp.

◆ GalileoEphemeris() [2/4]

NAV::GalileoEphemeris::GalileoEphemeris ( const InsTime & toc,
const InsTime & toe,
const size_t & IODnav,
const std::array< double, 3 > & a,
const double & sqrt_A,
const double & e,
const double & i_0,
const double & Omega_0,
const double & omega,
const double & M_0,
const double & delta_n,
const double & Omega_dot,
const double & i_dot,
const double & Cus,
const double & Cuc,
const double & Cis,
const double & Cic,
const double & Crs,
const double & Crc,
const std::bitset< 10 > & dataSource,
const double & signalAccuracy,
const SvHealth & svHealth,
const double & BGD_E1_E5a,
const double & BGD_E1_E5b )

Constructor.

Parameters
[in]tocTime the Clock information is calculated (Time of Clock)
[in]toeTime the Orbit information is calculated (Time of Ephemeris)
[in]IODnavIssue of Data of the nav batch
[in]aPolynomial coefficients for clock correction (a0 bias [s], a1 drift [s/s], a2 drift rate (aging) [s/s^2])
[in]sqrt_ASquare root of the semi-major axis [m^1/2]
[in]eEccentricity [-]
[in]i_0Inclination angle at reference time [rad]
[in]Omega_0Longitude of the ascending node at reference time [rad]
[in]omegaArgument of perigee [rad]
[in]M_0Mean anomaly at reference time [rad]
[in]delta_nMean motion difference from computed value [rad/s]
[in]Omega_dotRate of change of right ascension [rad/s]
[in]i_dotRate of change of inclination [rad/s]
[in]CusAmplitude of the sine harmonic correction term to the argument of latitude [rad]
[in]CucAmplitude of the cosine harmonic correction term to the argument of latitude [rad]
[in]CisAmplitude of the sine harmonic correction term to the angle of inclination [rad]
[in]CicAmplitude of the cosine harmonic correction term to the angle of inclination [rad]
[in]CrsAmplitude of the sine harmonic correction term to the orbit radius [m]
[in]CrcAmplitude of the cosine harmonic correction term to the orbit radius [m]
[in]dataSourceData sources
[in]signalAccuracySISA (Signal in space accuracy) [m]
[in]svHealthSignal Health
[in]BGD_E1_E5aE1-E5a Broadcast Group Delay [s]
[in]BGD_E1_E5bE1-E5b Broadcast Group Delay [s]

Definition at line 22 of file GalileoEphemeris.cpp.

◆ ~GalileoEphemeris()

NAV::GalileoEphemeris::~GalileoEphemeris ( )
finaldefault

Destructor.

◆ GalileoEphemeris() [3/4]

NAV::GalileoEphemeris::GalileoEphemeris ( const GalileoEphemeris & )
default

Copy constructor.

◆ GalileoEphemeris() [4/4]

NAV::GalileoEphemeris::GalileoEphemeris ( GalileoEphemeris && )
default

Move constructor.

Member Function Documentation

◆ calcClockCorrections()

Clock::Corrections NAV::GalileoEphemeris::calcClockCorrections ( const InsTime & recvTime,
double dist,
const Frequency & freq ) const
nodiscardfinalvirtual

Calculates clock bias and drift of the satellite.

Parameters
[in]recvTimeReceive time of the signal
[in]distDistance between receiver and satellite (normally the pseudorange) [m]
[in]freqSignal Frequency

Implements NAV::Clock.

Definition at line 100 of file GalileoEphemeris.cpp.

◆ calcSatelliteData()

Orbit::PosVelAccel NAV::GalileoEphemeris::calcSatelliteData ( const InsTime & transTime,
Orbit::Calc calc ) const
nodiscardfinalprivatevirtual

Calculates position, velocity and acceleration of the satellite at transmission time.

Parameters
[in]transTimeTransmit time of the signal
[in]calcFlags which determine what should be calculated and returned
Note
See [13] GAL-ICD-2.0, ch. 5.1.1, p. 44f
See [21] IS-GPS-200 ch. 20.3.3.4.3.1 Table 20-IV p.106-109

Implements NAV::Orbit.

Definition at line 174 of file GalileoEphemeris.cpp.

◆ calcSatellitePositionVariance()

double NAV::GalileoEphemeris::calcSatellitePositionVariance ( ) const
nodiscardfinalvirtual

Calculates the Variance of the satellite position in [m^2].

Implements NAV::Orbit.

Definition at line 324 of file GalileoEphemeris.cpp.

◆ isHealthy()

bool NAV::GalileoEphemeris::isHealthy ( ) const
nodiscardfinalvirtual

Checks whether the signal is healthy.

Implements NAV::SatNavData.

Definition at line 314 of file GalileoEphemeris.cpp.

◆ operator=() [1/2]

GalileoEphemeris & NAV::GalileoEphemeris::operator= ( const GalileoEphemeris & )
delete

Copy assignment operator.

◆ operator=() [2/2]

GalileoEphemeris & NAV::GalileoEphemeris::operator= ( GalileoEphemeris && )
delete

Move assignment operator.

Field Documentation

◆ a

std::array<double, 3> NAV::GalileoEphemeris::a

Polynomial coefficients for clock correction

  • a(0) bias [s]
  • a(1) drift [s/s]
  • a(2) drift rate (aging) [s/s^2]
Note
See [13] GAL-ICD-2.0, ch. 5.1.3, p. 46

Definition at line 92 of file GalileoEphemeris.hpp.

◆ BGD_E1_E5a

double NAV::GalileoEphemeris::BGD_E1_E5a

E1-E5a Broadcast Group Delay [s].

Note
See [13] GAL-ICD-2.0, ch. 5.1.5, p. 47f

Definition at line 150 of file GalileoEphemeris.hpp.

◆ BGD_E1_E5b

double NAV::GalileoEphemeris::BGD_E1_E5b

E1-E5b Broadcast Group Delay [s].

Note
See [13] GAL-ICD-2.0, ch. 5.1.5, p. 47f

Definition at line 153 of file GalileoEphemeris.hpp.

◆ Cic

double NAV::GalileoEphemeris::Cic

Amplitude of the cosine harmonic correction term to the angle of inclination [rad].

Definition at line 111 of file GalileoEphemeris.hpp.

◆ Cis

double NAV::GalileoEphemeris::Cis

Amplitude of the sine harmonic correction term to the angle of inclination [rad].

Definition at line 110 of file GalileoEphemeris.hpp.

◆ Crc

double NAV::GalileoEphemeris::Crc

Amplitude of the cosine harmonic correction term to the orbit radius [m].

Definition at line 113 of file GalileoEphemeris.hpp.

◆ Crs

double NAV::GalileoEphemeris::Crs

Amplitude of the sine harmonic correction term to the orbit radius [m].

Definition at line 112 of file GalileoEphemeris.hpp.

◆ Cuc

double NAV::GalileoEphemeris::Cuc

Amplitude of the cosine harmonic correction term to the argument of latitude [rad].

Definition at line 109 of file GalileoEphemeris.hpp.

◆ Cus

double NAV::GalileoEphemeris::Cus

Amplitude of the sine harmonic correction term to the argument of latitude [rad].

Definition at line 108 of file GalileoEphemeris.hpp.

◆ dataSource

std::bitset<10> NAV::GalileoEphemeris::dataSource

Data sources.

Bit 0 set: I/NAV E1-B Bit 1 set: F/NAV E5a-I Bit 2 set: I/NAV E5b-I Bits 0 and 2: Both can be set if the navigation messages were merged, however, bits 0-2 cannot all be set, as the I/NAV and F/NAV messages contain different information Bit 3 reserved for Galileo internal use Bit 4 reserved for Galileo internal use Bit 8 set: af0-af2, Toc, SISA are for E5a,E1 Bit 9 set: af0-af2, Toc, SISA are for E5b,E1 Bits 8-9 : exclusive (only one bit can be set)

Note
See [40] RINEX-3.04, ch. A8, p. A25

Definition at line 131 of file GalileoEphemeris.hpp.

◆ delta_n

double NAV::GalileoEphemeris::delta_n

Mean motion difference from computed value [rad/s].

Definition at line 105 of file GalileoEphemeris.hpp.

◆ e

double NAV::GalileoEphemeris::e

Eccentricity [-].

Definition at line 97 of file GalileoEphemeris.hpp.

◆ i_0

double NAV::GalileoEphemeris::i_0

Inclination angle at reference time [rad].

Definition at line 98 of file GalileoEphemeris.hpp.

◆ i_dot

double NAV::GalileoEphemeris::i_dot

Rate of change of inclination [rad/s].

Definition at line 107 of file GalileoEphemeris.hpp.

◆ IODnav

size_t NAV::GalileoEphemeris::IODnav

Issue of Data of the nav batch.

The navigation data is disseminated in data batches each one identified by an Issue of Data. In nominal operation the navigation data (ephemeris, satellite clock correction and SISA) have limited validity duration depending on the data type. The identification of each batch by an Issue of Data (IOD) value enables:

  • the users to distinguish the data in different batches received from each satellite
  • to indicate to the user receiver the validity of the data (which have to be updated using new issue of navigation data)
  • the user receiver to compute the full batch of data even if it misses some pages or start receiving the data somewhere during the transmission
Note
See [13] GAL-ICD-2.0, ch. 5.1.9.2, p. 51

Definition at line 84 of file GalileoEphemeris.hpp.

◆ M_0

double NAV::GalileoEphemeris::M_0

Mean anomaly at reference time [rad].

Definition at line 101 of file GalileoEphemeris.hpp.

◆ omega

double NAV::GalileoEphemeris::omega

Argument of perigee [rad].

Definition at line 100 of file GalileoEphemeris.hpp.

◆ Omega_0

double NAV::GalileoEphemeris::Omega_0

Longitude of the ascending node at reference time [rad].

Definition at line 99 of file GalileoEphemeris.hpp.

◆ Omega_dot

double NAV::GalileoEphemeris::Omega_dot

Rate of change of right ascension [rad/s].

Definition at line 106 of file GalileoEphemeris.hpp.

◆ signalAccuracy

double NAV::GalileoEphemeris::signalAccuracy

SISA (Signal in space accuracy) [m]

Signal - In - Space Accuracy (SISA) is a prediction of the minimum standard deviation (1-sigma) of the unbiased Gaussian distribution which overbounds the Signal - In - Space Error (SISE) predictable distribution for all possible user locations within the satellite coverage area. When no accurate prediction is available (SISA = NAPA), this is an indicator of a potential anomalous SIS.

Note
See [13] GAL-ICD-2.0, ch. 5.1.12, p.58

Definition at line 142 of file GalileoEphemeris.hpp.

◆ sqrt_A

double NAV::GalileoEphemeris::sqrt_A

Square root of the semi-major axis [m^1/2].

Definition at line 96 of file GalileoEphemeris.hpp.

◆ svHealth

SvHealth NAV::GalileoEphemeris::svHealth

Signal Health.

Note
See [13] GAL-ICD-2.0, ch. 5.1.9.3, p. 52

Definition at line 146 of file GalileoEphemeris.hpp.

◆ toc

InsTime NAV::GalileoEphemeris::toc

Time of Clock.

Definition at line 66 of file GalileoEphemeris.hpp.

◆ toe

InsTime NAV::GalileoEphemeris::toe

Time of Ephemeris.

Definition at line 69 of file GalileoEphemeris.hpp.


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