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

This class is a storage and orbital model functions for the GPS SV ephemeris data as described in BeiDou Navigation Satellite System Signal In Space Interface Control Document Open Service Signal B1I (Version 3.0) More...

#include <beidou_dnav_ephemeris.h>

Public Member Functions

 Beidou_Dnav_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 unsigned int 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

unsigned int i_satellite_PRN {}
 SV PRN NUMBER. More...
 
double d_TOW {}
 Time of BEIDOU 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_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...
 
double d_Toe {}
 Ephemeris data reference time of week (Ref. 20.3.3.4.3 IS-GPS-200K) [s]. More...
 
double 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...
 
int i_BEIDOU_week {}
 BEIDOU week number, aka WN [week]. More...
 
int 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...
 
int i_SV_health {}
 
double d_TGD1 {}
 Estimated Group Delay Differential on B1I [s]. More...
 
double d_TGD2 {}
 Estimated Group Delay Differential on B2I [s]. More...
 
double d_AODC {}
 Age of Data, Clock. More...
 
double d_AODE {}
 Age of Data, Ephemeris. More...
 
int 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...
 
int i_sig_type {}
 BDS: data source (0:unknown,1:B1I,2:B1Q,3:B2I,4:B2Q,5:B3I,6:B3Q) */. More...
 
int i_nav_type {}
 BDS: nav type (0:unknown,1:IGSO/MEO,2:GEO) */. 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. More...
 

Detailed Description

This class is a storage and orbital model functions for the GPS SV ephemeris data as described in BeiDou Navigation Satellite System Signal In Space Interface Control Document Open Service Signal B1I (Version 3.0)

See http://en.beidou.gov.cn/SYSTEMS/Officialdocument/201902/P020190227601370045731.pdf

Definition at line 38 of file beidou_dnav_ephemeris.h.

Constructor & Destructor Documentation

◆ Beidou_Dnav_Ephemeris()

Beidou_Dnav_Ephemeris::Beidou_Dnav_Ephemeris ( )

Default constructor

Member Function Documentation

◆ satellitePosition()

double Beidou_Dnav_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)

◆ serialize()

template<class Archive >
void Beidou_Dnav_Ephemeris::serialize ( Archive &  archive,
const unsigned int  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 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]

< GPS week number, aka WN [week]

< 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)

< Issue of Data, Clock

< 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: L1-L2 correction term only for the benefit of "L1 P(Y)" or "L2 P(Y)" s users [s]

< 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 beidou_dnav_ephemeris.h.

References b_alert_flag, b_antispoofing_flag, b_fit_interval_flag, b_integrity_status_flag, d_A_f0, d_A_f1, d_A_f2, d_AODC, d_AODE, d_Cic, d_Cis, d_Crc, d_Crs, d_Cuc, d_Cus, d_Delta_n, d_eccentricity, d_i_0, d_IDOT, d_M_0, d_OMEGA, d_OMEGA0, d_OMEGA_DOT, d_sqrt_A, d_TGD1, d_TGD2, d_Toe, d_TOW, i_AODO, i_BEIDOU_week, i_satellite_PRN, and i_SV_accuracy.

◆ sv_clock_drift()

double Beidou_Dnav_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 Beidou_Dnav_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 Beidou_Dnav_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 115 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ b_antispoofing_flag

bool Beidou_Dnav_Ephemeris::b_antispoofing_flag {}

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

Definition at line 116 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ b_fit_interval_flag

bool Beidou_Dnav_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 96 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ b_integrity_status_flag

bool Beidou_Dnav_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 114 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_A_f0

double Beidou_Dnav_Ephemeris::d_A_f0 {}

Coefficient 0 of code phase offset model [s].

Definition at line 100 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_A_f1

double Beidou_Dnav_Ephemeris::d_A_f1 {}

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

Definition at line 101 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_A_f2

double Beidou_Dnav_Ephemeris::d_A_f2 {}

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

Definition at line 102 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_AODC

double Beidou_Dnav_Ephemeris::d_AODC {}

Age of Data, Clock.

Definition at line 89 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_AODE

double Beidou_Dnav_Ephemeris::d_AODE {}

Age of Data, Ephemeris.

Definition at line 90 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_Cic

double Beidou_Dnav_Ephemeris::d_Cic {}

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

Definition at line 76 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_Cis

double Beidou_Dnav_Ephemeris::d_Cis {}

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

Definition at line 78 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_Crc

double Beidou_Dnav_Ephemeris::d_Crc {}

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

Definition at line 80 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_Crs

double Beidou_Dnav_Ephemeris::d_Crs {}

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

