GNSS-SDR 0.0.21
An Open Source GNSS Software Defined Receiver
Loading...
Searching...
No Matches
Gps_Ephemeris Class Reference

This class is a storage and orbital model functions for the GPS SV ephemeris data as described in IS-GPS-200M. More...

#include <gps_ephemeris.h>

Inheritance diagram for Gps_Ephemeris:
Gnss_Ephemeris

Public Member Functions

 Gps_Ephemeris ()
template<class Archive>
void serialize (Archive &archive, const uint32_t version)
 Serialize is a boost standard method to be called by the boost XML serialization. Here is used to save the ephemeris data on disk file.
Public Member Functions inherited from Gnss_Ephemeris
double sv_clock_drift (double transmitTime)
 Sets (satClkDrift) and (dtr), and returns the clock drift in seconds according to the User Algorithm for SV Clock Correction (IS-GPS-200M, 20.3.3.3.3.1, and Galileo OS SIS ICD, 5.1.4).
double predicted_doppler (double rx_time_s, double lat, double lon, double h, double ve, double vn, double vu, int band) const
 Computes prediction of the Doppler shift for a given time and receiver's position and velocity.
void satellitePosition (double transmitTime)
 Computes the ECEF SV coordinates and ECEF velocity.

Public Attributes

int32_t code_on_L2 {}
 If 1, P code ON in L2; if 2, C/A code ON in L2;.
bool L2_P_data_flag {}
 When true, indicates that the NAV data stream was commanded OFF on the P-code of the L2 channel.
int32_t SV_accuracy {}
 User Range Accuracy (URA) index of the SV (reference paragraph 6.2.1) for the standard positioning service user (Ref 20.3.3.3.1.3 IS-GPS-200M).
int32_t SV_health {}
 Satellite heath status.
double TGD {}
 Estimated Group Delay Differential: L1-L2 correction term only for the benefit of "L1 P(Y)" or "L2 P(Y)" s users [s].
int32_t IODC {}
 Issue of Data, Clock.
int32_t IODE_SF2 {}
 Issue of Data, Ephemeris (IODE), subframe 2.
int32_t IODE_SF3 {}
 Issue of Data, Ephemeris (IODE), subframe 3.
int32_t AODO {}
 Age of Data Offset (AODO) term for the navigation message correction table (NMCT) contained in subframe 4 (reference paragraph 20.3.3.5.1.9) [s].
bool fit_interval_flag {}
 indicates the curve-fit interval used by the CS (Block II/IIA/IIR/IIR-M/IIF) and SS (Block IIIA) in determining the ephemeris parameters, as follows: 0 = 4 hours, 1 = greater than 4 hours.
double spare1 {}
double spare2 {}
bool integrity_status_flag {}
 If true, enhanced level of integrity assurance.
bool alert_flag {}
 If true, indicates that the SV URA may be worse than indicated in d_SV_accuracy, use that SV at our own risk.
bool antispoofing_flag {}
 If true, the AntiSpoofing mode is ON in that SV.
std::map< int, std::string > satelliteBlock
 Map that stores to which block the PRN belongs https://www.navcen.uscg.gov/?Do=constellationStatus.
Public Attributes inherited from Gnss_Ephemeris
uint32_t PRN {}
 SV ID.
double M_0 {}
 Mean anomaly at reference time [rad].
double delta_n {}
 Mean motion difference from computed value [rad/sec].
double ecc {}
 Eccentricity.
double sqrtA {}
 Square root of the semi-major axis [meters^1/2].
double OMEGA_0 {}
 Longitude of ascending node of orbital plane at weekly epoch [rad].
double i_0 {}
 Inclination angle at reference time [rad].
double omega {}
 Argument of perigee [rad].
double OMEGAdot {}
 Rate of right ascension [rad/sec].
double idot {}
 Rate of inclination angle [rad/sec].
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].
double Crc {}
 Amplitude of the cosine harmonic correction term to the orbit radius [meters].
double Crs {}
 Amplitude of the sine harmonic correction term to the orbit radius [meters].
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].
int32_t toe {}
 Ephemeris reference time [s].
int32_t toc {}
 Clock correction data reference Time of Week [sec].
double af0 {}
 SV clock bias correction coefficient [s].
double af1 {}
 SV clock drift correction coefficient [s/s].
double af2 {}
 SV clock drift rate correction coefficient [s/s^2].
double satClkDrift {}
 SV clock drift.
double dtr {}
 Relativistic clock correction term.
int32_t WN {}
 Week number.
int32_t tow {}
 Time of Week.
double satpos_X {}
 Earth-fixed coordinate x of the satellite [m]. Intersection of the IERS Reference Meridian (IRM) and the plane passing through the origin and normal to the Z-axis.
double satpos_Y {}
 Earth-fixed coordinate y of the satellite [m]. Completes a right-handed, Earth-Centered, Earth-Fixed orthogonal coordinate system.
