26 switch (ionosphereModel)
31 return "Klobuchar / Broadcast";
44 const Eigen::Vector3d& lla_pos,
45 double elevation,
double azimuth,
49 if (lla_pos(2) < -1000.0 || std::isnan(elevation))
51 LOG_TRACE(
"Not calculating ionospheric delay, due to altitude being invalid: {}m", lla_pos(2));
55 switch (ionosphereModel)
70 LOG_ERROR(
"Ionosphere model Klobuchar/Broadcast needs correction parameters. Ionospheric time delay will be 0.");
83 constexpr double ERR_BRDCI = 0.5;
86 * std::pow(dpsr_I * ERR_BRDCI, 2);
Combo representing an enumeration.
Klobuchar Ionospheric correction model.
Utility class for logging to console and file.
#define LOG_ERROR
Error occurred, which stops part of the program to work, but not everything.
#define LOG_TRACE
Detailled info to trace the execution of the program. Should not be called on functions which receive...
Frequency definition for different satellite systems.
Frequency getL1() const
Returns the L1 Frequency for each constellation.
static constexpr double C
Speed of light [m/s].
@ Beta
Coefficients of a cubic equation representing the period of the model.
@ Alpha
Coefficients of a cubic equation representing the amplitude of the vertical delay.
const std::array< double, 4 > * get(SatelliteSystem satSys, AlphaBeta alphaBeta) const
Get the Ionospheric Correction values.
double ratioFreqSquared(Frequency f1, Frequency f2, int8_t num1, int8_t num2)
Calculates the ration of the frequencies squared γ
IonosphereModel
Available Ionosphere Models.
@ COUNT
Amount of items in the enum.
@ None
Ionosphere model turned off.
@ Klobuchar
Klobuchar model (GPS), also called Broadcast sometimes.
const char * to_string(gui::widgets::PositionWithFrame::ReferenceFrame refFrame)
Converts the enum to a string.
double ionoErrorVar(double dpsr_I, Frequency freq, int8_t num)
Calculates the ionospheric error variance.
bool ComboIonosphereModel(const char *label, IonosphereModel &ionosphereModel)
Shows a ComboBox to select the ionosphere model.
double calcIonosphericDelay(double tow, Frequency freq, int8_t freqNum, const Eigen::Vector3d &lla_pos, double elevation, double azimuth, IonosphereModel ionosphereModel, const IonosphericCorrections *corrections)
Calculates the ionospheric delay.
@ GPS
Global Positioning System.
double 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.