Definition at line 67 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_Cuc

double Beidou_Dnav_Ephemeris::d_Cuc {}

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

Definition at line 70 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_Cus

double Beidou_Dnav_Ephemeris::d_Cus {}

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

Definition at line 72 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_Delta_n

double Beidou_Dnav_Ephemeris::d_Delta_n {}

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

Definition at line 68 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_dtr

double Beidou_Dnav_Ephemeris::d_dtr {}

relativistic clock correction term

Definition at line 120 of file beidou_dnav_ephemeris.h.

◆ d_eccentricity

double Beidou_Dnav_Ephemeris::d_eccentricity {}

Eccentricity [dimensionless].

Definition at line 71 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_i_0

double Beidou_Dnav_Ephemeris::d_i_0 {}

Inclination Angle at Reference Time [semi-circles].

Definition at line 79 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_IDOT

double Beidou_Dnav_Ephemeris::d_IDOT {}

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

Definition at line 83 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_M_0

double Beidou_Dnav_Ephemeris::d_M_0 {}

Mean Anomaly at Reference Time [semi-circles].

Definition at line 69 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_OMEGA

double Beidou_Dnav_Ephemeris::d_OMEGA {}

Argument of Perigee [semi-cicles].

Definition at line 81 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_OMEGA0

double Beidou_Dnav_Ephemeris::d_OMEGA0 {}

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

Definition at line 77 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_OMEGA_DOT

double Beidou_Dnav_Ephemeris::d_OMEGA_DOT {}

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

Definition at line 82 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_satClkDrift

double Beidou_Dnav_Ephemeris::d_satClkDrift {}

GPS clock error.

Definition at line 119 of file beidou_dnav_ephemeris.h.

◆ d_satpos_X

double Beidou_Dnav_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 123 of file beidou_dnav_ephemeris.h.

◆ d_satpos_Y

double Beidou_Dnav_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 124 of file beidou_dnav_ephemeris.h.

◆ d_satpos_Z

double Beidou_Dnav_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 125 of file beidou_dnav_ephemeris.h.

◆ d_satvel_X

double Beidou_Dnav_Ephemeris::d_satvel_X {}

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

Definition at line 128 of file beidou_dnav_ephemeris.h.

◆ d_satvel_Y

double Beidou_Dnav_Ephemeris::d_satvel_Y {}

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

Definition at line 129 of file beidou_dnav_ephemeris.h.

◆ d_satvel_Z

double Beidou_Dnav_Ephemeris::d_satvel_Z {}

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

Definition at line 130 of file beidou_dnav_ephemeris.h.

◆ d_sqrt_A

double Beidou_Dnav_Ephemeris::d_sqrt_A {}

Square Root of the Semi-Major Axis [sqrt(m)].

Definition at line 73 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_TGD1

double Beidou_Dnav_Ephemeris::d_TGD1 {}

Estimated Group Delay Differential on B1I [s].

Definition at line 87 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_TGD2

double Beidou_Dnav_Ephemeris::d_TGD2 {}

Estimated Group Delay Differential on B2I [s].

Definition at line 88 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_Toc

double Beidou_Dnav_Ephemeris::d_Toc {}

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

Definition at line 75 of file beidou_dnav_ephemeris.h.

◆ d_Toe

double Beidou_Dnav_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 beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ d_TOW

double Beidou_Dnav_Ephemeris::d_TOW {}

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

Definition at line 66 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ i_AODO

int Beidou_Dnav_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 91 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ i_BEIDOU_week

int Beidou_Dnav_Ephemeris::i_BEIDOU_week {}

BEIDOU week number, aka WN [week].

Definition at line 84 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ i_nav_type

int Beidou_Dnav_Ephemeris::i_nav_type {}

BDS: nav type (0:unknown,1:IGSO/MEO,2:GEO) */.

Definition at line 94 of file beidou_dnav_ephemeris.h.

◆ i_satellite_PRN

unsigned int Beidou_Dnav_Ephemeris::i_satellite_PRN {}

SV PRN NUMBER.

Definition at line 65 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ i_sig_type

int Beidou_Dnav_Ephemeris::i_sig_type {}

BDS: data source (0:unknown,1:B1I,2:B1Q,3:B2I,4:B2Q,5:B3I,6:B3Q) */.

Definition at line 93 of file beidou_dnav_ephemeris.h.

◆ i_SV_accuracy

int Beidou_Dnav_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 85 of file beidou_dnav_ephemeris.h.

Referenced by serialize().

◆ satelliteBlock

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

Map that stores to which block the PRN belongs.

Definition at line 132 of file beidou_dnav_ephemeris.h.


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