GNSS-SDR  0.0.14
An Open Source GNSS Software Defined Receiver
Public Member Functions | Public Attributes | List of all members
Gps_CNAV_Ephemeris Class Reference

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

#include <gps_cnav_ephemeris.h>

Public Member Functions

 Gps_CNAV_Ephemeris ()=default
 
double satellitePosition (double transmitTime)
 Compute the ECEF SV coordinates and ECEF velocity Implementation of Table 20-IV (IS-GPS-200K) More...
 
double sv_clock_drift (double transmitTime)
 Sets (d_satClkDrift)and returns the clock drift in seconds according to the User Algorithm for SV Clock Correction (IS-GPS-200K, 20.3.3.3.3.1) More...
 
double sv_clock_relativistic_term (double transmitTime)
 Sets (d_dtr) and returns the clock relativistic correction term in seconds according to the User Algorithm for SV Clock Correction (IS-GPS-200K, 20.3.3.3.3.1) More...
 
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. More...
 

Public Attributes

uint32_t i_satellite_PRN {}
 
int32_t i_GPS_week {}
 GPS week number, aka WN [week]. More...
 
int32_t i_URA {}
 ED Accuracy Index. More...
 
int32_t i_signal_health {}
 Signal health (L1/L2/L5) More...
 
int32_t d_Top {}
 Data predict time of week. More...
 
double d_DELTA_A {}
 Semi-major axis difference at reference time. More...
 
double d_A_DOT {}
 Change rate in semi-major axis. More...
 
double d_Delta_n {}
 Mean Motion Difference From Computed Value [semi-circles/s]. More...
 
double d_DELTA_DOT_N {}
 Rate of mean motion difference from computed value. More...
 
double d_M_0 {}
 Mean Anomaly at Reference Time [semi-circles]. More...
 
double d_e_eccentricity {}
 Eccentricity. More...
 
double d_OMEGA {}
 Argument of Perigee [semi-cicles]. More...
 
double d_OMEGA0 {}
 Longitude of Ascending Node of Orbit Plane at Weekly Epoch [semi-cicles]. More...
 
int32_t d_Toe1 {}
 Ephemeris data reference time of week (Ref. 20.3.3.4.3 IS-GPS-200K) [s]. More...
 
int32_t d_Toe2 {}
 Ephemeris data reference time of week (Ref. 20.3.3.4.3 IS-GPS-200K) [s]. More...
 
double d_DELTA_OMEGA_DOT {}
 Rate of Right Ascension difference [semi-circles/s]. More...
 
double d_i_0 {}
 Inclination Angle at Reference Time [semi-circles]. More...
 
double d_IDOT {}
 Rate of Inclination Angle [semi-circles/s]. More...
 
double d_Cis {}
 Amplitude of the Sine Harmonic Correction Term to the Angle of Inclination [rad]. More...
 
double d_Cic {}
 Amplitude of the Cosine Harmonic Correction Term to the Angle of Inclination [rad]. More...
 
double d_Crs {}
 Amplitude of the Sine Harmonic Correction Term to the Orbit Radius [m]. More...
 
double d_Crc {}
 Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius [m]. More...
 
double d_Cus {}
 Amplitude of the Sine Harmonic Correction Term to the Argument of Latitude [rad]. More...
 
double d_Cuc {}
 Amplitude of the Cosine Harmonic Correction Term to the Argument of Latitude [rad]. More...
 
int32_t d_Toc {}
 clock data reference time (Ref. 20.3.3.3.3.1 IS-GPS-200K) [s] More...
 
double d_A_f0 {}
 Coefficient 0 of code phase offset model [s]. More...
 
double d_A_f1 {}
 Coefficient 1 of code phase offset model [s/s]. More...
 
double d_A_f2 {}
 Coefficient 2 of code phase offset model [s/s^2]. More...
 
double d_URA0 {}
 NED Accuracy Index. More...
 
double d_URA1 {}
 NED Accuracy Change Index. More...
 
double d_URA2 {}
 NED Accuracy Change Rate Index. More...
 
double d_TGD {}
 Estimated Group Delay Differential: L1-L2 correction term only for the benefit of "L1 P(Y)" or "L2 P(Y)" s users [s]. More...
 
