0.4.1
Loading...
Searching...
No Matches
Saastamoinen.hpp
Go to the documentation of this file.
1// This file is part of INSTINCT, the INS Toolkit for Integrated
2// Navigation Concepts and Training by the Institute of Navigation of
3// the University of Stuttgart, Germany.
4//
5// This Source Code Form is subject to the terms of the Mozilla Public
6// License, v. 2.0. If a copy of the MPL was not distributed with this
7// file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
9/// @file Saastamoinen.hpp
10/// @brief Saastamoinen troposphere correction model
11/// @author T. Topp (topp@ins.uni-stuttgart.de)
12/// @date 2022-05-26
13/// @anchor Troposphere-Model-Saastamoinen
14///
15/// #### Algorithm description
16/// Given the approximate position \f$ \phi \f$, \f$ \lambda \f$, \f$ h \f$, the elevation \f$ \varepsilon \f$ and the relative humidity \f$ h_{\mathrm{rel}} \f$ the tropospheric delay can be calculated using Saastamoinen's formulas.
17///
18/// A standard atmosphere is applied as a reference for the necessary parameters of the atmosphere.
19///
20/// - total pressure in [hPa]
21/// \anchor eq-Saastamoinen-pressure \f{equation}{ \label{eq:eq-Saastamoinen-pressure}
22/// p = 1013.25 \cdot \left(1-2.2557 \cdot 10^{-5} \cdot h \right)^{5.2568}
23/// \f}
24///
25/// - absolute temperature in [K]
26/// \anchor eq-Saastamoinen-temperature \f{equation}{ \label{eq:eq-Saastamoinen-temperature}
27/// T = 15.0 - 6.5 \cdot 10^{-3} \cdot h + 273.15
28/// \f}
29///
30/// where
31/// \f$ T_{0} = 15^{\circ} \f$ temperature at sea level
32///
33/// - partial pressure of water vapor in [hPa]
34/// \anchor eq-Saastamoinen-partial_pressure_water_vapor \f{equation}{ \label{eq:eq-Saastamoinen-partial_pressure_water_vapor}
35/// e = 6.108 \cdot \exp \left\{ \frac{17.15 T-4684.0}{T-38.45} \right\} \cdot \frac{h_{\mathrm{rel}}}{100}
36/// \f}
37///
38/// where
39/// \f$ h_{\mathrm{rel}} = 0.7 \f$ is the relative humidity
40///
41/// - zenith hydrostatic delay in [m] (see \cite Davis1985 Davis, Appendix A, eq. A11, p. 1604 or \cite Böhm2006 Böhm ch. 1, eq. 3, p. 1)
42/// \anchor eq-Saastamoinen-zhd \f{equation}{ \label{eq:eq-Saastamoinen-zhd}
43/// \Delta L_{\mathrm{h}}^{\mathrm{z}} = \dfrac{0.0022768 \cdot p}{1-0.00266 \cdot \cos 2 \varphi-0.00028 \cdot \dfrac{ h }{1000}}
44/// \f}
45///
46/// - zenith wet delay (see \cite SpringerHandbookGNSS2017 Springer Handbook GNSS ch. 6, eq. 6.54, p. 173) in [m]
47/// \anchor eq-Saastamoinen-zwd \f{equation}{ \label{eq:eq-Saastamoinen-zwd}
48/// \Delta L_{\mathrm{w}}^{\mathrm{z}} = 0.002277 \cdot \left(\frac{1255.0}{T} + 0.05 \right) \cdot e
49/// \f}
50///
51/// - zenith total delay in [m]
52/// \anchor eq-Saastamoinen-ztd \f{equation}{ \label{eq:eq-Saastamoinen-ztd}
53/// \Delta L^{\mathrm{z}} = \Delta L_{\mathrm{h}}^{\mathrm{z}} + \Delta L_{\mathrm{w}}^{\mathrm{z}}
54/// \f}
55///
56/// - slant total delay along elevation angle in [m]
57/// \anchor eq-Saastamoinen-std \f{equation}{ \label{eq:eq-Saastamoinen-std}
58/// \Delta L_{\mathrm{troposphere}} = \frac{\Delta L^{\mathrm{z}}}{\cos{ \left( z d \right) }}
59/// \f}
60///
61/// where \f$ zd \f$ is the zenith angle as \f$ \varepsilon=\frac{\pi}{2} - z d \f$ in [rad]
62
63#pragma once
64
65#include <Eigen/Core>
66
67namespace NAV
68{
69
70/// @brief Calculates the tropospheric zenith hydrostatic delay with the Saastamoinen model
71/// @param[in] lla_pos [𝜙, λ, h]^T Geodetic latitude, longitude and height in [rad, rad, m]
72/// @param[in] p Total barometric pressure in [millibar]
73/// @return Range correction for troposphere and stratosphere for radio ranging in [m]
74/// @note See \cite Saastamoinen1973 Saastamoinen, p. 32
75/// @note See \cite Davis1985 Davis, Appendix A, p. 1604
76/// @note See \cite Böhm2006 Böhm ch. 1, p. 1
77/// @note See \cite RTKLIB RTKLIB ch. E.5 Troposphere and Ionosphere Models, sec. (1), p. 149
78double calcZHD_Saastamoinen(const Eigen::Vector3d& lla_pos, double p);
79
80/// @brief Calculates the tropospheric zenith wet delay with the Saastamoinen model
81/// @param[in] T Absolute temperature in [K]
82/// @param[in] e Partial pressure of water vapour in [millibar]
83/// @return Range correction for troposphere and stratosphere for radio ranging in [m]
84/// @note See \cite Saastamoinen1973 Saastamoinen, p. 32
85/// @note See \cite Davis1985 Davis, Appendix A, p. 1604
86/// @note See \cite Böhm2006 Böhm ch. 1, p. 1
87/// @note See \cite RTKLIB RTKLIB ch. E.5 Troposphere and Ionosphere Models, sec. (1), p. 149
88double calcZWD_Saastamoinen(double T, double e);
89
90} // namespace NAV
double calcZWD_Saastamoinen(double T, double e)
Calculates the tropospheric zenith wet delay with the Saastamoinen model.
double calcZHD_Saastamoinen(const Eigen::Vector3d &lla_pos, double p)
Calculates the tropospheric zenith hydrostatic delay with the Saastamoinen model.