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

This class is a storage and orbital model functions for the GLONASS SV ephemeris data as described in GLONASS ICD (Edition 5.1). More...

#include <glonass_gnav_ephemeris.h>

Public Member Functions

 Glonass_Gnav_Ephemeris ()=default
double sv_clock_drift (double transmitTime, double timeCorrUTC)
 Sets (d_satClkDrift)and returns the clock drift in seconds according to the User Algorithm for SV Clock Correction.
boost::posix_time::ptime compute_GLONASS_time (double offset_time) const
 Computes the GLONASS System Time and returns a boost::posix_time::ptime object \ param offset_time Is the start of day offset to compute the time.
boost::posix_time::ptime glot_to_utc (double offset_time, double glot2utc_corr) const
 Converts from GLONASST to UTC.
void glot_to_gpst (double tod_offset, double glot2utc_corr, double glot2gpst_corr, int32_t *WN, double *TOW) const
 Converts from GLONASST to GPST.
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 Attributes

double d_m {}
 String number within frame [dimensionless].
double d_t_k {}
 GLONASS Time (UTC(SU) + 3 h) referenced to the beginning of the frame within the current day [s].
double d_t_b {}
 Reference ephemeris relative time in GLONASS Time (UTC(SU) + 3 h). Index of a time interval within current day according to UTC(SU) + 03 hours 00 min. [s].
double d_M {}
 Type of satellite transmitting navigation signal [dimensionless].
double d_gamma_n {}
 Relative deviation of predicted carrier frequency value of n- satellite from nominal value at the instant tb [dimensionless].
double d_tau_n {}
 Correction to the nth satellite time (tn) relative to GLONASS time (te),.
double d_Xn {}
 Earth-fixed coordinate x of the satellite in PZ-90.02 coordinate system [km].
double d_Yn {}
 Earth-fixed coordinate y of the satellite in PZ-90.02 coordinate system [km].
double d_Zn {}
 Earth-fixed coordinate z of the satellite in PZ-90.02 coordinate system [km].
double d_VXn {}
 Earth-fixed velocity coordinate x of the satellite in PZ-90.02 coordinate system [km/s].
double d_VYn {}
 Earth-fixed velocity coordinate y of the satellite in PZ-90.02 coordinate system [km/s].
double d_VZn {}
 Earth-fixed velocity coordinate z of the satellite in PZ-90.02 coordinate system [km/s].
double d_AXn {}
 Earth-fixed acceleration coordinate x of the satellite in PZ-90.02 coordinate system [km/s^2].
double d_AYn {}
 Earth-fixed acceleration coordinate y of the satellite in PZ-90.02 coordinate system [km/s^2].
double d_AZn {}
 Earth-fixed acceleration coordinate z of the satellite in PZ-90.02 coordinate system [km/s^2].
double d_B_n {}
 Health flag [dimensionless].
double d_P {}
 Technological parameter of control segment, indication the satellite operation mode in respect of time parameters [dimensionless].
double d_N_T {}
 Current date, calendar number of day within four-year interval starting from the 1-st of January in a leap year [days].
double d_F_T {}
 Parameter that provides the predicted satellite user range accuracy at time tb [dimensionless].
double d_n {}
 Index of the satellite transmitting given navigation signal. It corresponds to a slot number within GLONASS constellation.
double d_Delta_tau_n {}
 Time difference between navigation RF signal transmitted in L2 sub- band and aviation RF signal transmitted in L1 sub-band by nth satellite. [dimensionless].
double d_E_n {}
 Characterises "age" of a current information [days].
double d_P_1 {}
 Flag of the immediate data updating [minutes].
bool d_P_2 {}
 Flag of oddness ("1") or evenness ("0") of the value of (tb) [dimensionless].
bool d_P_3 {}
 Flag indicating a number of satellites for which almanac is transmitted within given frame: "1" corresponds to 5 satellites and "0" corresponds to 4 satellites [dimensionless].
bool d_P_4 {}
 Flag to show that ephemeris parameters are present. "1" indicates that updated ephemeris or frequency/time parameters have been uploaded by the control segment [dimensionless].
bool d_l3rd_n {}
 Health flag for nth satellite; ln = 0 indicates the n-th satellite is healthy, ln = 1 indicates malfunction of this nth satellite [dimensionless].
bool d_l5th_n {}
 Health flag for nth satellite; ln = 0 indicates the n-th satellite is healthy, ln = 1 indicates malfunction of this nth satellite [dimensionless].
int32_t i_satellite_freq_channel {}
 SV Frequency Channel Number.
uint32_t PRN {}
 SV PRN Number, equivalent to slot number for compatibility with GPS.