double d_ISCL1 {}
 
double d_ISCL2 {}
 
double d_ISCL5I {}
 
double d_ISCL5Q {}
 
int32_t d_TOW {}
 Time of GPS Week of the ephemeris set (taken from subframes TOW) [s]. More...
 
double d_satClkDrift {}
 GPS clock error. More...
 
double d_dtr {}
 relativistic clock correction term More...
 
double d_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. More...
 
double d_satpos_Y {}
 Earth-fixed coordinate y of the satellite [m]. Completes a right-handed, Earth-Centered, Earth-Fixed orthogonal coordinate system. More...
 
double d_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). More...
 
double d_satvel_X {}
 Earth-fixed velocity coordinate x of the satellite [m]. More...
 
double d_satvel_Y {}
 Earth-fixed velocity coordinate y of the satellite [m]. More...
 
double d_satvel_Z {}
 Earth-fixed velocity coordinate z of the satellite [m]. More...
 
bool b_integrity_status_flag {}
 If true, enhanced level of integrity assurance. More...
 
bool b_l2c_phasing_flag {}
 
bool b_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. More...
 
bool b_antispoofing_flag {}
 If true, the AntiSpoofing mode is ON in that SV. More...
 

Detailed Description

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

See https://www.gps.gov/technical/icwg/IS-GPS-200K.pdf Appendix III

Definition at line 35 of file gps_cnav_ephemeris.h.

Constructor & Destructor Documentation

◆ Gps_CNAV_Ephemeris()

Gps_CNAV_Ephemeris::Gps_CNAV_Ephemeris ( )
default

Default constructor

Member Function Documentation

◆ satellitePosition()

double Gps_CNAV_Ephemeris::satellitePosition ( double  transmitTime)

Compute the ECEF SV coordinates and ECEF velocity Implementation of Table 20-IV (IS-GPS-200K)

◆ serialize()

template<class Archive >
void Gps_CNAV_Ephemeris::serialize ( Archive &  archive,
const uint32_t  version 
)
inline

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.

< Time of GPS Week of the ephemeris set (taken from subframes TOW) [s]

< Amplitude of the Sine Harmonic Correction Term to the Orbit Radius [m]

< Mean Anomaly at Reference Time [semi-circles]

< Amplitude of the Cosine Harmonic Correction Term to the Argument of Latitude [rad]

< Eccentricity [dimensionless]

< Amplitude of the Sine Harmonic Correction Term to the Argument of Latitude [rad]

< Ephemeris data reference time of week (Ref. 20.3.3.4.3 IS-GPS-200K) [s]

< Ephemeris data reference time of week (Ref. 20.3.3.4.3 IS-GPS-200K) [s]

< clock data reference time (Ref. 20.3.3.3.3.1 IS-GPS-200K) [s]

< Amplitude of the Cosine Harmonic Correction Term to the Angle of Inclination [rad]

< Longitude of Ascending Node of Orbit Plane at Weekly Epoch [semi-circles]

< Amplitude of the Sine Harmonic Correction Term to the Angle of Inclination [rad]

< Inclination Angle at Reference Time [semi-circles]

< Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius [m]

< Argument of Perigee [semi-cicles]

< Rate of Inclination Angle [semi-circles/s]

< GPS week number, aka WN [week]

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

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

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

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

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

< Semi-major axis difference at reference time [m]

< Change rate in semi-major axis [m/s]

< Rate of Right Ascension difference [semi-circles/s]

< Coefficient 0 of code phase offset model [s]

< Coefficient 1 of code phase offset model [s/s]

< Coefficient 2 of code phase offset model [s/s^2]

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

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

Definition at line 141 of file gps_cnav_ephemeris.h.

References b_alert_flag, b_antispoofing_flag, b_integrity_status_flag, d_A_DOT, d_A_f0, d_A_f1, d_A_f2, d_Cic, d_Cis, d_Crc, d_Crs, d_Cuc, d_Cus, d_DELTA_A, d_DELTA_OMEGA_DOT, d_e_eccentricity, d_i_0, d_IDOT, d_M_0, d_OMEGA, d_OMEGA0, d_TGD, d_Toc, d_Toe1, d_Toe2, d_TOW, and i_GPS_week.

