![]() |
GNSS-SDR
0.0.14
An Open Source GNSS Software Defined Receiver
|
This class is a storage and orbital model functions for the GPS SV ephemeris data as described in IS-GPS-200K. More...
#include <gps_ephemeris.h>
Public Member Functions | |
| Gps_Ephemeris () | |
| double | satellitePosition (double transmitTime) |
| Compute the ECEF SV coordinates and ECEF velocity Implementation of Table 20-IV (IS-GPS-200K) and compute the clock bias term including relativistic effect (return value) 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 | d_TOW {} |
| Time of GPS Week of the ephemeris set (taken from subframes TOW) [s]. More... | |
| double | d_Crs {} |
| Amplitude of the Sine Harmonic Correction Term to the Orbit Radius [m]. More... | |
| double | d_Delta_n {} |
| Mean Motion Difference From Computed Value [semi-circles/s]. More... | |
| double | d_M_0 {} |
| Mean Anomaly at Reference Time [semi-circles]. More... | |
| double | d_Cuc {} |
| Amplitude of the Cosine Harmonic Correction Term to the Argument of Latitude [rad]. More... | |
| double | d_e_eccentricity {} |
| Eccentricity [dimensionless]. More... | |
| double | d_Cus {} |
| Amplitude of the Sine Harmonic Correction Term to the Argument of Latitude [rad]. More... | |
| double | d_sqrt_A {} |
| Square Root of the Semi-Major Axis [sqrt(m)]. More... | |
| int32_t | d_Toe {} |
| Ephemeris data reference time of week (Ref. 20.3.3.4.3 IS-GPS-200K) [s]. More... | |
| int32_t | d_Toc {} |
| clock data reference time (Ref. 20.3.3.3.3.1 IS-GPS-200K) [s] More... | |
| double | d_Cic {} |
| Amplitude of the Cosine Harmonic Correction Term to the Angle of Inclination [rad]. More... | |
| double | d_OMEGA0 {} |
| Longitude of Ascending Node of Orbit Plane at Weekly Epoch [semi-circles]. More... | |
| double | d_Cis {} |
| Amplitude of the Sine Harmonic Correction Term to the Angle of Inclination [rad]. More... | |
| double | d_i_0 {} |
| Inclination Angle at Reference Time [semi-circles]. More... | |
| double | d_Crc {} |
| Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius [m]. More... | |
| double | d_OMEGA {} |
| Argument of Perigee [semi-cicles]. More... | |
| double | d_OMEGA_DOT {} |
| Rate of Right Ascension [semi-circles/s]. More... | |
| double | d_IDOT {} |
| Rate of Inclination Angle [semi-circles/s]. More... | |
| int32_t | i_code_on_L2 {} |
| If 1, P code ON in L2; if 2, C/A code ON in L2;. More... | |
| int32_t | i_GPS_week {} |
| GPS week number, aka WN [week]. More... | |
| bool | b_L2_P_data_flag {} |
| When true, indicates that the NAV data stream was commanded OFF on the P-code of the L2 channel. More... | |
| int32_t | i_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-200K) More... | |
| int32_t | i_SV_health {} |
| 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... | |
| int32_t | d_IODC {} |
| Issue of Data, Clock. More... | |
| int32_t | d_IODE_SF2 {} |
| Issue of Data, Ephemeris (IODE), subframe 2. More... | |
| int32_t | d_IODE_SF3 {} |
| Issue of Data, Ephemeris(IODE), subframe 3. More... | |
| int32_t | i_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]. More... | |
| bool | b_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. More... | |
| double | d_spare1 {} |
| double | d_spare2 {} |
| 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... | |
| bool | b_integrity_status_flag {} |
| If true, enhanced level of integrity assurance. More... | |
| 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... | |
| 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... | |
| std::map< int, std::string > | satelliteBlock |
| Map that stores to which block the PRN belongs https://www.navcen.uscg.gov/?Do=constellationStatus. More... | |
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 II
Definition at line 38 of file gps_ephemeris.h.
| Gps_Ephemeris::Gps_Ephemeris | ( | ) |
Default constructor
| double Gps_Ephemeris::satellitePosition | ( | double | transmitTime | ) |
Compute the ECEF SV coordinates and ECEF velocity Implementation of Table 20-IV (IS-GPS-200K) and compute the clock bias term including relativistic effect (return value)
|
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 Motion Difference From Computed Value [semi-circles/s]
< 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]
< Square Root of the Semi-Major Axis [sqrt(m)]
< 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 Right Ascension [semi-circles/s]
< Rate of Inclination Angle [semi-circles/s]
< If 1, P code ON in L2; if 2, C/A code ON in L2;
< GPS week number, aka WN [week]
< When true, indicates that the NAV data stream was commanded OFF on the P-code of the L2 channel
< 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-200K)
< Estimated Group Delay Differential: L1-L2 correction term only for the benefit of "L1 P(Y)" or "L2 P(Y)" s users [s]
< Issue of Data, Clock
< 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]
< 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.
< 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 140 of file gps_ephemeris.h.
References b_alert_flag, b_antispoofing_flag, b_fit_interval_flag, b_integrity_status_flag, b_L2_P_data_flag, d_A_f0, d_A_f1, d_A_f2, d_Cic, d_Cis, d_Crc, d_Crs, d_Cuc, d_Cus, d_Delta_n, d_e_eccentricity, d_i_0, d_IDOT, d_IODC, d_IODE_SF2, d_IODE_SF3, d_M_0, d_OMEGA, d_OMEGA0, d_OMEGA_DOT, d_sqrt_A, d_TGD, d_Toc, d_Toe, d_TOW, i_AODO, i_code_on_L2, i_GPS_week, and i_SV_accuracy.
| double Gps_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)
| double Gps_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)
| bool Gps_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 116 of file gps_ephemeris.h.
Referenced by serialize().
| bool Gps_Ephemeris::b_antispoofing_flag {} |
If true, the AntiSpoofing mode is ON in that SV.
Definition at line 117 of file gps_ephemeris.h.
Referenced by serialize().
| bool Gps_Ephemeris::b_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 95 of file gps_ephemeris.h.
Referenced by serialize().
| bool Gps_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 115 of file gps_ephemeris.h.
Referenced by serialize().
| bool Gps_Ephemeris::b_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 86 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_A_f0 {} |
Coefficient 0 of code phase offset model [s].
Definition at line 99 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_A_f1 {} |
Coefficient 1 of code phase offset model [s/s].
Definition at line 100 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_A_f2 {} |
Coefficient 2 of code phase offset model [s/s^2].
Definition at line 101 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_Cic {} |
Amplitude of the Cosine Harmonic Correction Term to the Angle of Inclination [rad].
Definition at line 76 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_Cis {} |
Amplitude of the Sine Harmonic Correction Term to the Angle of Inclination [rad].
Definition at line 78 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_Crc {} |
Amplitude of the Cosine Harmonic Correction Term to the Orbit Radius [m].
Definition at line 80 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_Crs {} |
Amplitude of the Sine Harmonic Correction Term to the Orbit Radius [m].
Definition at line 67 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_Cuc {} |
Amplitude of the Cosine Harmonic Correction Term to the Argument of Latitude [rad].
Definition at line 70 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_Cus {} |
Amplitude of the Sine Harmonic Correction Term to the Argument of Latitude [rad].
Definition at line 72 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_Delta_n {} |
Mean Motion Difference From Computed Value [semi-circles/s].
Definition at line 68 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_dtr {} |
relativistic clock correction term
Definition at line 121 of file gps_ephemeris.h.
| double Gps_Ephemeris::d_e_eccentricity {} |
Eccentricity [dimensionless].
Definition at line 71 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_i_0 {} |
Inclination Angle at Reference Time [semi-circles].
Definition at line 79 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_IDOT {} |
Rate of Inclination Angle [semi-circles/s].
Definition at line 83 of file gps_ephemeris.h.
Referenced by serialize().
| int32_t Gps_Ephemeris::d_IODC {} |
| int32_t Gps_Ephemeris::d_IODE_SF2 {} |
Issue of Data, Ephemeris (IODE), subframe 2.
Definition at line 91 of file gps_ephemeris.h.
Referenced by serialize().
| int32_t Gps_Ephemeris::d_IODE_SF3 {} |
Issue of Data, Ephemeris(IODE), subframe 3.
Definition at line 92 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_M_0 {} |
Mean Anomaly at Reference Time [semi-circles].
Definition at line 69 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_OMEGA {} |
Argument of Perigee [semi-cicles].
Definition at line 81 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_OMEGA0 {} |
Longitude of Ascending Node of Orbit Plane at Weekly Epoch [semi-circles].
Definition at line 77 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_OMEGA_DOT {} |
Rate of Right Ascension [semi-circles/s].
Definition at line 82 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_Ephemeris::d_satClkDrift {} |
GPS clock error.
Definition at line 120 of file gps_ephemeris.h.
| double Gps_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 124 of file gps_ephemeris.h.
| double Gps_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 125 of file gps_ephemeris.h.
| double Gps_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 126 of file gps_ephemeris.h.
| double Gps_Ephemeris::d_satvel_X {} |
Earth-fixed velocity coordinate x of the satellite [m].
Definition at line 129 of file gps_ephemeris.h.
| double Gps_Ephemeris::d_satvel_Y {} |
Earth-fixed velocity coordinate y of the satellite [m].
Definition at line 130 of file gps_ephemeris.h.
| double Gps_Ephemeris::d_satvel_Z {} |
Earth-fixed velocity coordinate z of the satellite [m].
Definition at line 131 of file gps_ephemeris.h.
| double Gps_Ephemeris::d_sqrt_A {} |
Square Root of the Semi-Major Axis [sqrt(m)].
Definition at line 73 of file gps_ephemeris.h.
Referenced by serialize().
| double Gps_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 89 of file gps_ephemeris.h.
Referenced by serialize().
| int32_t Gps_Ephemeris::d_Toc {} |
clock data reference time (Ref. 20.3.3.3.3.1 IS-GPS-200K) [s]
Definition at line 75 of file gps_ephemeris.h.
Referenced by serialize().
| int32_t Gps_Ephemeris::d_Toe {} |
Ephemeris data reference time of week (Ref. 20.3.3.4.3 IS-GPS-200K) [s].
Definition at line 74 of file gps_ephemeris.h.
Referenced by serialize().
| int32_t Gps_Ephemeris::d_TOW {} |
Time of GPS Week of the ephemeris set (taken from subframes TOW) [s].
Definition at line 66 of file gps_ephemeris.h.
Referenced by serialize().
| int32_t Gps_Ephemeris::i_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 93 of file gps_ephemeris.h.
Referenced by serialize().
| int32_t Gps_Ephemeris::i_code_on_L2 {} |
If 1, P code ON in L2; if 2, C/A code ON in L2;.
Definition at line 84 of file gps_ephemeris.h.
Referenced by serialize().
| int32_t Gps_Ephemeris::i_GPS_week {} |
GPS week number, aka WN [week].
Definition at line 85 of file gps_ephemeris.h.
Referenced by serialize().
| int32_t Gps_Ephemeris::i_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-200K)
Definition at line 87 of file gps_ephemeris.h.
Referenced by serialize().
| 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 133 of file gps_ephemeris.h.
1.8.14