double satpos_Z {}
 Earth-fixed coordinate z of the satellite [m]. The direction of the IERS (International Earth Rotation and Reference Systems Service) Reference Pole (IRP).
double satvel_X {}
 Earth-fixed velocity coordinate x of the satellite [m].
double satvel_Y {}
 Earth-fixed velocity coordinate y of the satellite [m].
double satvel_Z {}
 Earth-fixed velocity coordinate z of the satellite [m].

Additional Inherited Members

Protected Attributes inherited from Gnss_Ephemeris
char System {}
 Character ID of the GNSS system. 'G': GPS. 'E': Galileo. 'C': BeiDou.

Detailed Description

This class is a storage and orbital model functions for the GPS SV ephemeris data as described in IS-GPS-200M.

See https://www.gps.gov/sites/default/files/2025-07/IS-GPS-200M.pdf Appendix II

Definition at line 40 of file gps_ephemeris.h.

Constructor & Destructor Documentation

◆ Gps_Ephemeris()

Gps_Ephemeris::Gps_Ephemeris ( )

Default constructor

Member Function Documentation

◆ serialize()

Member Data Documentation

◆ alert_flag

bool Gps_Ephemeris::alert_flag {}

If true, indicates that the SV URA may be worse than indicated in d_SV_accuracy, use that SV at our own risk.

Definition at line 75 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().

◆ antispoofing_flag

bool Gps_Ephemeris::antispoofing_flag {}

If true, the AntiSpoofing mode is ON in that SV.

Definition at line 76 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().

◆ AODO

int32_t Gps_Ephemeris::AODO {}

Age of Data Offset (AODO) term for the navigation message correction table (NMCT) contained in subframe 4 (reference paragraph 20.3.3.5.1.9) [s].

Definition at line 56 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().

◆ code_on_L2

int32_t Gps_Ephemeris::code_on_L2 {}

If 1, P code ON in L2; if 2, C/A code ON in L2;.

Definition at line 48 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().

◆ fit_interval_flag

bool Gps_Ephemeris::fit_interval_flag {}

indicates the curve-fit interval used by the CS (Block II/IIA/IIR/IIR-M/IIF) and SS (Block IIIA) in determining the ephemeris parameters, as follows: 0 = 4 hours, 1 = greater than 4 hours.

Definition at line 58 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().

◆ integrity_status_flag

bool Gps_Ephemeris::integrity_status_flag {}

If true, enhanced level of integrity assurance.

If false, indicates that the conveying signal is provided with the legacy level of integrity assurance. That is, the probability that the instantaneous URE of the conveying signal exceeds 4.42 times the upper bound value of the current broadcast URA index, for more than 5.2 seconds, without an accompanying alert, is less than 1E-5 per hour. If true, indicates that the conveying signal is provided with an enhanced level of integrity assurance. That is, the probability that the instantaneous URE of the conveying signal exceeds 5.73 times the upper bound value of the current broadcast URA index, for more than 5.2 seconds, without an accompanying alert, is less than 1E-8 per hour.

Definition at line 74 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().

◆ IODC

int32_t Gps_Ephemeris::IODC {}

Issue of Data, Clock.

Definition at line 53 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().

◆ IODE_SF2

int32_t Gps_Ephemeris::IODE_SF2 {}

Issue of Data, Ephemeris (IODE), subframe 2.

Definition at line 54 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().

◆ IODE_SF3

int32_t Gps_Ephemeris::IODE_SF3 {}

Issue of Data, Ephemeris (IODE), subframe 3.

Definition at line 55 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().

◆ L2_P_data_flag

bool Gps_Ephemeris::L2_P_data_flag {}

When true, indicates that the NAV data stream was commanded OFF on the P-code of the L2 channel.

Definition at line 49 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().

◆ satelliteBlock

std::map<int, std::string> Gps_Ephemeris::satelliteBlock

Map that stores to which block the PRN belongs https://www.navcen.uscg.gov/?Do=constellationStatus.

Definition at line 78 of file gps_ephemeris.h.

◆ spare1

double Gps_Ephemeris::spare1 {}

Definition at line 59 of file gps_ephemeris.h.

◆ spare2

double Gps_Ephemeris::spare2 {}

Definition at line 60 of file gps_ephemeris.h.

◆ SV_accuracy

int32_t Gps_Ephemeris::SV_accuracy {}

User Range Accuracy (URA) index of the SV (reference paragraph 6.2.1) for the standard positioning service user (Ref 20.3.3.3.1.3 IS-GPS-200M).

Definition at line 50 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().

◆ SV_health

int32_t Gps_Ephemeris::SV_health {}

Satellite heath status.

Definition at line 51 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().

◆ TGD

double Gps_Ephemeris::TGD {}

Estimated Group Delay Differential: L1-L2 correction term only for the benefit of "L1 P(Y)" or "L2 P(Y)" s users [s].

Definition at line 52 of file gps_ephemeris.h.

Referenced by Serdes_Gps_Eph::readProtobuffer(), and serialize().


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