Cleanup RINEX obs

This commit is contained in:
Mathieu Favreau
2026-01-13 18:40:57 +00:00
parent 3416c454d0
commit 76aa036757
3 changed files with 287 additions and 1423 deletions
File diff suppressed because it is too large Load Diff
+15 -16
View File
@@ -38,6 +38,7 @@
#ifndef GNSS_SDR_RINEX_PRINTER_H
#define GNSS_SDR_RINEX_PRINTER_H
#include "signal_enabled_flags.h"
#include <boost/date_time/posix_time/posix_time.hpp>
#include <cstdint> // for int32_t
#include <cstdlib> // for strtol, strtod
@@ -72,6 +73,8 @@ class Gps_Navigation_Message;
class Gps_Utc_Model;
class Rtklib_Solver;
using Constellation_Observables_Map = std::map<char, std::map<uint32_t, std::map<signal_flag, Gnss_Synchro>>>;
/*!
* \brief Class that handles the generation of Receiver
@@ -295,7 +298,7 @@ private:
void log_rinex_obs(std::fstream& out,
const Gps_Ephemeris& eph,
double obs_time,
const std::map<int32_t, Gnss_Synchro>& observables) const;
const Constellation_Observables_Map& constel_observables) const;
/*
* Writes GPS L2 observables into the RINEX file
@@ -303,7 +306,7 @@ private:
void log_rinex_obs(std::fstream& out,
const Gps_CNAV_Ephemeris& eph,
double obs_time,
const std::map<int32_t, Gnss_Synchro>& observables) const;
const Constellation_Observables_Map& constel_observables) const;
/*
* Writes dual frequency GPS L1 and L2 observables into the RINEX file
@@ -312,8 +315,7 @@ private:
const Gps_Ephemeris& eph,
const Gps_CNAV_Ephemeris& eph_cnav,
double obs_time,
const std::map<int32_t, Gnss_Synchro>& observables,
bool triple_band = false) const;
const Constellation_Observables_Map& constel_observables) const;
/*
* Writes Galileo observables into the RINEX file.
@@ -322,8 +324,7 @@ private:
void log_rinex_obs(std::fstream& out,
const Galileo_Ephemeris& eph,
double obs_time,
const std::map<int32_t, Gnss_Synchro>& observables,
const std::string& galileo_bands = "1B") const;
const Constellation_Observables_Map& constel_observables) const;
/*
* Writes Mixed GPS / Galileo observables into the RINEX file
@@ -332,7 +333,7 @@ private:
const Gps_Ephemeris& gps_eph,
const Galileo_Ephemeris& galileo_eph,
double gps_obs_time,
const std::map<int32_t, Gnss_Synchro>& observables) const;
const Constellation_Observables_Map& constel_observables) const;
/*
* Writes Mixed GPS / Galileo observables into the RINEX file
@@ -341,7 +342,7 @@ private:
const Gps_CNAV_Ephemeris& eph,
const Galileo_Ephemeris& galileo_eph,
double gps_obs_time,
const std::map<int32_t, Gnss_Synchro>& observables) const;
const Constellation_Observables_Map& constel_observables) const;
/*
* Writes Mixed GPS / Galileo observables into the RINEX file
@@ -351,8 +352,7 @@ private:
const Gps_CNAV_Ephemeris& gps_cnav_eph,
const Galileo_Ephemeris& galileo_eph,
double gps_obs_time,
const std::map<int32_t, Gnss_Synchro>& observables,
bool triple_band = false) const;
const Constellation_Observables_Map& constel_observables) const;
/*
* Writes GLONASS GNAV observables into the RINEX file.
@@ -361,7 +361,7 @@ private:
void log_rinex_obs(std::fstream& out,
const Glonass_Gnav_Ephemeris& eph,
double obs_time,
const std::map<int32_t, Gnss_Synchro>& observables) const;
const Constellation_Observables_Map& constel_observables) const;
/*
* Writes Mixed GPS L1 C/A - GLONASS observables into the RINEX file
@@ -370,7 +370,7 @@ private:
const Gps_Ephemeris& gps_eph,
const Glonass_Gnav_Ephemeris& glonass_gnav_eph,
double gps_obs_time,
const std::map<int32_t, Gnss_Synchro>& observables) const;
const Constellation_Observables_Map& constel_observables) const;
/*
* Writes Mixed GPS L2C - GLONASS observables into the RINEX file
@@ -379,7 +379,7 @@ private:
const Gps_CNAV_Ephemeris& gps_eph,
const Glonass_Gnav_Ephemeris& glonass_gnav_eph,
double gps_obs_time,
const std::map<int32_t, Gnss_Synchro>& observables) const;
const Constellation_Observables_Map& constel_observables) const;
/*
* Writes Mixed Galileo/GLONASS observables into the RINEX file
@@ -388,7 +388,7 @@ private:
const Galileo_Ephemeris& galileo_eph,
const Glonass_Gnav_Ephemeris& glonass_gnav_eph,
double galileo_obs_time,
const std::map<int32_t, Gnss_Synchro>& observables) const;
const Constellation_Observables_Map& constel_observables) const;
/*
* Writes BDS B1I observables into the RINEX file
@@ -396,8 +396,7 @@ private:
void log_rinex_obs(std::fstream& out,
const Beidou_Dnav_Ephemeris& eph,
double obs_time,
const std::map<int32_t, Gnss_Synchro>& observables,
const std::string& bds_bands) const;
const Constellation_Observables_Map& constel_observables) const;
/*
* Generates the GPS L1 C/A Navigation Data header
@@ -517,7 +517,7 @@ TEST_F(RinexPrinterTest, GlonassObsLog)
gs3.System = *sys.c_str();
gs4.System = *sys.c_str();
std::string sig = "1C";
std::string sig = "1G";
std::memcpy(reinterpret_cast<void*>(gs1.Signal), sig.c_str(), 3);
std::memcpy(reinterpret_cast<void*>(gs2.Signal), sig.c_str(), 3);
std::memcpy(reinterpret_cast<void*>(gs3.Signal), sig.c_str(), 3);
@@ -768,7 +768,7 @@ TEST_F(RinexPrinterTest, MixedObsLog)
eph_gal.PRN = 1;
Pvt_Conf conf;
conf.use_e6_for_pvt = false;
const auto signal_enabled_flags = GPS_1C | GAL_1B;
const auto signal_enabled_flags = GPS_1C | GAL_1B | GAL_E5a;
auto pvt_solution = std::make_shared<Rtklib_Solver>(rtk, conf, "filename", signal_enabled_flags, false, false);
pvt_solution->gps_ephemeris_map[1] = std::move(eph_gps);
pvt_solution->galileo_ephemeris_map[1] = std::move(eph_gal);
@@ -891,7 +891,7 @@ TEST_F(RinexPrinterTest, MixedObsLogGpsGlo)
eph_glo.PRN = 1;
Pvt_Conf conf;
conf.use_e6_for_pvt = false;
const auto signal_enabled_flags = GPS_1C | GLO_1G;
const auto signal_enabled_flags = GPS_1C | GLO_1G | GLO_2G;
auto pvt_solution = std::make_shared<Rtklib_Solver>(rtk, conf, "filename", signal_enabled_flags, false, false);
pvt_solution->gps_ephemeris_map[1] = std::move(eph_gps);
pvt_solution->glonass_gnav_ephemeris_map[1] = std::move(eph_glo);
@@ -928,6 +928,8 @@ TEST_F(RinexPrinterTest, MixedObsLogGpsGlo)
std::memcpy(reinterpret_cast<void*>(gs5.Signal), sig.c_str(), 3);
std::memcpy(reinterpret_cast<void*>(gs6.Signal), sig.c_str(), 3);
std::memcpy(reinterpret_cast<void*>(gs7.Signal), sig.c_str(), 3);
sig = "2G";
std::memcpy(reinterpret_cast<void*>(gs8.Signal), sig.c_str(), 3);
gs1.PRN = 3;