From b80950d0addcad43dda8154bd75b3072258b9983 Mon Sep 17 00:00:00 2001 From: Mathieu Favreau Date: Wed, 17 Dec 2025 19:19:45 +0000 Subject: [PATCH] Small cleanup rinex printer --- src/algorithms/PVT/libs/rinex_printer.cc | 1055 ++++++++-------------- 1 file changed, 360 insertions(+), 695 deletions(-) diff --git a/src/algorithms/PVT/libs/rinex_printer.cc b/src/algorithms/PVT/libs/rinex_printer.cc index 4e9fc20df..523cd36b2 100644 --- a/src/algorithms/PVT/libs/rinex_printer.cc +++ b/src/algorithms/PVT/libs/rinex_printer.cc @@ -1205,28 +1205,16 @@ std::string get_leap_second_line(const Beidou_Dnav_Utc_Model& utc_model) return get_leap_second_line(utc_model.DeltaT_LS, utc_model.DeltaT_LSF, utc_model.WN_LSF, utc_model.DN); } - -std::string get_nav_sv_epoch_svclk_line(const boost::posix_time::ptime& p_utc_time, const std::string& sys_char, uint32_t prn, double value0, double value1, double value2) +void add_svclk_to_line(const boost::posix_time::ptime& p_utc_time, bool log_seconds, std::string& line) { - std::string line; - const std::string timestring = boost::posix_time::to_iso_string(p_utc_time); + const std::string year(timestring, 0, 4); const std::string month(timestring, 4, 2); const std::string day(timestring, 6, 2); const std::string hour(timestring, 9, 2); const std::string minutes(timestring, 11, 2); const std::string seconds(timestring, 13, 2); - if (!sys_char.empty()) - { - line += sys_char; - } - if (prn < 10) - { - line += std::string("0"); - } - line += std::to_string(prn); - const std::string year(timestring, 0, 4); line += std::string(1, ' '); line += year; line += std::string(1, ' '); @@ -1238,8 +1226,31 @@ std::string get_nav_sv_epoch_svclk_line(const boost::posix_time::ptime& p_utc_ti line += std::string(1, ' '); line += minutes; line += std::string(1, ' '); - line += seconds; - line += std::string(1, ' '); + + if (log_seconds) + { + line += seconds; + line += std::string(1, ' '); + } +} + +std::string get_nav_sv_epoch_svclk_line(const boost::posix_time::ptime& p_utc_time, const std::string& sys_char, uint32_t prn, double value0, double value1, double value2) +{ + std::string line; + + if (!sys_char.empty()) + { + line += sys_char; + } + if (prn < 10) + { + line += std::string("0"); + } + + line += std::to_string(prn); + + add_svclk_to_line(p_utc_time, true, line); + line += doub2for(value0, 18, 2); line += std::string(1, ' '); line += doub2for(value1, 18, 2); @@ -2201,8 +2212,7 @@ void Rinex_Printer::log_rinex_nav_bds_dnav(uint32_t signal_enabled_flags, const { const Signal_Enabled_Flags flags(signal_enabled_flags); - if (flags.check_any_enabled(BDS_B1) || - flags.check_any_enabled(BDS_B3)) + if (flags.check_any_enabled(BDS_B1) || flags.check_any_enabled(BDS_B3)) { log_rinex_nav(navBdsFile, new_bds_eph); } @@ -4636,25 +4646,16 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Glonass_Gnav_Ephemeri // Epoch flag 0: OK 1: power failure between previous and current epoch <1: Special event line += std::string(1, '0'); // Number of satellites observed in current epoch - int32_t numSatellitesObserved = 0; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) - { - numSatellitesObserved++; - } + const int32_t numSatellitesObserved = observables.size(); line += rightJustify(std::to_string(numSatellitesObserved), 3); - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { line += satelliteSystem.at("GLONASS"); - if (static_cast(observables_iter->second.PRN) < 10) + if (static_cast(observables_iter.second.PRN) < 10) { line += std::string(1, '0'); } - line += std::to_string(static_cast(observables_iter->second.PRN)); + line += std::to_string(static_cast(observables_iter.second.PRN)); } // Receiver clock offset (optional) // line += rightJustify(asString(clockOffset, 12), 15); @@ -4662,16 +4663,14 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Glonass_Gnav_Ephemeri lengthCheck(line); out << line << '\n'; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { std::string lineObs; lineObs.clear(); line.clear(); // GLONASS L1 PSEUDORANGE line += std::string(2, ' '); - lineObs += rightJustify(asString(observables_iter->second.Pseudorange_m, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Pseudorange_m, 3), 14); // Loss of lock indicator (LLI) int32_t lli = 0; // Include in the observation!! @@ -4685,10 +4684,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Glonass_Gnav_Ephemeri // } // Signal Strength Indicator (SSI) - const int32_t ssi = Rinex_Printer::signalStrength(observables_iter->second.CN0_dB_hz); + const int32_t ssi = Rinex_Printer::signalStrength(observables_iter.second.CN0_dB_hz); lineObs += rightJustify(asString(ssi), 1); // GLONASS L1 CA PHASE - lineObs += rightJustify(asString(observables_iter->second.Carrier_phase_rads / TWO_PI, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_phase_rads / TWO_PI, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -4699,7 +4698,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Glonass_Gnav_Ephemeri // } lineObs += rightJustify(asString(ssi), 1); // GLONASS L1 CA DOPPLER - lineObs += rightJustify(asString(observables_iter->second.Carrier_Doppler_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_Doppler_hz, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -4710,7 +4709,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Glonass_Gnav_Ephemeri // } lineObs += rightJustify(asString(ssi), 1); // GLONASS L1 SIGNAL STRENGTH - lineObs += rightJustify(asString(observables_iter->second.CN0_dB_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.CN0_dB_hz, 3), 14); if (lineObs.size() < 80) { lineObs += std::string(80 - lineObs.size(), ' '); @@ -4746,14 +4745,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Glonass_Gnav_Ephemeri line += std::string(1, '0'); // Number of satellites observed in current epoch - int32_t numSatellitesObserved = 0; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) - { - numSatellitesObserved++; - } + const int32_t numSatellitesObserved = observables.size(); line += rightJustify(std::to_string(numSatellitesObserved), 3); // Receiver clock offset (optional) @@ -4763,20 +4755,18 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Glonass_Gnav_Ephemeri lengthCheck(line); out << line << '\n'; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { std::string lineObs; lineObs.clear(); lineObs += satelliteSystem.at("GLONASS"); - if (static_cast(observables_iter->second.PRN) < 10) + if (static_cast(observables_iter.second.PRN) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(observables_iter->second.PRN)); + lineObs += std::to_string(static_cast(observables_iter.second.PRN)); // lineObs += std::string(2, ' '); - lineObs += rightJustify(asString(observables_iter->second.Pseudorange_m, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Pseudorange_m, 3), 14); // Loss of lock indicator (LLI) int32_t lli = 0; // Include in the observation!! @@ -4790,11 +4780,11 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Glonass_Gnav_Ephemeri // } // Signal Strength Indicator (SSI) - const int32_t ssi = Rinex_Printer::signalStrength(observables_iter->second.CN0_dB_hz); + const int32_t ssi = Rinex_Printer::signalStrength(observables_iter.second.CN0_dB_hz); lineObs += rightJustify(asString(ssi), 1); // GLONASS L1 CA PHASE - lineObs += rightJustify(asString(observables_iter->second.Carrier_phase_rads / TWO_PI, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_phase_rads / TWO_PI, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -4806,7 +4796,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Glonass_Gnav_Ephemeri lineObs += rightJustify(asString(ssi), 1); // GLONASS L1 CA DOPPLER - lineObs += rightJustify(asString(observables_iter->second.Carrier_Doppler_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_Doppler_hz, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -4819,7 +4809,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Glonass_Gnav_Ephemeri lineObs += rightJustify(asString(ssi), 1); // GLONASS L1 SIGNAL STRENGTH - lineObs += rightJustify(asString(observables_iter->second.CN0_dB_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.CN0_dB_hz, 3), 14); if (lineObs.size() < 80) { @@ -4924,37 +4914,32 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep std::map observablesG1C; std::map observablesR1C; std::map observablesR2C; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { - const std::string system_(&observables_iter->second.System, 1); - const std::string sig_(observables_iter->second.Signal); + const std::string system_(&observables_iter.second.System, 1); + const std::string sig_(observables_iter.second.Signal); if ((system_ == "R") && (sig_ == "1G")) { - observablesR1C.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesR1C.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "R") && (sig_ == "2G")) { - observablesR2C.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesR2C.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "G") && (sig_ == "1C")) { - observablesG1C.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesG1C.insert(std::pair(observables_iter.first, observables_iter.second)); } } std::multimap total_glo_map; std::set available_glo_prns; std::set::iterator it; - for (observables_iter = observablesR1C.cbegin(); - observables_iter != observablesR1C.cend(); - observables_iter++) + for (const auto& observables_iter : observablesR1C) { - const uint32_t prn_ = observables_iter->second.PRN; - total_glo_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_glo_map.insert(std::pair(prn_, observables_iter.second)); it = available_glo_prns.find(prn_); if (it == available_glo_prns.end()) { @@ -4962,12 +4947,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } } - for (observables_iter = observablesR2C.cbegin(); - observables_iter != observablesR2C.cend(); - observables_iter++) + for (const auto& observables_iter : observablesR2C) { - const uint32_t prn_ = observables_iter->second.PRN; - total_glo_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_glo_map.insert(std::pair(prn_, observables_iter.second)); it = available_glo_prns.find(prn_); if (it == available_glo_prns.end()) { @@ -4982,40 +4965,34 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep if (d_version == 2) { // Add list of GPS satellites - for (observables_iter = observablesG1C.cbegin(); - observables_iter != observablesG1C.cend(); - observables_iter++) + for (const auto& observables_iter : observablesG1C) { line += satelliteSystem.at("GPS"); - if (static_cast(observables_iter->second.PRN) < 10) + if (static_cast(observables_iter.second.PRN) < 10) { line += std::string(1, '0'); } - line += std::to_string(static_cast(observables_iter->second.PRN)); + line += std::to_string(static_cast(observables_iter.second.PRN)); } // Add list of GLONASS L1 satellites - for (observables_iter = observablesR1C.cbegin(); - observables_iter != observablesR1C.cend(); - observables_iter++) + for (const auto& observables_iter : observablesR1C) { line += satelliteSystem.at("GLONASS"); - if (static_cast(observables_iter->second.PRN) < 10) + if (static_cast(observables_iter.second.PRN) < 10) { line += std::string(1, '0'); } - line += std::to_string(static_cast(observables_iter->second.PRN)); + line += std::to_string(static_cast(observables_iter.second.PRN)); } // Add list of GLONASS L2 satellites - for (observables_iter = observablesR2C.cbegin(); - observables_iter != observablesR2C.cend(); - observables_iter++) + for (const auto& observables_iter : observablesR2C) { line += satelliteSystem.at("GLONASS"); - if (static_cast(observables_iter->second.PRN) < 10) + if (static_cast(observables_iter.second.PRN) < 10) { line += std::string(1, '0'); } - line += std::to_string(static_cast(observables_iter->second.PRN)); + line += std::to_string(static_cast(observables_iter.second.PRN)); } } line += std::string(80 - line.size(), ' '); @@ -5025,13 +5002,11 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep // -------- OBSERVATION record std::string s; std::string lineObs; - for (observables_iter = observablesG1C.cbegin(); - observables_iter != observablesG1C.cend(); - observables_iter++) + for (const auto& observables_iter : observablesG1C) { lineObs.clear(); - s.assign(1, observables_iter->second.System); + s.assign(1, observables_iter.second.System); if (d_version == 3) { // Specify system only if in version 3 @@ -5043,15 +5018,15 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep { line += satelliteSystem.at("GLONASS"); } - if (static_cast(observables_iter->second.PRN) < 10) + if (static_cast(observables_iter.second.PRN) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(observables_iter->second.PRN)); + lineObs += std::to_string(static_cast(observables_iter.second.PRN)); } // Pseudorange Measurements - lineObs += rightJustify(asString(observables_iter->second.Pseudorange_m, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Pseudorange_m, 3), 14); // Loss of lock indicator (LLI) int32_t lli = 0; // Include in the observation!! @@ -5065,11 +5040,11 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep // } // Signal Strength Indicator (SSI) - const int32_t ssi = Rinex_Printer::signalStrength(observables_iter->second.CN0_dB_hz); + const int32_t ssi = Rinex_Printer::signalStrength(observables_iter.second.CN0_dB_hz); lineObs += rightJustify(asString(ssi), 1); // PHASE - lineObs += rightJustify(asString(observables_iter->second.Carrier_phase_rads / TWO_PI, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_phase_rads / TWO_PI, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -5081,7 +5056,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep lineObs += rightJustify(asString(ssi), 1); // DOPPLER - lineObs += rightJustify(asString(observables_iter->second.Carrier_Doppler_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_Doppler_hz, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -5093,7 +5068,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep lineObs += rightJustify(asString(ssi), 1); // SIGNAL STRENGTH - lineObs += rightJustify(asString(observables_iter->second.CN0_dB_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.CN0_dB_hz, 3), 14); if (lineObs.size() < 80) { @@ -5102,22 +5077,19 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep out << lineObs << '\n'; } - std::pair::iterator, std::multimap::iterator> ret; - for (it = available_glo_prns.cbegin(); - it != available_glo_prns.cend(); - it++) + for (const auto& available_glo_prn : available_glo_prns) { lineObs.clear(); if (d_version == 3) { lineObs += satelliteSystem.at("GLONASS"); - if (static_cast(*it) < 10) + if (static_cast(available_glo_prn) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(*it)); + lineObs += std::to_string(static_cast(available_glo_prn)); } - ret = total_glo_map.equal_range(*it); + const auto ret = total_glo_map.equal_range(available_glo_prn); for (auto iter = ret.first; iter != ret.second; ++iter) { /// \todo Need to account for pseudorange correction for glonass @@ -5184,32 +5156,14 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& g std::string line; // -------- EPOCH record - const boost::posix_time::ptime p_gps_time = Rinex_Printer::compute_GPS_time(gps_eph, gps_obs_time); - const std::string timestring = boost::posix_time::to_iso_string(p_gps_time); + // double utc_t = nav_msg.utc_time(nav_msg.sv_clock_correction(obs_time)); // const double gps_t = eph.sv_clock_correction(obs_time); - const double gps_t = gps_obs_time; - - const std::string month(timestring, 4, 2); - const std::string day(timestring, 6, 2); - const std::string hour(timestring, 9, 2); - const std::string minutes(timestring, 11, 2); - - const std::string year(timestring, 0, 4); line += std::string(1, '>'); - line += std::string(1, ' '); - line += year; - line += std::string(1, ' '); - line += month; - line += std::string(1, ' '); - line += day; - line += std::string(1, ' '); - line += hour; - line += std::string(1, ' '); - line += minutes; - line += std::string(1, ' '); - double seconds = fmod(gps_t, 60); + add_svclk_to_line(Rinex_Printer::compute_GPS_time(gps_eph, gps_obs_time), false, line); + + double seconds = fmod(gps_obs_time, 60); // Add extra 0 if seconds are < 10 if (seconds < 10) { @@ -5225,37 +5179,32 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& g std::map observablesG2S; std::map observablesR1C; std::map observablesR2C; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { - const std::string system_(&observables_iter->second.System, 1); - const std::string sig_(observables_iter->second.Signal); + const std::string system_(&observables_iter.second.System, 1); + const std::string sig_(observables_iter.second.Signal); if ((system_ == "R") && (sig_ == "1G")) { - observablesR1C.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesR1C.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "R") && (sig_ == "2G")) { - observablesR2C.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesR2C.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "G") && (sig_ == "2S")) { - observablesG2S.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesG2S.insert(std::pair(observables_iter.first, observables_iter.second)); } } std::multimap total_glo_map; std::set available_glo_prns; std::set::iterator it; - for (observables_iter = observablesR1C.cbegin(); - observables_iter != observablesR1C.cend(); - observables_iter++) + for (const auto& observables_iter : observablesR1C) { - const uint32_t prn_ = observables_iter->second.PRN; - total_glo_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_glo_map.insert(std::pair(prn_, observables_iter.second)); it = available_glo_prns.find(prn_); if (it == available_glo_prns.end()) { @@ -5263,12 +5212,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& g } } - for (observables_iter = observablesR2C.cbegin(); - observables_iter != observablesR2C.cend(); - observables_iter++) + for (const auto& observables_iter : observablesR2C) { - const uint32_t prn_ = observables_iter->second.PRN; - total_glo_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_glo_map.insert(std::pair(prn_, observables_iter.second)); it = available_glo_prns.find(prn_); if (it == available_glo_prns.end()) { @@ -5288,13 +5235,11 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& g // -------- OBSERVATION record std::string s; std::string lineObs; - for (observables_iter = observablesG2S.cbegin(); - observables_iter != observablesG2S.cend(); - observables_iter++) + for (const auto& observables_iter : observablesG2S) { lineObs.clear(); - s.assign(1, observables_iter->second.System); + s.assign(1, observables_iter.second.System); // Specify system only if in version 3 if (s == "G") { @@ -5304,14 +5249,14 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& g { line += satelliteSystem.at("GLONASS"); } - if (static_cast(observables_iter->second.PRN) < 10) + if (static_cast(observables_iter.second.PRN) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(observables_iter->second.PRN)); + lineObs += std::to_string(static_cast(observables_iter.second.PRN)); // Pseudorange Measurements - lineObs += rightJustify(asString(observables_iter->second.Pseudorange_m, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Pseudorange_m, 3), 14); // Loss of lock indicator (LLI) int32_t lli = 0; // Include in the observation!! @@ -5325,11 +5270,11 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& g // } // Signal Strength Indicator (SSI) - const int32_t ssi = Rinex_Printer::signalStrength(observables_iter->second.CN0_dB_hz); + const int32_t ssi = Rinex_Printer::signalStrength(observables_iter.second.CN0_dB_hz); lineObs += rightJustify(asString(ssi), 1); // PHASE - lineObs += rightJustify(asString(observables_iter->second.Carrier_phase_rads / TWO_PI, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_phase_rads / TWO_PI, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -5341,7 +5286,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& g lineObs += rightJustify(asString(ssi), 1); // DOPPLER - lineObs += rightJustify(asString(observables_iter->second.Carrier_Doppler_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_Doppler_hz, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -5353,7 +5298,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& g lineObs += rightJustify(asString(ssi), 1); // SIGNAL STRENGTH - lineObs += rightJustify(asString(observables_iter->second.CN0_dB_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.CN0_dB_hz, 3), 14); if (lineObs.size() < 80) { @@ -5363,19 +5308,17 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& g } std::pair::iterator, std::multimap::iterator> ret; - for (it = available_glo_prns.cbegin(); - it != available_glo_prns.cend(); - it++) + for (const auto& prn : available_glo_prns) { lineObs.clear(); lineObs += satelliteSystem.at("GLONASS"); - if (static_cast(*it) < 10) + if (static_cast(prn) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(*it)); + lineObs += std::to_string(static_cast(prn)); - ret = total_glo_map.equal_range(*it); + ret = total_glo_map.equal_range(prn); for (auto iter = ret.first; iter != ret.second; ++iter) { /// \todo Need to account for pseudorange correction for glonass @@ -5441,32 +5384,14 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ga } // avoid warning, not needed std::string line; - const boost::posix_time::ptime p_galileo_time = Rinex_Printer::compute_Galileo_time(galileo_eph, galileo_obs_time); - const std::string timestring = boost::posix_time::to_iso_string(p_galileo_time); // double utc_t = nav_msg.utc_time(nav_msg.sv_clock_correction(obs_time)); // const double gps_t = eph.sv_clock_correction(obs_time); - const double galileo_t = galileo_obs_time; - const std::string month(timestring, 4, 2); - const std::string day(timestring, 6, 2); - const std::string hour(timestring, 9, 2); - const std::string minutes(timestring, 11, 2); - - const std::string year(timestring, 0, 4); line += std::string(1, '>'); - line += std::string(1, ' '); - line += year; - line += std::string(1, ' '); - line += month; - line += std::string(1, ' '); - line += day; - line += std::string(1, ' '); - line += hour; - line += std::string(1, ' '); - line += minutes; - line += std::string(1, ' '); - const double seconds = fmod(galileo_t, 60); + add_svclk_to_line(Rinex_Printer::compute_Galileo_time(galileo_eph, galileo_obs_time), false, line); + + const double seconds = fmod(galileo_obs_time, 60); // Add extra 0 if seconds are < 10 if (seconds < 10) { @@ -5483,49 +5408,43 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ga std::map observablesE1B; std::map observablesR1C; std::map observablesR2C; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { - const std::string system_(&observables_iter->second.System, 1); - const std::string sig_(observables_iter->second.Signal); + const std::string system_(&observables_iter.second.System, 1); + const std::string sig_(observables_iter.second.Signal); if ((system_ == "R") && (sig_ == "1G")) { - observablesR1C.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesR1C.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "R") && (sig_ == "2G")) { - observablesR2C.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesR2C.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "1B")) { - observablesE1B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE1B.insert(std::pair(observables_iter.first, observables_iter.second)); } } std::multimap total_glo_map; std::set available_glo_prns; std::set::iterator it; - for (observables_iter = observablesR1C.cbegin(); - observables_iter != observablesR1C.cend(); - observables_iter++) + for (const auto& observables_iter : observablesR1C) { - const uint32_t prn_ = observables_iter->second.PRN; - total_glo_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_glo_map.insert(std::pair(prn_, observables_iter.second)); it = available_glo_prns.find(prn_); if (it == available_glo_prns.end()) { available_glo_prns.insert(prn_); } } - for (observables_iter = observablesR2C.cbegin(); - observables_iter != observablesR2C.cend(); - observables_iter++) + + for (const auto& observables_iter : observablesR2C) { - const uint32_t prn_ = observables_iter->second.PRN; - total_glo_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_glo_map.insert(std::pair(prn_, observables_iter.second)); it = available_glo_prns.find(prn_); if (it == available_glo_prns.end()) { @@ -5547,13 +5466,11 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ga std::string s; std::string lineObs; - for (observables_iter = observablesE1B.cbegin(); - observables_iter != observablesE1B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE1B) { lineObs.clear(); - s.assign(1, observables_iter->second.System); + s.assign(1, observables_iter.second.System); if (s == "E") { lineObs += satelliteSystem.at("Galileo"); @@ -5562,12 +5479,12 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ga { line += satelliteSystem.at("GLONASS"); } - if (static_cast(observables_iter->second.PRN) < 10) + if (static_cast(observables_iter.second.PRN) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(observables_iter->second.PRN)); - lineObs += rightJustify(asString(observables_iter->second.Pseudorange_m, 3), 14); + lineObs += std::to_string(static_cast(observables_iter.second.PRN)); + lineObs += rightJustify(asString(observables_iter.second.Pseudorange_m, 3), 14); // Loss of lock indicator (LLI) int32_t lli = 0; // Include in the observation!! @@ -5581,11 +5498,11 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ga // } // Signal Strength Indicator (SSI) - const int32_t ssi = Rinex_Printer::signalStrength(observables_iter->second.CN0_dB_hz); + const int32_t ssi = Rinex_Printer::signalStrength(observables_iter.second.CN0_dB_hz); lineObs += rightJustify(asString(ssi), 1); // PHASE - lineObs += rightJustify(asString(observables_iter->second.Carrier_phase_rads / TWO_PI, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_phase_rads / TWO_PI, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -5597,7 +5514,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ga lineObs += rightJustify(asString(ssi), 1); // DOPPLER - lineObs += rightJustify(asString(observables_iter->second.Carrier_Doppler_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_Doppler_hz, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -5609,7 +5526,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ga lineObs += rightJustify(asString(ssi), 1); // SIGNAL STRENGTH - lineObs += rightJustify(asString(observables_iter->second.CN0_dB_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.CN0_dB_hz, 3), 14); if (lineObs.size() < 80) { @@ -5619,18 +5536,16 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ga } std::pair::iterator, std::multimap::iterator> ret; - for (it = available_glo_prns.cbegin(); - it != available_glo_prns.cend(); - it++) + for (const auto& prn : available_glo_prns) { lineObs.clear(); lineObs += satelliteSystem.at("Galileo"); - if (static_cast(*it) < 10) + if (static_cast(prn) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(*it)); - ret = total_glo_map.equal_range(*it); + lineObs += std::to_string(static_cast(prn)); + ret = total_glo_map.equal_range(prn); for (auto iter = ret.first; iter != ret.second; ++iter) { lineObs += rightJustify(asString(iter->second.Pseudorange_m, 3), 14); @@ -5744,25 +5659,16 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, d // Epoch flag 0: OK 1: power failure between previous and current epoch <1: Special event line += std::string(1, '0'); // Number of satellites observed in current epoch - int32_t numSatellitesObserved = 0; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) - { - numSatellitesObserved++; - } + const int32_t numSatellitesObserved = observables.size(); line += rightJustify(std::to_string(numSatellitesObserved), 3); - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { line += satelliteSystem.at("GPS"); - if (static_cast(observables_iter->second.PRN) < 10) + if (static_cast(observables_iter.second.PRN) < 10) { line += std::string(1, '0'); } - line += std::to_string(static_cast(observables_iter->second.PRN)); + line += std::to_string(static_cast(observables_iter.second.PRN)); } // Receiver clock offset (optional) // line += rightJustify(asString(clockOffset, 12), 15); @@ -5770,16 +5676,14 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, d lengthCheck(line); out << line << '\n'; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { std::string lineObs; lineObs.clear(); line.clear(); // GPS L1 PSEUDORANGE line += std::string(2, ' '); - lineObs += rightJustify(asString(observables_iter->second.Pseudorange_m, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Pseudorange_m, 3), 14); // Loss of lock indicator (LLI) int32_t lli = 0; // Include in the observation!! @@ -5793,10 +5697,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, d // } // Signal Strength Indicator (SSI) - const int32_t ssi = Rinex_Printer::signalStrength(observables_iter->second.CN0_dB_hz); + const int32_t ssi = Rinex_Printer::signalStrength(observables_iter.second.CN0_dB_hz); lineObs += rightJustify(asString(ssi), 1); // GPS L1 CA PHASE - lineObs += rightJustify(asString(observables_iter->second.Carrier_phase_rads / TWO_PI, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_phase_rads / TWO_PI, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -5807,7 +5711,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, d // } lineObs += rightJustify(asString(ssi), 1); // GPS L1 CA DOPPLER - lineObs += rightJustify(asString(observables_iter->second.Carrier_Doppler_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_Doppler_hz, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -5818,7 +5722,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, d // } lineObs += rightJustify(asString(ssi), 1); // GPS L1 SIGNAL STRENGTH - lineObs += rightJustify(asString(observables_iter->second.CN0_dB_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.CN0_dB_hz, 3), 14); if (lineObs.size() < 80) { lineObs += std::string(80 - lineObs.size(), ' '); @@ -5855,14 +5759,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, d line += std::string(1, '0'); // Number of satellites observed in current epoch - int32_t numSatellitesObserved = 0; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) - { - numSatellitesObserved++; - } + const int32_t numSatellitesObserved = observables.size(); line += rightJustify(std::to_string(numSatellitesObserved), 3); // Receiver clock offset (optional) @@ -5872,20 +5769,18 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, d lengthCheck(line); out << line << '\n'; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { std::string lineObs; lineObs.clear(); lineObs += satelliteSystem.at("GPS"); - if (static_cast(observables_iter->second.PRN) < 10) + if (static_cast(observables_iter.second.PRN) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(observables_iter->second.PRN)); + lineObs += std::to_string(static_cast(observables_iter.second.PRN)); // lineObs += std::string(2, ' '); - lineObs += rightJustify(asString(observables_iter->second.Pseudorange_m, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Pseudorange_m, 3), 14); // Loss of lock indicator (LLI) int32_t lli = 0; // Include in the observation!! @@ -5899,11 +5794,11 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, d // } // Signal Strength Indicator (SSI) - const int32_t ssi = Rinex_Printer::signalStrength(observables_iter->second.CN0_dB_hz); + const int32_t ssi = Rinex_Printer::signalStrength(observables_iter.second.CN0_dB_hz); lineObs += rightJustify(asString(ssi), 1); // GPS L1 CA PHASE - lineObs += rightJustify(asString(observables_iter->second.Carrier_phase_rads / TWO_PI, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_phase_rads / TWO_PI, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -5915,7 +5810,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, d lineObs += rightJustify(asString(ssi), 1); // GPS L1 CA DOPPLER - lineObs += rightJustify(asString(observables_iter->second.Carrier_Doppler_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_Doppler_hz, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -5928,7 +5823,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, d lineObs += rightJustify(asString(ssi), 1); // GPS L1 SIGNAL STRENGTH - lineObs += rightJustify(asString(observables_iter->second.CN0_dB_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.CN0_dB_hz, 3), 14); if (lineObs.size() < 80) { @@ -5945,32 +5840,14 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e // RINEX observations timestamps are GPS timestamps. std::string line; - const boost::posix_time::ptime p_gps_time = Rinex_Printer::compute_GPS_time(eph, obs_time); - const std::string timestring = boost::posix_time::to_iso_string(p_gps_time); // double utc_t = nav_msg.utc_time(nav_msg.sv_clock_correction(obs_time)); // const double gps_t = eph.sv_clock_correction(obs_time); - const double gps_t = obs_time; - const std::string month(timestring, 4, 2); - const std::string day(timestring, 6, 2); - const std::string hour(timestring, 9, 2); - const std::string minutes(timestring, 11, 2); - - const std::string year(timestring, 0, 4); line += std::string(1, '>'); - line += std::string(1, ' '); - line += year; - line += std::string(1, ' '); - line += month; - line += std::string(1, ' '); - line += day; - line += std::string(1, ' '); - line += hour; - line += std::string(1, ' '); - line += minutes; - line += std::string(1, ' '); - const double seconds = fmod(gps_t, 60); + add_svclk_to_line(Rinex_Printer::compute_GPS_time(eph, obs_time), false, line); + + const double seconds = fmod(obs_time, 60); // Add extra 0 if seconds are < 10 if (seconds < 10) { @@ -5982,14 +5859,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e line += std::string(1, '0'); // Number of satellites observed in current epoch - int32_t numSatellitesObserved = 0; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) - { - numSatellitesObserved++; - } + const int32_t numSatellitesObserved = observables.size(); line += rightJustify(std::to_string(numSatellitesObserved), 3); // Receiver clock offset (optional) @@ -5999,21 +5869,19 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e lengthCheck(line); out << line << '\n'; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { std::string lineObs; lineObs.clear(); lineObs += satelliteSystem.at("GPS"); - if (static_cast(observables_iter->second.PRN) < 10) + if (static_cast(observables_iter.second.PRN) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(observables_iter->second.PRN)); + lineObs += std::to_string(static_cast(observables_iter.second.PRN)); // lineObs += std::string(2, ' '); // GPS L2 PSEUDORANGE - lineObs += rightJustify(asString(observables_iter->second.Pseudorange_m, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Pseudorange_m, 3), 14); // Loss of lock indicator (LLI) int32_t lli = 0; // Include in the observation!! @@ -6027,11 +5895,11 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e // } // Signal Strength Indicator (SSI) - const int32_t ssi = Rinex_Printer::signalStrength(observables_iter->second.CN0_dB_hz); + const int32_t ssi = Rinex_Printer::signalStrength(observables_iter.second.CN0_dB_hz); lineObs += rightJustify(asString(ssi), 1); // GPS L2 PHASE - lineObs += rightJustify(asString(observables_iter->second.Carrier_phase_rads / TWO_PI, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_phase_rads / TWO_PI, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -6043,7 +5911,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e lineObs += rightJustify(asString(ssi), 1); // GPS L2 DOPPLER - lineObs += rightJustify(asString(observables_iter->second.Carrier_Doppler_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_Doppler_hz, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -6056,7 +5924,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e lineObs += rightJustify(asString(ssi), 1); // GPS L2 SIGNAL STRENGTH - lineObs += rightJustify(asString(observables_iter->second.CN0_dB_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.CN0_dB_hz, 3), 14); if (lineObs.size() < 80) { @@ -6075,32 +5943,13 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, c // RINEX observations timestamps are GPS timestamps. std::string line; - const boost::posix_time::ptime p_gps_time = Rinex_Printer::compute_GPS_time(eph, obs_time); - const std::string timestring = boost::posix_time::to_iso_string(p_gps_time); // double utc_t = nav_msg.utc_time(nav_msg.sv_clock_correction(obs_time)); // const double gps_t = eph.sv_clock_correction(obs_time); - const double gps_t = obs_time; - - const std::string month(timestring, 4, 2); - const std::string day(timestring, 6, 2); - const std::string hour(timestring, 9, 2); - const std::string minutes(timestring, 11, 2); - - const std::string year(timestring, 0, 4); line += std::string(1, '>'); - line += std::string(1, ' '); - line += year; - line += std::string(1, ' '); - line += month; - line += std::string(1, ' '); - line += day; - line += std::string(1, ' '); - line += hour; - line += std::string(1, ' '); - line += minutes; - line += std::string(1, ' '); - const double seconds = fmod(gps_t, 60); + add_svclk_to_line(Rinex_Printer::compute_GPS_time(eph, obs_time), false, line); + + const double seconds = fmod(obs_time, 60); // Add extra 0 if seconds are < 10 if (seconds < 10) { @@ -6117,72 +5966,65 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, c std::map observablesL1; std::map observablesL2; std::map observablesL5; - std::map::const_iterator observables_iter; std::multimap total_mmap; std::multimap::iterator mmap_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { - const std::string system_(&observables_iter->second.System, 1); - const std::string sig_(observables_iter->second.Signal); + const std::string system_(&observables_iter.second.System, 1); + const std::string sig_(observables_iter.second.Signal); if ((system_ == "G") && (sig_ == "1C")) { - observablesL1.insert(std::pair(observables_iter->first, observables_iter->second)); - total_mmap.insert(std::pair(observables_iter->second.PRN, observables_iter->second)); + observablesL1.insert(std::pair(observables_iter.first, observables_iter.second)); + total_mmap.insert(std::pair(observables_iter.second.PRN, observables_iter.second)); } if ((system_ == "G") && (sig_ == "2S")) { - observablesL2.insert(std::pair(observables_iter->first, observables_iter->second)); - mmap_iter = total_mmap.find(observables_iter->second.PRN); + observablesL2.insert(std::pair(observables_iter.first, observables_iter.second)); + mmap_iter = total_mmap.find(observables_iter.second.PRN); if (mmap_iter == total_mmap.end()) { Gnss_Synchro gs = Gnss_Synchro(); - total_mmap.insert(std::pair(observables_iter->second.PRN, gs)); + total_mmap.insert(std::pair(observables_iter.second.PRN, gs)); } - total_mmap.insert(std::pair(observables_iter->second.PRN, observables_iter->second)); + total_mmap.insert(std::pair(observables_iter.second.PRN, observables_iter.second)); } if ((system_ == "G") && (sig_ == "L5")) { - observablesL5.insert(std::pair(observables_iter->first, observables_iter->second)); - mmap_iter = total_mmap.find(observables_iter->second.PRN); + observablesL5.insert(std::pair(observables_iter.first, observables_iter.second)); + mmap_iter = total_mmap.find(observables_iter.second.PRN); if (mmap_iter == total_mmap.end()) { Gnss_Synchro gs = Gnss_Synchro(); - total_mmap.insert(std::pair(observables_iter->second.PRN, gs)); + total_mmap.insert(std::pair(observables_iter.second.PRN, gs)); } - total_mmap.insert(std::pair(observables_iter->second.PRN, observables_iter->second)); + total_mmap.insert(std::pair(observables_iter.second.PRN, observables_iter.second)); } } // Fill with zeros satellites with L1 obs but not L2 std::multimap mmap_aux; mmap_aux = total_mmap; - for (mmap_iter = mmap_aux.begin(); - mmap_iter != mmap_aux.end(); - mmap_iter++) + for (const auto& mmap_iter : mmap_aux) { - if ((total_mmap.count(mmap_iter->second.PRN)) == 1 && (mmap_iter->second.PRN != 0)) + if ((total_mmap.count(mmap_iter.second.PRN)) == 1 && (mmap_iter.second.PRN != 0)) { Gnss_Synchro gs = Gnss_Synchro(); gs.System = 'G'; gs.Signal[0] = '2'; gs.Signal[1] = 'S'; gs.Signal[2] = '\0'; - gs.PRN = mmap_iter->second.PRN; - total_mmap.insert(std::pair(mmap_iter->second.PRN, gs)); + gs.PRN = mmap_iter.second.PRN; + total_mmap.insert(std::pair(mmap_iter.second.PRN, gs)); } } std::set available_prns; std::set::iterator it; - for (observables_iter = observablesL1.cbegin(); - observables_iter != observablesL1.cend(); - observables_iter++) + for (const auto& observables_iter : observablesL1) { - const uint32_t prn_ = observables_iter->second.PRN; + const uint32_t prn_ = observables_iter.second.PRN; it = available_prns.find(prn_); if (it == available_prns.end()) { @@ -6190,11 +6032,9 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, c } } - for (observables_iter = observablesL2.cbegin(); - observables_iter != observablesL2.cend(); - observables_iter++) + for (const auto& observables_iter : observablesL2) { - const uint32_t prn_ = observables_iter->second.PRN; + const uint32_t prn_ = observables_iter.second.PRN; it = available_prns.find(prn_); if (it == available_prns.end()) { @@ -6202,11 +6042,9 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, c } } - for (observables_iter = observablesL5.cbegin(); - observables_iter != observablesL5.cend(); - observables_iter++) + for (const auto& observables_iter : observablesL5) { - const uint32_t prn_ = observables_iter->second.PRN; + const uint32_t prn_ = observables_iter.second.PRN; it = available_prns.find(prn_); if (it == available_prns.end()) { @@ -6223,19 +6061,16 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& eph, c out << line << '\n'; std::string lineObs; - std::pair::iterator, std::multimap::iterator> ret; - for (it = available_prns.cbegin(); - it != available_prns.cend(); - it++) + for (const auto& available_prn : available_prns) { lineObs.clear(); lineObs += satelliteSystem.at("GPS"); - if (static_cast(*it) < 10) + if (static_cast(available_prn) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(*it)); - ret = total_mmap.equal_range(*it); + lineObs += std::to_string(static_cast(available_prn)); + const auto ret = total_mmap.equal_range(available_prn); bool have_l2 = false; for (auto iter = ret.first; iter != ret.second; ++iter) { @@ -6309,32 +6144,13 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ep // See https://gage.upc.edu/sites/default/files/gLAB/HTML/Observation_Rinex_v3.01.html std::string line; - const boost::posix_time::ptime p_galileo_time = Rinex_Printer::compute_Galileo_time(eph, obs_time); - const std::string timestring = boost::posix_time::to_iso_string(p_galileo_time); // double utc_t = nav_msg.utc_time(nav_msg.sv_clock_correction(obs_time)); // const double gps_t = eph.sv_clock_correction(obs_time); - const double galileo_t = obs_time; - - const std::string month(timestring, 4, 2); - const std::string day(timestring, 6, 2); - const std::string hour(timestring, 9, 2); - const std::string minutes(timestring, 11, 2); - - const std::string year(timestring, 0, 4); line += std::string(1, '>'); - line += std::string(1, ' '); - line += year; - line += std::string(1, ' '); - line += month; - line += std::string(1, ' '); - line += day; - line += std::string(1, ' '); - line += hour; - line += std::string(1, ' '); - line += minutes; - line += std::string(1, ' '); - const double seconds = fmod(galileo_t, 60); + add_svclk_to_line(Rinex_Printer::compute_Galileo_time(eph, obs_time), false, line); + + const double seconds = fmod(obs_time, 60); // Add extra 0 if seconds are < 10 if (seconds < 10) { @@ -6352,29 +6168,26 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ep std::map observablesE5A; std::map observablesE5B; std::map observablesE6B; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { - const std::string system_(&observables_iter->second.System, 1); - const std::string sig_(observables_iter->second.Signal); + const std::string system_(&observables_iter.second.System, 1); + const std::string sig_(observables_iter.second.Signal); if ((system_ == "E") && (sig_ == "1B")) { - observablesE1B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE1B.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "5X")) { - observablesE5A.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE5A.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "7X")) { - observablesE5B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE5B.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "E6")) { - observablesE6B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE6B.insert(std::pair(observables_iter.first, observables_iter.second)); } } const std::size_t found_1B = galileo_bands.find("1B"); @@ -6387,12 +6200,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ep std::set::iterator it; if (found_1B != std::string::npos) { - for (observables_iter = observablesE1B.cbegin(); - observables_iter != observablesE1B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE1B) { - const uint32_t prn_ = observables_iter->second.PRN; - total_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_map.insert(std::pair(prn_, observables_iter.second)); it = available_prns.find(prn_); if (it == available_prns.end()) { @@ -6402,11 +6213,9 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ep } if (found_E5a != std::string::npos) { - for (observables_iter = observablesE5A.cbegin(); - observables_iter != observablesE5A.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE5A) { - const uint32_t prn_ = observables_iter->second.PRN; + const uint32_t prn_ = observables_iter.second.PRN; it = available_prns.find(prn_); if (it == available_prns.end()) { @@ -6422,16 +6231,14 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ep total_map.insert(std::pair(prn_, gs)); } } - total_map.insert(std::pair(prn_, observables_iter->second)); + total_map.insert(std::pair(prn_, observables_iter.second)); } } if (found_E5b != std::string::npos) { - for (observables_iter = observablesE5B.cbegin(); - observables_iter != observablesE5B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE5B) { - const uint32_t prn_ = observables_iter->second.PRN; + const uint32_t prn_ = observables_iter.second.PRN; it = available_prns.find(prn_); if (it == available_prns.end()) { @@ -6447,18 +6254,16 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ep total_map.insert(std::pair(prn_, gs)); } } - total_map.insert(std::pair(prn_, observables_iter->second)); + total_map.insert(std::pair(prn_, observables_iter.second)); } } if (found_E6b != std::string::npos) { - for (observables_iter = observablesE6B.cbegin(); - observables_iter != observablesE6B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE6B) { - const uint32_t prn_ = observables_iter->second.PRN; - total_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_map.insert(std::pair(prn_, observables_iter.second)); it = available_prns.find(prn_); if (it == available_prns.end()) { @@ -6476,19 +6281,16 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ep out << line << '\n'; std::string lineObs; - std::pair::iterator, std::multimap::iterator> ret; - for (it = available_prns.cbegin(); - it != available_prns.cend(); - it++) + for (const auto& available_prn : available_prns) { lineObs.clear(); lineObs += satelliteSystem.at("Galileo"); - if (static_cast(*it) < 10) + if (static_cast(available_prn) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(*it)); - ret = total_map.equal_range(*it); + lineObs += std::to_string(static_cast(available_prn)); + const auto ret = total_map.equal_range(available_prn); for (auto iter = ret.first; iter != ret.second; ++iter) { lineObs += rightJustify(asString(iter->second.Pseudorange_m, 3), 14); @@ -6552,32 +6354,14 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } // avoid warning, not needed std::string line; - const boost::posix_time::ptime p_gps_time = Rinex_Printer::compute_GPS_time(gps_eph, gps_obs_time); - const std::string timestring = boost::posix_time::to_iso_string(p_gps_time); // double utc_t = nav_msg.utc_time(nav_msg.sv_clock_correction(obs_time)); // double gps_t = eph.sv_clock_correction(obs_time); - const double gps_t = gps_obs_time; - const std::string month(timestring, 4, 2); - const std::string day(timestring, 6, 2); - const std::string hour(timestring, 9, 2); - const std::string minutes(timestring, 11, 2); - - const std::string year(timestring, 0, 4); line += std::string(1, '>'); - line += std::string(1, ' '); - line += year; - line += std::string(1, ' '); - line += month; - line += std::string(1, ' '); - line += day; - line += std::string(1, ' '); - line += hour; - line += std::string(1, ' '); - line += minutes; - line += std::string(1, ' '); - const double seconds = fmod(gps_t, 60); + add_svclk_to_line(Rinex_Printer::compute_GPS_time(gps_eph, gps_obs_time), false, line); + + const double seconds = fmod(gps_obs_time, 60); // Add extra 0 if seconds are < 10 if (seconds < 10) { @@ -6596,45 +6380,40 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep std::map observablesE5A; std::map observablesE5B; std::map observablesE6B; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { - const std::string system_(&observables_iter->second.System, 1); - const std::string sig_(observables_iter->second.Signal); + const std::string system_(&observables_iter.second.System, 1); + const std::string sig_(observables_iter.second.Signal); if ((system_ == "E") && (sig_ == "1B")) { - observablesE1B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE1B.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "5X")) { - observablesE5A.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE5A.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "7X")) { - observablesE5B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE5B.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "E6")) { - observablesE6B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE6B.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "G") && (sig_ == "1C")) { - observablesG1C.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesG1C.insert(std::pair(observables_iter.first, observables_iter.second)); } } std::multimap total_gal_map; std::set available_gal_prns; std::set::iterator it; - for (observables_iter = observablesE1B.cbegin(); - observables_iter != observablesE1B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE1B) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gal_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gal_map.insert(std::pair(prn_, observables_iter.second)); it = available_gal_prns.find(prn_); if (it == available_gal_prns.end()) { @@ -6642,12 +6421,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } } - for (observables_iter = observablesE5A.cbegin(); - observables_iter != observablesE5A.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE5A) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gal_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gal_map.insert(std::pair(prn_, observables_iter.second)); it = available_gal_prns.find(prn_); if (it == available_gal_prns.end()) { @@ -6655,12 +6432,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } } - for (observables_iter = observablesE5B.cbegin(); - observables_iter != observablesE5B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE5B) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gal_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gal_map.insert(std::pair(prn_, observables_iter.second)); it = available_gal_prns.find(prn_); if (it == available_gal_prns.end()) { @@ -6668,12 +6443,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } } - for (observables_iter = observablesE6B.cbegin(); - observables_iter != observablesE6B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE6B) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gal_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gal_map.insert(std::pair(prn_, observables_iter.second)); it = available_gal_prns.find(prn_); if (it == available_gal_prns.end()) { @@ -6696,13 +6469,11 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep std::string s; std::string lineObs; - for (observables_iter = observablesG1C.cbegin(); - observables_iter != observablesG1C.cend(); - observables_iter++) + for (const auto& observables_iter : observablesG1C) { lineObs.clear(); - s.assign(1, observables_iter->second.System); + s.assign(1, observables_iter.second.System); if (s == "G") { lineObs += satelliteSystem.at("GPS"); @@ -6711,12 +6482,12 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep { lineObs += satelliteSystem.at("Galileo"); } - if (static_cast(observables_iter->second.PRN) < 10) + if (static_cast(observables_iter.second.PRN) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(observables_iter->second.PRN)); - lineObs += rightJustify(asString(observables_iter->second.Pseudorange_m, 3), 14); + lineObs += std::to_string(static_cast(observables_iter.second.PRN)); + lineObs += rightJustify(asString(observables_iter.second.Pseudorange_m, 3), 14); // Loss of lock indicator (LLI) int32_t lli = 0; // Include in the observation!! @@ -6730,11 +6501,11 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep // } // Signal Strength Indicator (SSI) - const int32_t ssi = Rinex_Printer::signalStrength(observables_iter->second.CN0_dB_hz); + const int32_t ssi = Rinex_Printer::signalStrength(observables_iter.second.CN0_dB_hz); lineObs += rightJustify(asString(ssi), 1); // PHASE - lineObs += rightJustify(asString(observables_iter->second.Carrier_phase_rads / TWO_PI, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_phase_rads / TWO_PI, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -6746,7 +6517,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep lineObs += rightJustify(asString(ssi), 1); // DOPPLER - lineObs += rightJustify(asString(observables_iter->second.Carrier_Doppler_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.Carrier_Doppler_hz, 3), 14); if (lli == 0) { lineObs += std::string(1, ' '); @@ -6758,7 +6529,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep lineObs += rightJustify(asString(ssi), 1); // SIGNAL STRENGTH - lineObs += rightJustify(asString(observables_iter->second.CN0_dB_hz, 3), 14); + lineObs += rightJustify(asString(observables_iter.second.CN0_dB_hz, 3), 14); if (lineObs.size() < 80) { @@ -6768,18 +6539,16 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } std::pair::iterator, std::multimap::iterator> ret; - for (it = available_gal_prns.cbegin(); - it != available_gal_prns.cend(); - it++) + for (const auto& prn : available_gal_prns) { lineObs.clear(); lineObs += satelliteSystem.at("Galileo"); - if (static_cast(*it) < 10) + if (static_cast(prn) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(*it)); - ret = total_gal_map.equal_range(*it); + lineObs += std::to_string(static_cast(prn)); + ret = total_gal_map.equal_range(prn); for (auto iter = ret.first; iter != ret.second; ++iter) { lineObs += rightJustify(asString(iter->second.Pseudorange_m, 3), 14); @@ -6843,32 +6612,14 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e } // avoid warning, not needed std::string line; - const boost::posix_time::ptime p_gps_time = Rinex_Printer::compute_GPS_time(eph, gps_obs_time); - const std::string timestring = boost::posix_time::to_iso_string(p_gps_time); // double utc_t = nav_msg.utc_time(nav_msg.sv_clock_correction(obs_time)); // double gps_t = eph.sv_clock_correction(obs_time); - const double gps_t = gps_obs_time; - const std::string month(timestring, 4, 2); - const std::string day(timestring, 6, 2); - const std::string hour(timestring, 9, 2); - const std::string minutes(timestring, 11, 2); - - const std::string year(timestring, 0, 4); line += std::string(1, '>'); - line += std::string(1, ' '); - line += year; - line += std::string(1, ' '); - line += month; - line += std::string(1, ' '); - line += day; - line += std::string(1, ' '); - line += hour; - line += std::string(1, ' '); - line += minutes; - line += std::string(1, ' '); - const double seconds = fmod(gps_t, 60); + add_svclk_to_line(Rinex_Printer::compute_GPS_time(eph, gps_obs_time), false, line); + + const double seconds = fmod(gps_obs_time, 60); // Add extra 0 if seconds are < 10 if (seconds < 10) { @@ -6888,37 +6639,34 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e std::map observablesE5A; std::map observablesE5B; std::map observablesE6B; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { - const std::string system_(&observables_iter->second.System, 1); - const std::string sig_(observables_iter->second.Signal); + const std::string system_(&observables_iter.second.System, 1); + const std::string sig_(observables_iter.second.Signal); if ((system_ == "E") && (sig_ == "1B")) { - observablesE1B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE1B.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "5X")) { - observablesE5A.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE5A.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "7X")) { - observablesE5B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE5B.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "E6")) { - observablesE6B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE6B.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "G") && (sig_ == "2S")) { - observablesG2S.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesG2S.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "G") && (sig_ == "L5")) { - observablesGL5.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesGL5.insert(std::pair(observables_iter.first, observables_iter.second)); } } @@ -6927,12 +6675,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e std::set available_gal_prns; std::set available_gps_prns; std::set::iterator it; - for (observables_iter = observablesE1B.cbegin(); - observables_iter != observablesE1B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE1B) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gal_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gal_map.insert(std::pair(prn_, observables_iter.second)); it = available_gal_prns.find(prn_); if (it == available_gal_prns.end()) { @@ -6940,12 +6686,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e } } - for (observables_iter = observablesE5A.cbegin(); - observables_iter != observablesE5A.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE5A) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gal_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gal_map.insert(std::pair(prn_, observables_iter.second)); it = available_gal_prns.find(prn_); if (it == available_gal_prns.end()) { @@ -6953,12 +6697,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e } } - for (observables_iter = observablesE5B.cbegin(); - observables_iter != observablesE5B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE5B) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gal_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gal_map.insert(std::pair(prn_, observables_iter.second)); it = available_gal_prns.find(prn_); if (it == available_gal_prns.end()) { @@ -6966,12 +6708,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e } } - for (observables_iter = observablesE6B.cbegin(); - observables_iter != observablesE6B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE6B) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gal_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gal_map.insert(std::pair(prn_, observables_iter.second)); it = available_gal_prns.find(prn_); if (it == available_gal_prns.end()) { @@ -6979,12 +6719,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e } } - for (observables_iter = observablesG2S.cbegin(); - observables_iter != observablesG2S.cend(); - observables_iter++) + for (const auto& observables_iter : observablesG2S) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gps_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gps_map.insert(std::pair(prn_, observables_iter.second)); it = available_gps_prns.find(prn_); if (it == available_gps_prns.end()) { @@ -6992,12 +6730,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e } } - for (observables_iter = observablesGL5.cbegin(); - observables_iter != observablesGL5.cend(); - observables_iter++) + for (const auto& observables_iter : observablesGL5) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gps_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gps_map.insert(std::pair(prn_, observables_iter.second)); it = available_gps_prns.find(prn_); if (it == available_gps_prns.end()) { @@ -7021,18 +6757,16 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e std::string lineObs; std::pair::iterator, std::multimap::iterator> ret; - for (it = available_gps_prns.cbegin(); - it != available_gps_prns.cend(); - it++) + for (const auto& prn : available_gps_prns) { lineObs.clear(); lineObs += satelliteSystem.at("GPS"); - if (static_cast(*it) < 10) + if (static_cast(prn) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(*it)); - ret = total_gps_map.equal_range(*it); + lineObs += std::to_string(static_cast(prn)); + ret = total_gps_map.equal_range(prn); for (auto iter = ret.first; iter != ret.second; ++iter) { lineObs += rightJustify(asString(iter->second.Pseudorange_m, 3), 14); @@ -7083,18 +6817,16 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e out << lineObs << '\n'; } - for (it = available_gal_prns.cbegin(); - it != available_gal_prns.cend(); - it++) + for (const auto& prn : available_gal_prns) { lineObs.clear(); lineObs += satelliteSystem.at("Galileo"); - if (static_cast(*it) < 10) + if (static_cast(prn) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(*it)); - ret = total_gal_map.equal_range(*it); + lineObs += std::to_string(static_cast(prn)); + ret = total_gal_map.equal_range(prn); for (auto iter = ret.first; iter != ret.second; ++iter) { lineObs += rightJustify(asString(iter->second.Pseudorange_m, 3), 14); @@ -7158,32 +6890,14 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } // avoid warning, not needed std::string line; - const boost::posix_time::ptime p_gps_time = Rinex_Printer::compute_GPS_time(gps_eph, gps_obs_time); - const std::string timestring = boost::posix_time::to_iso_string(p_gps_time); // double utc_t = nav_msg.utc_time(nav_msg.sv_clock_correction(obs_time)); // double gps_t = eph.sv_clock_correction(obs_time); - const double gps_t = gps_obs_time; - const std::string month(timestring, 4, 2); - const std::string day(timestring, 6, 2); - const std::string hour(timestring, 9, 2); - const std::string minutes(timestring, 11, 2); - - const std::string year(timestring, 0, 4); line += std::string(1, '>'); - line += std::string(1, ' '); - line += year; - line += std::string(1, ' '); - line += month; - line += std::string(1, ' '); - line += day; - line += std::string(1, ' '); - line += hour; - line += std::string(1, ' '); - line += minutes; - line += std::string(1, ' '); - const double seconds = fmod(gps_t, 60); + add_svclk_to_line(Rinex_Printer::compute_GPS_time(gps_eph, gps_obs_time), false, line); + + const double seconds = fmod(gps_obs_time, 60); // Add extra 0 if seconds are < 10 if (seconds < 10) { @@ -7204,41 +6918,38 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep std::map observablesE5A; std::map observablesE5B; std::map observablesE6B; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { - const std::string system_(&observables_iter->second.System, 1); - const std::string sig_(observables_iter->second.Signal); + const std::string system_(&observables_iter.second.System, 1); + const std::string sig_(observables_iter.second.Signal); if ((system_ == "E") && (sig_ == "1B")) { - observablesE1B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE1B.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "5X")) { - observablesE5A.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE5A.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "7X")) { - observablesE5B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE5B.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "E") && (sig_ == "E6")) { - observablesE6B.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesE6B.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "G") && (sig_ == "2S")) { - observablesG2S.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesG2S.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "G") && (sig_ == "L5")) { - observablesGL5.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesGL5.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "G") && (sig_ == "1C")) { - observablesG1C.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesG1C.insert(std::pair(observables_iter.first, observables_iter.second)); } } @@ -7247,12 +6958,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep std::set available_gal_prns; std::set available_gps_prns; std::set::iterator it; - for (observables_iter = observablesE1B.cbegin(); - observables_iter != observablesE1B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE1B) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gal_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gal_map.insert(std::pair(prn_, observables_iter.second)); it = available_gal_prns.find(prn_); if (it == available_gal_prns.end()) { @@ -7260,12 +6969,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } } - for (observables_iter = observablesE5A.cbegin(); - observables_iter != observablesE5A.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE5A) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gal_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gal_map.insert(std::pair(prn_, observables_iter.second)); it = available_gal_prns.find(prn_); if (it == available_gal_prns.end()) { @@ -7273,12 +6980,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } } - for (observables_iter = observablesE5B.cbegin(); - observables_iter != observablesE5B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE5B) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gal_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gal_map.insert(std::pair(prn_, observables_iter.second)); it = available_gal_prns.find(prn_); if (it == available_gal_prns.end()) { @@ -7286,12 +6991,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } } - for (observables_iter = observablesE6B.cbegin(); - observables_iter != observablesE6B.cend(); - observables_iter++) + for (const auto& observables_iter : observablesE6B) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gal_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gal_map.insert(std::pair(prn_, observables_iter.second)); it = available_gal_prns.find(prn_); if (it == available_gal_prns.end()) { @@ -7299,12 +7002,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } } - for (observables_iter = observablesG1C.cbegin(); - observables_iter != observablesG1C.cend(); - observables_iter++) + for (const auto& observables_iter : observablesG1C) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gps_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gps_map.insert(std::pair(prn_, observables_iter.second)); it = available_gps_prns.find(prn_); if (it == available_gps_prns.end()) { @@ -7312,12 +7013,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } } - for (observables_iter = observablesG2S.cbegin(); - observables_iter != observablesG2S.cend(); - observables_iter++) + for (const auto& observables_iter : observablesG2S) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gps_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gps_map.insert(std::pair(prn_, observables_iter.second)); it = available_gps_prns.find(prn_); if (it == available_gps_prns.end()) { @@ -7325,12 +7024,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep } } - for (observables_iter = observablesGL5.cbegin(); - observables_iter != observablesGL5.cend(); - observables_iter++) + for (const auto& observables_iter : observablesGL5) { - const uint32_t prn_ = observables_iter->second.PRN; - total_gps_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_gps_map.insert(std::pair(prn_, observables_iter.second)); it = available_gps_prns.find(prn_); if (it == available_gps_prns.end()) { @@ -7354,18 +7051,16 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep std::string lineObs; std::pair::iterator, std::multimap::iterator> ret; - for (it = available_gps_prns.cbegin(); - it != available_gps_prns.cend(); - it++) + for (const auto& prn : available_gps_prns) { lineObs.clear(); lineObs += satelliteSystem.at("GPS"); - if (static_cast(*it) < 10) + if (static_cast(prn) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(*it)); - ret = total_gps_map.equal_range(*it); + lineObs += std::to_string(static_cast(prn)); + ret = total_gps_map.equal_range(prn); bool have_l2 = false; for (auto iter = ret.first; iter != ret.second; ++iter) { @@ -7427,18 +7122,16 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep out << lineObs << '\n'; } - for (it = available_gal_prns.cbegin(); - it != available_gal_prns.cend(); - it++) + for (const auto& prn : available_gal_prns) { lineObs.clear(); lineObs += satelliteSystem.at("Galileo"); - if (static_cast(*it) < 10) + if (static_cast(prn) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(*it)); - ret = total_gal_map.equal_range(*it); + lineObs += std::to_string(static_cast(prn)); + ret = total_gal_map.equal_range(prn); for (auto iter = ret.first; iter != ret.second; ++iter) { lineObs += rightJustify(asString(iter->second.Pseudorange_m, 3), 14); @@ -7496,32 +7189,14 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Beidou_Dnav_Ephemeris { std::string line; - const boost::posix_time::ptime p_bds_time = Rinex_Printer::compute_BDS_time(eph, obs_time); - const std::string timestring = boost::posix_time::to_iso_string(p_bds_time); // double utc_t = nav_msg.utc_time(nav_msg.sv_clock_correction(obs_time)); // double gps_t = eph.sv_clock_correction(obs_time); - const double bds_t = obs_time; - const std::string month(timestring, 4, 2); - const std::string day(timestring, 6, 2); - const std::string hour(timestring, 9, 2); - const std::string minutes(timestring, 11, 2); - - const std::string year(timestring, 0, 4); line += std::string(1, '>'); - line += std::string(1, ' '); - line += year; - line += std::string(1, ' '); - line += month; - line += std::string(1, ' '); - line += day; - line += std::string(1, ' '); - line += hour; - line += std::string(1, ' '); - line += minutes; - line += std::string(1, ' '); - const double seconds = fmod(bds_t, 60); + add_svclk_to_line(Rinex_Printer::compute_BDS_time(eph, obs_time), false, line); + + const double seconds = fmod(obs_time, 60); // Add extra 0 if seconds are < 10 if (seconds < 10) { @@ -7538,21 +7213,18 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Beidou_Dnav_Ephemeris std::map observablesB1I; std::map observablesB3I; - std::map::const_iterator observables_iter; - for (observables_iter = observables.cbegin(); - observables_iter != observables.cend(); - observables_iter++) + for (const auto& observables_iter : observables) { - const std::string system_(&observables_iter->second.System, 1); - const std::string sig_(observables_iter->second.Signal); + const std::string system_(&observables_iter.second.System, 1); + const std::string sig_(observables_iter.second.Signal); if ((system_ == "C") && (sig_ == "B1")) { - observablesB1I.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesB1I.insert(std::pair(observables_iter.first, observables_iter.second)); } if ((system_ == "C") && (sig_ == "B3")) { - observablesB3I.insert(std::pair(observables_iter->first, observables_iter->second)); + observablesB3I.insert(std::pair(observables_iter.first, observables_iter.second)); } } const std::size_t found_B1 = bds_bands.find("B1"); @@ -7563,12 +7235,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Beidou_Dnav_Ephemeris std::set::iterator it; if (found_B1 != std::string::npos) { - for (observables_iter = observablesB1I.cbegin(); - observables_iter != observablesB1I.cend(); - observables_iter++) + for (const auto& observables_iter : observablesB1I) { - const uint32_t prn_ = observables_iter->second.PRN; - total_map.insert(std::pair(prn_, observables_iter->second)); + const uint32_t prn_ = observables_iter.second.PRN; + total_map.insert(std::pair(prn_, observables_iter.second)); it = available_prns.find(prn_); if (it == available_prns.end()) { @@ -7578,11 +7248,9 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Beidou_Dnav_Ephemeris } if (found_B3 != std::string::npos) { - for (observables_iter = observablesB3I.cbegin(); - observables_iter != observablesB3I.cend(); - observables_iter++) + for (const auto& observables_iter : observablesB3I) { - const uint32_t prn_ = observables_iter->second.PRN; + const uint32_t prn_ = observables_iter.second.PRN; it = available_prns.find(prn_); if (it == available_prns.end()) { @@ -7598,7 +7266,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Beidou_Dnav_Ephemeris total_map.insert(std::pair(prn_, gs)); } } - total_map.insert(std::pair(prn_, observables_iter->second)); + total_map.insert(std::pair(prn_, observables_iter.second)); } } @@ -7611,19 +7279,16 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Beidou_Dnav_Ephemeris out << line << '\n'; std::string lineObs; - std::pair::iterator, std::multimap::iterator> ret; - for (it = available_prns.cbegin(); - it != available_prns.cend(); - it++) + for (const auto& available_prn : available_prns) { lineObs.clear(); lineObs += satelliteSystem.at("Beidou"); - if (static_cast(*it) < 10) + if (static_cast(available_prn) < 10) { lineObs += std::string(1, '0'); } - lineObs += std::to_string(static_cast(*it)); - ret = total_map.equal_range(*it); + lineObs += std::to_string(static_cast(available_prn)); + const auto ret = total_map.equal_range(available_prn); for (auto iter = ret.first; iter != ret.second; ++iter) { lineObs += rightJustify(asString(iter->second.Pseudorange_m, 3), 14);