0.4.1
Loading...
Searching...
No Matches
GPT.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 GPT.hpp
10/// @brief GPT2/3 (Global Pressure and Temperature) models
11/// @author Rui Wang (rui.wang@ins.uni-stuttgart.de)
12/// @author T. Topp (topp@ins.uni-stuttgart.de)
13/// @date 2023-02-22
14/// @note See https://vmf.geo.tuwien.ac.at/codes/ for code sources in matlab.
15
16#pragma once
17
18#include "Eigen/Dense"
19
20namespace NAV
21{
22/// GPT2 output parameters
24{
25 double p{}; ///< p pressure in [hPa] (vector of length nstat)
26 double T{}; ///< temperature in [degrees Celsius] (vector of length nstat)
27 double dT{}; ///< temperature lapse rate in [degrees per km] (vector of length nstat)
28 double Tm{}; ///< mean temperature of the water vapor in [degrees Kelvin] (vector of length nstat)
29 double e{}; ///< water vapor pressure in [hPa] (vector of length nstat)
30 double ah{}; ///< hydrostatic mapping function coefficient at zero height (VMF1) (vector of length nstat)
31 double aw{}; ///< wet mapping function coefficient (VMF1) (vector of length nstat)
32 double la{}; ///< water vapor decrease factor (vector of length nstat)
33 double undu{}; ///< geoid undulation in [m] (vector of length nstat)
34};
35
36/// GPT3 output parameters
37struct GPT3output : public GPT2output
38{
39 double Gn_h{}; ///< hydrostatic north gradient in [m]
40 double Ge_h{}; ///< hydrostatic east gradient in [m]
41 double Gn_w{}; ///< wet north gradient in [m]
42 double Ge_w{}; ///< wet east gradient in [m]
43};
44
45/// @brief Determine pressure, temperature, temperature lapse rate, mean temperature of the water vapor,
46/// water vapor pressure, hydrostatic and wet mapping function coefficients ah and aw, water vapour decrease
47/// factor and geoid undulation for specific sites near the Earth surface, based on a 1 x 1 degree GPT2 grid
48/// @param[in] mjd modified Julian date
49/// @param[in] lla_pos [𝜙, λ, h]^T Geodetic latitude, longitude and height in [rad, rad, m]
50/// @note See \cite bohm2015development Böhm2015
51GPT2output GPT2_param(const double& mjd, const Eigen::Vector3d& lla_pos);
52
53/// @brief Determine pressure, temperature, temperature lapse rate,
54/// mean temperature of the water vapor, water vapour pressure, hydrostatic
55/// and wet mapping function coefficients ah and aw, water vapour decrease
56/// factor, geoid undulation and empirical tropospheric gradients for
57/// specific sites near the earth's surface, based on a 1 x 1 degree GPT3 grid
58/// @param[in] mjd modified Julian date
59/// @param[in] lla_pos [𝜙, λ, h]^T Geodetic latitude, longitude and height in [rad, rad, m]
60/// @note See \cite Landskron2018 Landskron2018
61GPT3output GPT3_param(const double& mjd, const Eigen::Vector3d& lla_pos);
62
63/// @brief To calculate the day of year
64/// @param[in] mjd the Modified Julien Date
65/// @return the day of year
66double mjd2doy(const double& mjd);
67
68/// @brief This subroutine determines the zenith wet delay
69/// @param[in] e water vapor pressure in hPa
70/// @param[in] Tm mean temperature in Kelvin
71/// @param[in] la water vapor lapse rate (see definition in Askne and Nordius 1987)
72/// @return zwd: zenith wet delay in meter
73/// @note See \cite Askne1987 Aske and Nordius (1987), eq. 22
74double asknewet(const double& e, const double& Tm, const double& la);
75
76} // namespace NAV
double asknewet(const double &e, const double &Tm, const double &la)
This subroutine determines the zenith wet delay.
Definition GPT.cpp:587
double mjd2doy(const double &mjd)
To calculate the day of year.
Definition GPT.cpp:527
GPT2output GPT2_param(const double &mjd, const Eigen::Vector3d &lla_pos)
Determine pressure, temperature, temperature lapse rate, mean temperature of the water vapor,...
Definition GPT.cpp:22
GPT3output GPT3_param(const double &mjd, const Eigen::Vector3d &lla_pos)
Determine pressure, temperature, temperature lapse rate, mean temperature of the water vapor,...
Definition GPT.cpp:254
GPT2 output parameters.
Definition GPT.hpp:24
double ah
hydrostatic mapping function coefficient at zero height (VMF1) (vector of length nstat)
Definition GPT.hpp:30
double e
water vapor pressure in [hPa] (vector of length nstat)
Definition GPT.hpp:29
double Tm
mean temperature of the water vapor in [degrees Kelvin] (vector of length nstat)
Definition GPT.hpp:28
double la
water vapor decrease factor (vector of length nstat)
Definition GPT.hpp:32
double undu
geoid undulation in [m] (vector of length nstat)
Definition GPT.hpp:33
double T
temperature in [degrees Celsius] (vector of length nstat)
Definition GPT.hpp:26
double p
p pressure in [hPa] (vector of length nstat)
Definition GPT.hpp:25
double aw
wet mapping function coefficient (VMF1) (vector of length nstat)
Definition GPT.hpp:31
double dT
temperature lapse rate in [degrees per km] (vector of length nstat)
Definition GPT.hpp:27
GPT3 output parameters.
Definition GPT.hpp:38
double Ge_w
wet east gradient in [m]
Definition GPT.hpp:42
double Ge_h
hydrostatic east gradient in [m]
Definition GPT.hpp:40
double Gn_w
wet north gradient in [m]
Definition GPT.hpp:41
double Gn_h
hydrostatic north gradient in [m]
Definition GPT.hpp:39