Go to the documentation of this file.
39 #ifndef GNSSTK_GLOCNAVALMCORRECTED_CPP
40 #define GNSSTK_GLOCNAVALMCORRECTED_CPP
76 double zterm =
sin(u) *
sin(i);
80 rv.
v[0] = (vr * xterm) -
83 rv.
v[1] = (vr * yterm) -
86 rv.
v[2] = (vr * zterm) + (vu *
cos(u) *
sin(i));
104 p = a * (1.0 - epsilon*epsilon);
113 double Em1 = Lk -
omega;
117 while (fabs(Em1-Em) > 1e-9)
120 Em1 = Lk -
omega + (epsilon *
sin(Em));
132 double nu_top = 1.0 + epsilon;
133 double nu_bot = 1.0 - epsilon;
134 double nu_sqrt = sqrt(nu_top/nu_bot);
135 double nu_tan =
tan(E/2.0);
136 double nu_tanned = nu_sqrt * nu_tan;
137 double nu_angle = atan(nu_tanned);
152 r = p / (1.0 + (epsilon *
cos(nu)));
159 double scale = sqrt(
ell.
gm_km() / p);
160 vr = scale * epsilon *
sin(nu);
161 vu = scale * (1 + (epsilon *
cos(nu)));
165 #endif //GNSSTK_GLOCNAVALMCORRECTED_CPP
@ PZ90
The reference frame used by Glonass.
double lambda
longitude of ascending node
RefFrame frame
reference frame of this data
Triple v
satellite velocity in ECEF Cartesian, meters/second
void setData(double L, const Uncorrected &uncor, const Deltas &delta1, const Deltas &delta2)
double omega
argument of perigee
Xvt getXvt(const gnsstk::CommonTime &toi)
double l
Quasi-Keplerian thing (true longitude?).
double sin(gnsstk::Angle x)
double relcorr
relativity correction (standard 2R.V/c^2 term), seconds
Triple x
Sat position ECEF Cartesian (X,Y,Z) meters.
static const GNSSTK_EXPORT PZ90Ellipsoid ell
Ellipsoid parameters used by GLONASS.
virtual double gm_km() const noexcept
double cos(gnsstk::Angle x)
double tan(gnsstk::Angle x)
double omega
Almanac parameter for argument of perigee (semicirc).
double lambda
Longitude of first ascending node (semicirc).
virtual double computeRelativityCorrection(void)
double h
Quasi-Keplerian thing (true latitude?).
static constexpr GNSSTK_EXPORT double omegaE
Earth's rotation rate (rad/s).
double epsilon
epsilon prime, eccentricity.
gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:39