20#include <fmt/format.h>
46template<
typename StateKeyType>
62 template<
typename Scalar,
int Size>
79 template<
typename Scalar,
int Size>
84 for (
const auto& key : Phi.
rowKeys())
86 if (
const auto* bias = std::get_if<Keys::InterFreqBias>(&key))
88 Phi(*bias, *bias) = 1;
114 bool ShowGui(
float itemWidth,
float unitWidth,
const char*
id)
116 bool changed =
false;
127 0.0, 0.0,
"%.2e", ImGuiInputTextFlags_CharsScientific))
180struct hash<
NAV::Keys::InterFreqBias>
186 return std::hash<NAV::Frequency>()(interFreqBias.
freq);
192#ifndef DOXYGEN_IGNORE
196struct fmt::formatter<
NAV::Keys::InterFreqBias> : fmt::formatter<std::string>
202 template<
typename FormatContext>
203 auto format(
const NAV::Keys::InterFreqBias& interFreqBias, FormatContext& ctx)
const
205 return fmt::formatter<std::string>::format(fmt::format(
"InterFreqBias({})", interFreqBias.
freq), ctx);
nlohmann::json json
json namespace
Frequency definition for different satellite systems.
Units used by the system model parameters.
std::ostream & operator<<(std::ostream &os, const NAV::Keys::InterFreqBias &obj)
Stream insertion operator overload.
Utility class for logging to console and file.
#define LOG_DEBUG
Debug information. Should not be called on functions which receive observations (spamming)
Frequency definition for different satellite systems.
Inter Frequency Bias System Model.
void updatePhiAndQ(KeyedMatrix< Scalar, StateKeyType, StateKeyType, Size, Size > &Phi, KeyedMatrix< Scalar, StateKeyType, StateKeyType, Size, Size > &Q, double dt)
Updates the provided Phi and Q matrix.
std::pair< double, double > calcPhiAndQ(double dt, const Frequency &freq)
Calculates the state transition matrix (𝚽) and the process noise covariance matrix (𝐐)
friend void to_json(json &j, const InterFrequencyBiasModel &data)
Converts the provided data into a json object.
double _covarianceInterFrequencyBias
Covariance of the inter-frequency bias [m²/s].
void initialize()
Initializes the inter-frequency bias.
double _gui_covarianceInterFrequencyBias
GUI selection for the Standard deviation of the inter-frequency bias.
bool ShowGui(float itemWidth, float unitWidth, const char *id)
Shows a GUI.
Units::CovarianceClkPhaseDriftUnits _gui_covarianceInterFrequencyBiasUnit
Gui selection for the Unit of the inter-frequency covarianceInterFrequencyBias parameter.
void initialize(Keys::InterFreqBias bias, KeyedMatrix< Scalar, StateKeyType, StateKeyType, Size, Size > &F, KeyedMatrix< Scalar, StateKeyType, StateKeyType, Size, Size > &G, KeyedMatrix< Scalar, StateKeyType, StateKeyType, Size, Size > &W)
Initializes the inter-frequency bias.
friend void from_json(const json &j, InterFrequencyBiasModel &data)
Converts the provided json object into the data object.
Static sized KeyedMatrix.
const std::vector< RowKeyType > & rowKeys() const
Returns the row keys.
CovarianceClkPhaseDriftUnits
Possible Units for the Standard deviation of the clock phase drift.
const char * to_string(gui::widgets::PositionWithFrame::ReferenceFrame refFrame)
Converts the enum to a string.
double convertUnit(const double &value, Units::PositionUncertaintyUnits unit)
Converts the value depending on the unit provided.
std::string MakeComboItems()
Units separated by '\0' and terminated by double '\0'.
static const internal::all_t all
Used to request all rows or columns in KeyedMatrices.
bool operator==(const InterFreqBias &rhs) const
Equal comparison operator.
size_t operator()(const NAV::Keys::InterFreqBias &interFreqBias) const
Hash function.
Matrix which can be accessed by keys.