◆ sv_clock_drift()

double Gps_CNAV_Ephemeris::sv_clock_drift ( double  transmitTime)

Sets (d_satClkDrift)and returns the clock drift in seconds according to the User Algorithm for SV Clock Correction (IS-GPS-200K, 20.3.3.3.3.1)

◆ sv_clock_relativistic_term()

double Gps_CNAV_Ephemeris::sv_clock_relativistic_term ( double  transmitTime)

Sets (d_dtr) and returns the clock relativistic correction term in seconds according to the User Algorithm for SV Clock Correction (IS-GPS-200K, 20.3.3.3.3.1)

Member Data Documentation

◆ b_alert_flag

bool Gps_CNAV_Ephemeris::b_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 133 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ b_antispoofing_flag

bool Gps_CNAV_Ephemeris::b_antispoofing_flag {}

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

Definition at line 134 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ b_integrity_status_flag

bool Gps_CNAV_Ephemeris::b_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 131 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_A_DOT

double Gps_CNAV_Ephemeris::d_A_DOT {}

Change rate in semi-major axis.

Definition at line 69 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_A_f0

double Gps_CNAV_Ephemeris::d_A_f0 {}

Coefficient 0 of code phase offset model [s].

Definition at line 90 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_A_f1

double Gps_CNAV_Ephemeris::d_A_f1 {}

Coefficient 1 of code phase offset model [s/s].

Definition at line 91 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_A_f2

double Gps_CNAV_Ephemeris::d_A_f2 {}

Coefficient 2 of code phase offset model [s/s^2].

Definition at line 92 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_Cic

double Gps_CNAV_Ephemeris::d_Cic {}

Amplitude of the Cosine Harmonic Correction Term to the Angle of Inclination [rad].

Definition at line 82 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_Cis

double Gps_CNAV_Ephemeris::d_Cis {}

Amplitude of the Sine Harmonic Correction Term to the Angle of Inclination [rad].

Definition at line 81 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_Crc

double Gps_CNAV_Ephemeris::d_Crc {}

Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius [m].

Definition at line 84 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_Crs

double Gps_CNAV_Ephemeris::d_Crs {}

Amplitude of the Sine Harmonic Correction Term to the Orbit Radius [m].

Definition at line 83 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_Cuc

double Gps_CNAV_Ephemeris::d_Cuc {}

Amplitude of the Cosine Harmonic Correction Term to the Argument of Latitude [rad].

Definition at line 86 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_Cus

double Gps_CNAV_Ephemeris::d_Cus {}

Amplitude of the Sine Harmonic Correction Term to the Argument of Latitude [rad].

Definition at line 85 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_DELTA_A

double Gps_CNAV_Ephemeris::d_DELTA_A {}

Semi-major axis difference at reference time.

Definition at line 68 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_DELTA_DOT_N

double Gps_CNAV_Ephemeris::d_DELTA_DOT_N {}

Rate of mean motion difference from computed value.

Definition at line 71 of file gps_cnav_ephemeris.h.

◆ d_Delta_n

double Gps_CNAV_Ephemeris::d_Delta_n {}

Mean Motion Difference From Computed Value [semi-circles/s].

Definition at line 70 of file gps_cnav_ephemeris.h.

◆ d_DELTA_OMEGA_DOT

double Gps_CNAV_Ephemeris::d_DELTA_OMEGA_DOT {}

Rate of Right Ascension difference [semi-circles/s].

Definition at line 78 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_dtr

double Gps_CNAV_Ephemeris::d_dtr {}

relativistic clock correction term

Definition at line 109 of file gps_cnav_ephemeris.h.

◆ d_e_eccentricity

double Gps_CNAV_Ephemeris::d_e_eccentricity {}

Eccentricity.

Definition at line 73 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_i_0

double Gps_CNAV_Ephemeris::d_i_0 {}

Inclination Angle at Reference Time [semi-circles].

Definition at line 79 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_IDOT

double Gps_CNAV_Ephemeris::d_IDOT {}

Rate of Inclination Angle [semi-circles/s].

Definition at line 80 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_M_0

double Gps_CNAV_Ephemeris::d_M_0 {}