uint32_t i_satellite_slot_number {}
 SV Slot Number.
double d_yr = 1972.0
 Current year.
double d_satClkDrift {}
 GLONASS clock error.
double d_dtr {}
 relativistic clock correction term
double d_iode {}
 Issue of data, ephemeris (Bit 0-6 of tb).
double d_tau_c {}
 GLONASST 2 UTC correction (todo) may be eliminated.
double d_TOW {}
 GLONASST IN GPST seconds of week.
int32_t d_WN {}
 GLONASST IN GPST week number of the start of frame.
double d_tod {}
 Time of Day since ephemeris where decoded.

Detailed Description

This class is a storage and orbital model functions for the GLONASS SV ephemeris data as described in GLONASS ICD (Edition 5.1).

Note
Code added as part of GSoC 2017 program
See also
GLONASS ICD

Definition at line 40 of file glonass_gnav_ephemeris.h.

Constructor & Destructor Documentation

◆ Glonass_Gnav_Ephemeris()

Glonass_Gnav_Ephemeris::Glonass_Gnav_Ephemeris ( )
default

Default constructor

Member Function Documentation

◆ compute_GLONASS_time()

boost::posix_time::ptime Glonass_Gnav_Ephemeris::compute_GLONASS_time ( double offset_time) const

Computes the GLONASS System Time and returns a boost::posix_time::ptime object \ param offset_time Is the start of day offset to compute the time.

◆ glot_to_gpst()

void Glonass_Gnav_Ephemeris::glot_to_gpst ( double tod_offset,
double glot2utc_corr,
double glot2gpst_corr,
int32_t * WN,
double * TOW ) const

Converts from GLONASST to GPST.

Converts from GLONASST to GPST in time of week (TOW) and week number (WN) format

Parameters
[in]tod_offsetIs the start of day offset
[in]glot2utc_corrCorrection from GLONASST to UTC
[in]glot2gpst_corrCorrection from GLONASST to GPST
[out]WNWeek Number, not in mod(1024) format
[out]TOWTime of Week in seconds of week

◆ glot_to_utc()

boost::posix_time::ptime Glonass_Gnav_Ephemeris::glot_to_utc ( double offset_time,
double glot2utc_corr ) const

Converts from GLONASST to UTC.

The function simply adjust for the 6 hrs offset between GLONASST and UTC

Parameters
[in]offset_timeIs the start of day offset
[in]glot2utc_corrCorrection from GLONASST to UTC
Returns
UTC time as a boost::posix_time::ptime object

◆ serialize()

template<class Archive>
void Glonass_Gnav_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.

< SV PRN frequency channel number

< String number within frame [dimensionless]

< Time referenced to the beginning of the frame within the current day [hours, minutes, seconds]

< Index of a time interval within current day according to UTC(SU) + 03 hours 00 min. [minutes]

< Type of satellite transmitting navigation signal [dimensionless]

< Relative deviation of predicted carrier frequency value of n- satellite from nominal value at the instant tb [dimensionless]

< Correction to the nth satellite time (tn) relative to GLONASS time (te)

< Earth-fixed coordinate x of the satellite in PZ-90.02 coordinate system [km].

< Earth-fixed coordinate y of the satellite in PZ-90.02 coordinate system [km]

< Earth-fixed coordinate z of the satellite in PZ-90.02 coordinate system [km]

< Earth-fixed velocity coordinate x of the satellite in PZ-90.02 coordinate system [km/s]

< Earth-fixed velocity coordinate y of the satellite in PZ-90.02 coordinate system [km/s]

< Earth-fixed velocity coordinate z of the satellite in PZ-90.02 coordinate system [km/s]

< Earth-fixed acceleration coordinate x of the satellite in PZ-90.02 coordinate system [km/s^2]

< Earth-fixed acceleration coordinate y of the satellite in PZ-90.02 coordinate system [km/s^2]

< Earth-fixed acceleration coordinate z of the satellite in PZ-90.02 coordinate system [km/s^2]

< Health flag [dimensionless]

< Technological parameter of control segment, indication the satellite operation mode in respect of time parameters [dimensionless]

< Current date, calendar number of day within four-year interval starting from the 1-st of January in a leap year [days]

< Parameter that provides the predicted satellite user range accuracy at time tb [dimensionless]

< Index of the satellite transmitting given navigation signal. It corresponds to a slot number within GLONASS constellation

< Time difference between navigation RF signal transmitted in L2 sub- band and aviation RF signal transmitted in L1 sub-band by nth satellite. [dimensionless]

< Characterises "age" of a current information [days]

< Flag of the immediate data updating.

< Flag of oddness ("1") or evenness ("0") of the value of (tb) [dimensionless]

