0.2.0
|
Klobuchar Ionospheric correction model. More...
Go to the source code of this file.
Functions | |
double | NAV::calcIonosphericTimeDelay_Klobuchar (double tow, Frequency freq, int8_t freqNum, double latitude, double longitude, double elevation, double azimuth, const std::array< double, 4 > &alpha, const std::array< double, 4 > &beta) |
Calculates the ionospheric time delay with the Klobuchar model. | |
Klobuchar Ionospheric correction model.
double NAV::calcIonosphericTimeDelay_Klobuchar | ( | double | tow, |
Frequency | freq, | ||
int8_t | freqNum, | ||
double | latitude, | ||
double | longitude, | ||
double | elevation, | ||
double | azimuth, | ||
const std::array< double, 4 > & | alpha, | ||
const std::array< double, 4 > & | beta ) |
Calculates the ionospheric time delay with the Klobuchar model.
[in] | tow | GPS time of week in [s] |
[in] | freq | Frequency of the signal |
[in] | freqNum | Frequency number. Only used for GLONASS G1 and G2 |
[in] | latitude | 𝜙 Geodetic latitude in [rad] |
[in] | longitude | λ Geodetic longitude in [rad] |
[in] | elevation | Angle between the user and satellite [rad] |
[in] | azimuth | Angle between the user and satellite, measured clockwise positive from the true North [rad] |
[in] | alpha | The coefficients of a cubic equation representing the amplitude of the vertical delay |
[in] | beta | The coefficients of a cubic equation representing the period of the model |
Given the approximate position \( \phi, \lambda \), the elevation angle \( \varepsilon \), the azimuth \( \alpha \) as well as the 8 Klobuchar coefficients \( \alpha_i, \beta_i, i = 0,...,3 \) one can compute the following:
\begin{equation} \label{eq:eq-klobuchar-earthCentredAngle} \psi = \frac{0.0137}{\varepsilon + 0.11} - 0.022 \end{equation}
\begin{equation} \label{eq:eq-klobuchar-latIPP} \phi_\mathrm{IPP} = \phi + \psi \cos(\alpha) \end{equation}
If \( \phi_\mathrm{IPP} > 0.416 \), then \( \phi_\mathrm{IPP} = 0.416 \) and if \( \phi_\mathrm{IPP} < -0.416 \), then \( \phi_\mathrm{IPP} = -0.416 \) .\begin{equation} \label{eq:eq-klobuchar-longIPP} \lambda_\mathrm{IPP} = \lambda + \frac{\psi \sin(\alpha)}{\cos(\phi_\mathrm{IPP})} \end{equation}
\begin{equation} \label{eq:eq-klobuchar-latIPP-geomag} \phi_\mathrm{mag} = \phi_\mathrm{IPP} + 0.064 \cos(\lambda_\mathrm{IPP}-1.617) \end{equation}
\begin{equation} \label{eq:eq-klobuchar-localTimeIPP} t = 43200 \lambda_\mathrm{IPP} + t_\mathrm{GPS} \end{equation}
where the local time at IPP is \( 0 \leq t < 86400 \), so if \( t \geq 86400 \), \( t = t - 86400 \) and if \( t < 0 \), \( t = t + 86400 \).\begin{equation} \label{eq:eq-klobuchar-slantFactor} F = 1.0 + 16.0 (0.53-\varepsilon)^{3} \end{equation}
\begin{equation} \label{eq:eq-klobuchar-amp} A_\mathrm{I}=\sum_{n=0}^{3} \alpha_{n} \phi_{mag}^{n} \end{equation}
\begin{equation} \label{eq:eq-klobuchar-period} P_\mathrm{I}=\sum_{n=0}^{3} \beta_{n} \phi_{mag}^{n} \end{equation}
If \( P_\mathrm{I} < 72000 \), set it to \( P_\mathrm{I} = 72000 \).\begin{equation} \label{eq:eq-klobuchar-phase} X_\mathrm{I} = \frac{2\pi (t-50400)}{P_\mathrm{I}} \end{equation}
\begin{equation} \label{eq:eq-klobuchar-ionoTimeDelay} I_{L1_{GPS}}= \begin{cases}{ \left[5 \cdot 10^{-9}+ A_\mathrm{I} \cdot\left(1-\frac{X_{I}^{2}}{2}+\frac{X_{I}^{4}}{24}\right)\right] \cdot F} & , \text{if} \left|X_{I}\right| < 1.57 \\ 5 \cdot 10^{-9} \cdot F & , \text{if} \left|X_{I}\right| \geq 1.57 \end{cases} \end{equation}