Mean Anomaly at Reference Time [semi-circles].

Definition at line 72 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_OMEGA

double Gps_CNAV_Ephemeris::d_OMEGA {}

Argument of Perigee [semi-cicles].

Definition at line 74 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_OMEGA0

double Gps_CNAV_Ephemeris::d_OMEGA0 {}

Longitude of Ascending Node of Orbit Plane at Weekly Epoch [semi-cicles].

Definition at line 75 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_satClkDrift

double Gps_CNAV_Ephemeris::d_satClkDrift {}

GPS clock error.

Definition at line 108 of file gps_cnav_ephemeris.h.

◆ d_satpos_X

double Gps_CNAV_Ephemeris::d_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.

Definition at line 112 of file gps_cnav_ephemeris.h.

◆ d_satpos_Y

double Gps_CNAV_Ephemeris::d_satpos_Y {}

Earth-fixed coordinate y of the satellite [m]. Completes a right-handed, Earth-Centered, Earth-Fixed orthogonal coordinate system.

Definition at line 113 of file gps_cnav_ephemeris.h.

◆ d_satpos_Z

double Gps_CNAV_Ephemeris::d_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).

Definition at line 114 of file gps_cnav_ephemeris.h.

◆ d_satvel_X

double Gps_CNAV_Ephemeris::d_satvel_X {}

Earth-fixed velocity coordinate x of the satellite [m].

Definition at line 117 of file gps_cnav_ephemeris.h.

◆ d_satvel_Y

double Gps_CNAV_Ephemeris::d_satvel_Y {}

Earth-fixed velocity coordinate y of the satellite [m].

Definition at line 118 of file gps_cnav_ephemeris.h.

◆ d_satvel_Z

double Gps_CNAV_Ephemeris::d_satvel_Z {}

Earth-fixed velocity coordinate z of the satellite [m].

Definition at line 119 of file gps_cnav_ephemeris.h.

◆ d_TGD

double Gps_CNAV_Ephemeris::d_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 99 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_Toc

int32_t Gps_CNAV_Ephemeris::d_Toc {}

clock data reference time (Ref. 20.3.3.3.3.1 IS-GPS-200K) [s]

Definition at line 89 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_Toe1

int32_t Gps_CNAV_Ephemeris::d_Toe1 {}

Ephemeris data reference time of week (Ref. 20.3.3.4.3 IS-GPS-200K) [s].

Definition at line 76 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_Toe2

int32_t Gps_CNAV_Ephemeris::d_Toe2 {}

Ephemeris data reference time of week (Ref. 20.3.3.4.3 IS-GPS-200K) [s].

Definition at line 77 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_Top

int32_t Gps_CNAV_Ephemeris::d_Top {}

Data predict time of week.

Definition at line 67 of file gps_cnav_ephemeris.h.

◆ d_TOW

int32_t Gps_CNAV_Ephemeris::d_TOW {}

Time of GPS Week of the ephemeris set (taken from subframes TOW) [s].

Definition at line 105 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ d_URA0

double Gps_CNAV_Ephemeris::d_URA0 {}

NED Accuracy Index.

Definition at line 94 of file gps_cnav_ephemeris.h.

◆ d_URA1

double Gps_CNAV_Ephemeris::d_URA1 {}

NED Accuracy Change Index.

Definition at line 95 of file gps_cnav_ephemeris.h.

◆ d_URA2

double Gps_CNAV_Ephemeris::d_URA2 {}

NED Accuracy Change Rate Index.

Definition at line 96 of file gps_cnav_ephemeris.h.

◆ i_GPS_week

int32_t Gps_CNAV_Ephemeris::i_GPS_week {}

GPS week number, aka WN [week].

Definition at line 64 of file gps_cnav_ephemeris.h.

Referenced by serialize().

◆ i_signal_health

int32_t Gps_CNAV_Ephemeris::i_signal_health {}

Signal health (L1/L2/L5)

Definition at line 66 of file gps_cnav_ephemeris.h.

◆ i_URA

int32_t Gps_CNAV_Ephemeris::i_URA {}

ED Accuracy Index.

Definition at line 65 of file gps_cnav_ephemeris.h.


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