< Flag indicating a number of satellites for which almanac is transmitted within given frame: "1" corresponds to 5 satellites and "0" corresponds to 4 satellites [dimensionless]

< Flag to show that ephemeris parameters are present. "1" indicates that updated ephemeris or frequency/time parameters have been uploaded by the control segment [dimensionless]

< Health flag for nth satellite; ln = 0 indicates the n-th satellite is helthy, ln = 1 indicates malfunction of this nth satellite [dimensionless]

< Health flag for nth satellite; ln = 0 indicates the n-th satellite is helthy, ln = 1 indicates malfunction of this nth satellite [dimensionless]

Definition at line 128 of file glonass_gnav_ephemeris.h.

References d_AXn, d_AYn, d_AZn, d_B_n, d_Delta_tau_n, d_E_n, d_F_T, d_gamma_n, d_l3rd_n, d_l5th_n, d_M, d_m, d_n, d_N_T, d_P, d_P_1, d_P_2, d_P_3, d_P_4, d_t_b, d_t_k, d_tau_n, d_VXn, d_VYn, d_VZn, d_Xn, d_Yn, d_Zn, i_satellite_freq_channel, i_satellite_slot_number, and PRN.

◆ sv_clock_drift()

double Glonass_Gnav_Ephemeris::sv_clock_drift ( double transmitTime,
double timeCorrUTC )

Sets (d_satClkDrift)and returns the clock drift in seconds according to the User Algorithm for SV Clock Correction.

Member Data Documentation

◆ d_AXn

double Glonass_Gnav_Ephemeris::d_AXn {}

Earth-fixed acceleration coordinate x of the satellite in PZ-90.02 coordinate system [km/s^2].

Definition at line 60 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_AYn

double Glonass_Gnav_Ephemeris::d_AYn {}

Earth-fixed acceleration coordinate y of the satellite in PZ-90.02 coordinate system [km/s^2].

Definition at line 61 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_AZn

double Glonass_Gnav_Ephemeris::d_AZn {}

Earth-fixed acceleration coordinate z of the satellite in PZ-90.02 coordinate system [km/s^2].

Definition at line 62 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_B_n

double Glonass_Gnav_Ephemeris::d_B_n {}

Health flag [dimensionless].

Definition at line 63 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_Delta_tau_n

double Glonass_Gnav_Ephemeris::d_Delta_tau_n {}

Time difference between navigation RF signal transmitted in L2 sub- band and aviation RF signal transmitted in L1 sub-band by nth satellite. [dimensionless].

Definition at line 68 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_dtr

double Glonass_Gnav_Ephemeris::d_dtr {}

relativistic clock correction term

Definition at line 84 of file glonass_gnav_ephemeris.h.

◆ d_E_n

double Glonass_Gnav_Ephemeris::d_E_n {}

Characterises "age" of a current information [days].

Definition at line 69 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_F_T

double Glonass_Gnav_Ephemeris::d_F_T {}

Parameter that provides the predicted satellite user range accuracy at time tb [dimensionless].

Definition at line 66 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_gamma_n

double Glonass_Gnav_Ephemeris::d_gamma_n {}

Relative deviation of predicted carrier frequency value of n- satellite from nominal value at the instant tb [dimensionless].

Definition at line 52 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_iode

double Glonass_Gnav_Ephemeris::d_iode {}

Issue of data, ephemeris (Bit 0-6 of tb).

Definition at line 85 of file glonass_gnav_ephemeris.h.

◆ d_l3rd_n

bool Glonass_Gnav_Ephemeris::d_l3rd_n {}

Health flag for nth satellite; ln = 0 indicates the n-th satellite is healthy, ln = 1 indicates malfunction of this nth satellite [dimensionless].

Definition at line 74 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_l5th_n

bool Glonass_Gnav_Ephemeris::d_l5th_n {}

Health flag for nth satellite; ln = 0 indicates the n-th satellite is healthy, ln = 1 indicates malfunction of this nth satellite [dimensionless].

Definition at line 75 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_M

double Glonass_Gnav_Ephemeris::d_M {}

Type of satellite transmitting navigation signal [dimensionless].

Definition at line 51 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_m

double Glonass_Gnav_Ephemeris::d_m {}

String number within frame [dimensionless].

Definition at line 48 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_n

double Glonass_Gnav_Ephemeris::d_n {}

Index of the satellite transmitting given navigation signal. It corresponds to a slot number within GLONASS constellation.

Definition at line 67 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_N_T

double Glonass_Gnav_Ephemeris::d_N_T {}

Current date, calendar number of day within four-year interval starting from the 1-st of January in a leap year [days].

Definition at line 65 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_P

double Glonass_Gnav_Ephemeris::d_P {}

