190 friend void to_json(
json& j,
const ModelParametersSine& obj);
191 friend void from_json(
const json& j, ModelParametersSine& obj);
193 friend void to_json(
json& j,
const ModelParametersSineOffset& obj);
194 friend void from_json(
const json& j, ModelParametersSineOffset& obj);
196 friend void to_json(
json& j,
const ModelParametersSineCN0& obj);
197 friend void from_json(
const json& j, ModelParametersSineCN0& obj);
199 friend void to_json(
json& j,
const ModelParametersRtklib& obj);
200 friend void from_json(
const json& j, ModelParametersRtklib& obj);
202 friend void to_json(
json& j,
const ModelParametersSineSqrt& obj);
203 friend void from_json(
const json& j, ModelParametersSineSqrt& obj);
205 friend void to_json(
json& j,
const ModelParametersExponential& obj);
206 friend void from_json(
const json& j, ModelParametersExponential& obj);
208 friend void to_json(
json& j,
const ModelParametersCosineType& obj);
209 friend void from_json(
const json& j, ModelParametersCosineType& obj);
220void to_json(
json& j,
const GnssMeasurementErrorModel& obj);
224void from_json(
const json& j, GnssMeasurementErrorModel& obj);
229void to_json(
json& j,
const GnssMeasurementErrorModel::ModelParametersSine& obj);
233void from_json(
const json& j, GnssMeasurementErrorModel::ModelParametersSine& obj);
238void to_json(
json& j,
const GnssMeasurementErrorModel::ModelParametersSineOffset& obj);
242void from_json(
const json& j, GnssMeasurementErrorModel::ModelParametersSineOffset& obj);
247void to_json(
json& j,
const GnssMeasurementErrorModel::ModelParametersSineCN0& obj);
251void from_json(
const json& j, GnssMeasurementErrorModel::ModelParametersSineCN0& obj);
256void to_json(
json& j,
const GnssMeasurementErrorModel::ModelParametersRtklib& obj);
260void from_json(
const json& j, GnssMeasurementErrorModel::ModelParametersRtklib& obj);
265void to_json(
json& j,
const GnssMeasurementErrorModel::ModelParametersSineSqrt& obj);
269void from_json(
const json& j, GnssMeasurementErrorModel::ModelParametersSineSqrt& obj);
274void to_json(
json& j,
const GnssMeasurementErrorModel::ModelParametersExponential& obj);
278void from_json(
const json& j, GnssMeasurementErrorModel::ModelParametersExponential& obj);
283void to_json(
json& j,
const GnssMeasurementErrorModel::ModelParametersCosineType& obj);
287void from_json(
const json& j, GnssMeasurementErrorModel::ModelParametersCosineType& obj);
nlohmann::json json
json namespace
Frequency definition for different satellite systems.
Frequency definition for different satellite systems.
Errors concerning GNSS observations.
void updateStdDevCurvePlot(Model model)
Updates the curve plot data for the given model.
ModelParametersCosineType _modelParametersCosineType
Model parameters for the 'cosine - type' model.
ModelParametersExponential _modelParametersExponential
Model parameters for the 'exponential' model.
double _carrierStdDev
Carrier Measurement error standard deviation per Frequency [m].
double carrierMeasErrorVar(const SatelliteSystem &satSys, double elevation, double cn0) const
Calculates the measurement Error Variance for carrier-phase observations.
double _codeStdDev
Code/Pseudorange Measurement error standard deviation per Frequency [m].
GnssMeasurementErrorModel()
Default constructor.
ModelParametersSine _modelParametersSine
Model parameters for the 'sine' model.
double weightingFunction(Model model, double elevation, double cn0) const
Calculates the weighting function for the standard deviation.
friend void to_json(json &j, const GnssMeasurementErrorModel &obj)
Converts the provided object into json.
ModelParametersSineOffset _modelParametersSineOffset
Model parameters for the 'sine + offset' model.
double _plotCN0
Carrier-to-Noise density [dB-Hz] to use in the plot.
std::vector< std::vector< double > > _stdDevCurvePlot
Standard deviations for plotting.
double codeBiasErrorVar() const
Returns the Code Bias Error Variance.
@ SINE_CN0
Sine and CN0 dependent. See groves2013 Groves, ch. 9.4.2.4, eq. 9.168, p. 422 (range acceleration is ...
@ None
Measurement error model turned off.
@ COUNT
Amount of items in the enum.
@ EXPONENTIAL
Exponential. See eulergoad1991 Euler and Goad 1991 / li2016 Li et al. 2016.
@ SINE
Sine. See dach2015 Dach 2015.
@ RTKLIB
RTKLIB error model. See rtklib RTKLIB ch. E.6, eq. E.6.24, p. 162.
@ COSINE_TYPE
Cosine Type. See hadas2020 Hadas 2020 eq. 14, p. 8.
@ SINE_SQRT
Sine square-root. See kiliszek2022 Kiliszek 2022, table 2, p. 5.
@ SINE_OFFSET
Sine with offset. See zhang2021 Zhang 2021 eq. 7, p. 3.
friend void from_json(const json &j, GnssMeasurementErrorModel &obj)
Converts the provided json object into a node object.
bool ShowGuiWidgets(const char *id, float width)
Shows a GUI widgets.
Model _model
Model to use.
double psrRateMeasErrorVar(const Frequency &freq, int8_t num, double elevation, double cn0) const
Returns the Pseudo-range rate Error Variance.
static constexpr size_t PLOT_SAMPLES
Amount of samples for the plot.
ModelParametersSineCN0 _modelParametersSineCN0
Model parameters for the 'sine + CN0' model.
static constexpr std::array< double, PLOT_SAMPLES > _elevation_deg
Elevation data for plotting [rad].
double psrMeasErrorVar(const SatelliteSystem &satSys, double elevation, double cn0) const
Calculates the measurement Error Variance for pseudorange observations.
static double satSysErrorFactorVariance(const SatelliteSystem &satSys)
Returns an error factor for the variance depending on the satellite system.
double _dopplerStdDev
Doppler Frequency error factor [Hz] - Measurement error standard deviation.
ModelParametersRtklib _modelParametersRtklib
Model parameters for the 'RTKLIB' model.
ModelParametersSineSqrt _modelParametersSineSqrt
Model parameters for the 'sine - sqrt' model.
static constexpr std::array< double, PLOT_SAMPLES > _elevation
Elevation data for plotting [rad].
void to_json(json &j, const Node &node)
Converts the provided node into a json object.
constexpr std::array< Scalar, N > genRangeArray(Scalar start, Scalar stepSize, Scalar end)
Returns a container filled with the given range.
const char * to_string(gui::widgets::PositionWithFrame::ReferenceFrame refFrame)
Converts the enum to a string.
void from_json(const json &j, Node &node)
Converts the provided json object into a node object.
constexpr auto deg2rad(const T °)
Convert Degree to Radians.
Model parameters for the 'cosine - type' model.
Model parameters for the 'exponential' model.
double e0
Coefficient [deg].
Model parameters for the 'RTKLIB' model.