Technological parameter of control segment, indication the satellite operation mode in respect of time parameters [dimensionless].

Definition at line 64 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_P_1

double Glonass_Gnav_Ephemeris::d_P_1 {}

Flag of the immediate data updating [minutes].

Definition at line 70 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_P_2

bool Glonass_Gnav_Ephemeris::d_P_2 {}

Flag of oddness ("1") or evenness ("0") of the value of (tb) [dimensionless].

Definition at line 71 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_P_3

bool Glonass_Gnav_Ephemeris::d_P_3 {}

Flag indicating a number of satellites for which almanac is transmitted within given frame: "1" corresponds to 5 satellites and "0" corresponds to 4 satellites [dimensionless].

Definition at line 72 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_P_4

bool Glonass_Gnav_Ephemeris::d_P_4 {}

Flag to show that ephemeris parameters are present. "1" indicates that updated ephemeris or frequency/time parameters have been uploaded by the control segment [dimensionless].

Definition at line 73 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_satClkDrift

double Glonass_Gnav_Ephemeris::d_satClkDrift {}

GLONASS clock error.

Definition at line 83 of file glonass_gnav_ephemeris.h.

◆ d_t_b

double Glonass_Gnav_Ephemeris::d_t_b {}

Reference ephemeris relative time in GLONASS Time (UTC(SU) + 3 h). Index of a time interval within current day according to UTC(SU) + 03 hours 00 min. [s].

Definition at line 50 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_t_k

double Glonass_Gnav_Ephemeris::d_t_k {}

GLONASS Time (UTC(SU) + 3 h) referenced to the beginning of the frame within the current day [s].

Definition at line 49 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_tau_c

double Glonass_Gnav_Ephemeris::d_tau_c {}

GLONASST 2 UTC correction (todo) may be eliminated.

Definition at line 86 of file glonass_gnav_ephemeris.h.

◆ d_tau_n

double Glonass_Gnav_Ephemeris::d_tau_n {}

Correction to the nth satellite time (tn) relative to GLONASS time (te),.

Definition at line 53 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_tod

double Glonass_Gnav_Ephemeris::d_tod {}

Time of Day since ephemeris where decoded.

Definition at line 89 of file glonass_gnav_ephemeris.h.

◆ d_TOW

double Glonass_Gnav_Ephemeris::d_TOW {}

GLONASST IN GPST seconds of week.

Definition at line 87 of file glonass_gnav_ephemeris.h.

◆ d_VXn

double Glonass_Gnav_Ephemeris::d_VXn {}

Earth-fixed velocity coordinate x of the satellite in PZ-90.02 coordinate system [km/s].

Definition at line 57 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_VYn

double Glonass_Gnav_Ephemeris::d_VYn {}

Earth-fixed velocity coordinate y of the satellite in PZ-90.02 coordinate system [km/s].

Definition at line 58 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_VZn

double Glonass_Gnav_Ephemeris::d_VZn {}

Earth-fixed velocity coordinate z of the satellite in PZ-90.02 coordinate system [km/s].

Definition at line 59 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_WN

int32_t Glonass_Gnav_Ephemeris::d_WN {}

GLONASST IN GPST week number of the start of frame.

Definition at line 88 of file glonass_gnav_ephemeris.h.

◆ d_Xn

double Glonass_Gnav_Ephemeris::d_Xn {}

Earth-fixed coordinate x of the satellite in PZ-90.02 coordinate system [km].

Definition at line 54 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_Yn

double Glonass_Gnav_Ephemeris::d_Yn {}

Earth-fixed coordinate y of the satellite in PZ-90.02 coordinate system [km].

Definition at line 55 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ d_yr

double Glonass_Gnav_Ephemeris::d_yr = 1972.0

Current year.

Definition at line 82 of file glonass_gnav_ephemeris.h.

◆ d_Zn

double Glonass_Gnav_Ephemeris::d_Zn {}

Earth-fixed coordinate z of the satellite in PZ-90.02 coordinate system [km].

Definition at line 56 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ i_satellite_freq_channel

int32_t Glonass_Gnav_Ephemeris::i_satellite_freq_channel {}

SV Frequency Channel Number.

Definition at line 79 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ i_satellite_slot_number

uint32_t Glonass_Gnav_Ephemeris::i_satellite_slot_number {}

SV Slot Number.

Definition at line 81 of file glonass_gnav_ephemeris.h.

Referenced by serialize().

◆ PRN

uint32_t Glonass_Gnav_Ephemeris::PRN {}

SV PRN Number, equivalent to slot number for compatibility with GPS.

Definition at line 80 of file glonass_gnav_ephemeris.h.

Referenced by serialize().


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