1
0
mirror of https://github.com/gnss-sdr/gnss-sdr synced 2024-12-15 20:50:33 +00:00

Add Galileo E6B observables in RINEX files if available

This commit is contained in:
Carles Fernandez 2022-05-30 14:20:34 +02:00
parent 92b021f1b6
commit 934bbcaa45
No known key found for this signature in database
GPG Key ID: 4C583C52B0C3877D

View File

@ -112,7 +112,7 @@ Rinex_Printer::Rinex_Printer(int32_t conf_version,
observationCode["GALILEO_E5_IQ"] = "8X"; // "8X" GALILEO E5 I+Q observationCode["GALILEO_E5_IQ"] = "8X"; // "8X" GALILEO E5 I+Q
observationCode["GALILEO_E56_A"] = "6A"; // "6A" GALILEO E6 A observationCode["GALILEO_E56_A"] = "6A"; // "6A" GALILEO E6 A
observationCode["GALILEO_E56_B"] = "6B"; // "6B" GALILEO E6 B observationCode["GALILEO_E56_B"] = "6B"; // "6B" GALILEO E6 B
observationCode["GALILEO_E56_B"] = "6C"; // "6C" GALILEO E6 C observationCode["GALILEO_E56_C"] = "6C"; // "6C" GALILEO E6 C
observationCode["GALILEO_E56_BC"] = "6X"; // "6X" GALILEO E6 B+C observationCode["GALILEO_E56_BC"] = "6X"; // "6X" GALILEO E6 B+C
observationCode["GALILEO_E56_ABC"] = "6Z"; // "6Z" GALILEO E6 A+B+C observationCode["GALILEO_E56_ABC"] = "6Z"; // "6Z" GALILEO E6 A+B+C
observationCode["SBAS_L1_CA"] = "1C"; // "1C" SBAS L1 C/A observationCode["SBAS_L1_CA"] = "1C"; // "1C" SBAS L1 C/A
@ -621,10 +621,22 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
d_rinex_header_written = true; // do not write header anymore d_rinex_header_written = true; // do not write header anymore
} }
break; break;
case 100: // Galileo E6B
if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())
{
const std::string gal_signal("E6");
rinex_obs_header(obsFile, galileo_ephemeris_iter->second, rx_time, gal_signal);
rinex_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model);
output_navfilename.push_back(navGalfilename);
log_rinex_nav(navGalFile, pvt_solver->galileo_ephemeris_map);
d_rinex_header_written = true; // do not write header anymore
}
break;
case 101: // Galileo E1B + Galileo E6B case 101: // Galileo E1B + Galileo E6B
if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()) if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())
{ {
rinex_obs_header(obsFile, galileo_ephemeris_iter->second, rx_time); const std::string gal_signal("1B E6");
rinex_obs_header(obsFile, gps_ephemeris_iter->second, galileo_ephemeris_iter->second, rx_time, gal_signal);
rinex_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model); rinex_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model);
output_navfilename.push_back(navGalfilename); output_navfilename.push_back(navGalfilename);
log_rinex_nav(navGalFile, pvt_solver->galileo_ephemeris_map); log_rinex_nav(navGalFile, pvt_solver->galileo_ephemeris_map);
@ -634,7 +646,7 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
case 102: // Galileo E5a + Galileo E6B case 102: // Galileo E5a + Galileo E6B
if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()) if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())
{ {
const std::string signal("5X"); const std::string signal("5X E6");
rinex_obs_header(obsFile, galileo_ephemeris_iter->second, rx_time, signal); rinex_obs_header(obsFile, galileo_ephemeris_iter->second, rx_time, signal);
rinex_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model); rinex_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model);
output_navfilename.push_back(navGalfilename); output_navfilename.push_back(navGalfilename);
@ -645,7 +657,7 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
case 103: // Galileo E5b + Galileo E6B case 103: // Galileo E5b + Galileo E6B
if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()) if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())
{ {
const std::string signal("7X"); const std::string signal("7X E6");
rinex_obs_header(obsFile, galileo_ephemeris_iter->second, rx_time, signal); rinex_obs_header(obsFile, galileo_ephemeris_iter->second, rx_time, signal);
rinex_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model); rinex_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model);
output_navfilename.push_back(navGalfilename); output_navfilename.push_back(navGalfilename);
@ -656,7 +668,7 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
case 104: // Galileo E1B + Galileo E5a + Galileo E6B case 104: // Galileo E1B + Galileo E5a + Galileo E6B
if ((galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())) if ((galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()))
{ {
const std::string gal_signal("1B 5X"); const std::string gal_signal("1B 5X E6");
rinex_obs_header(obsFile, galileo_ephemeris_iter->second, rx_time, gal_signal); rinex_obs_header(obsFile, galileo_ephemeris_iter->second, rx_time, gal_signal);
rinex_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model); rinex_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model);
output_navfilename.push_back(navGalfilename); output_navfilename.push_back(navGalfilename);
@ -667,7 +679,7 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
case 105: // Galileo E1B + Galileo E5b + Galileo E6B case 105: // Galileo E1B + Galileo E5b + Galileo E6B
if ((galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())) if ((galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()))
{ {
const std::string gal_signal("1B 7X"); const std::string gal_signal("1B 7X E6");
rinex_obs_header(obsFile, galileo_ephemeris_iter->second, rx_time, gal_signal); rinex_obs_header(obsFile, galileo_ephemeris_iter->second, rx_time, gal_signal);
rinex_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model); rinex_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model);
output_navfilename.push_back(navGalfilename); output_navfilename.push_back(navGalfilename);
@ -678,7 +690,7 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
case 106: // GPS L1 C/A + Galileo E1B + Galileo E6B case 106: // GPS L1 C/A + Galileo E1B + Galileo E6B
if ((galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()) and (gps_ephemeris_iter != pvt_solver->gps_ephemeris_map.cend())) if ((galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()) and (gps_ephemeris_iter != pvt_solver->gps_ephemeris_map.cend()))
{ {
const std::string gal_signal("1B"); const std::string gal_signal("1B E6");
rinex_obs_header(obsFile, gps_ephemeris_iter->second, galileo_ephemeris_iter->second, rx_time, gal_signal); rinex_obs_header(obsFile, gps_ephemeris_iter->second, galileo_ephemeris_iter->second, rx_time, gal_signal);
rinex_nav_header(navMixFile, pvt_solver->gps_iono, pvt_solver->gps_utc_model, gps_ephemeris_iter->second, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model); rinex_nav_header(navMixFile, pvt_solver->gps_iono, pvt_solver->gps_utc_model, gps_ephemeris_iter->second, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model);
output_navfilename.push_back(navMixfilename); output_navfilename.push_back(navMixfilename);
@ -1077,10 +1089,22 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
} }
} }
break; break;
case 100: // Galileo E6B
if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())
{
log_rinex_obs(obsFile, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, "E6");
}
if (!d_rinex_header_updated and (pvt_solver->galileo_utc_model.A0 != 0))
{
update_nav_header(navGalFile, pvt_solver->galileo_iono, pvt_solver->galileo_utc_model);
update_obs_header(obsFile, pvt_solver->galileo_utc_model);
d_rinex_header_updated = true;
}
break;
case 101: // Galileo E1B + Galileo E6B case 101: // Galileo E1B + Galileo E6B
if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()) if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())
{ {
log_rinex_obs(obsFile, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, "1B"); log_rinex_obs(obsFile, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, "1B E6");
} }
if (!d_rinex_header_updated and (pvt_solver->galileo_utc_model.A0 != 0)) if (!d_rinex_header_updated and (pvt_solver->galileo_utc_model.A0 != 0))
{ {
@ -1092,7 +1116,7 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
case 102: // Galileo E5a + Galileo E6B case 102: // Galileo E5a + Galileo E6B
if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()) if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())
{ {
log_rinex_obs(obsFile, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, "5X"); log_rinex_obs(obsFile, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, "5X E6");
} }
if (!d_rinex_header_updated and (pvt_solver->galileo_utc_model.A0 != 0)) if (!d_rinex_header_updated and (pvt_solver->galileo_utc_model.A0 != 0))
{ {
@ -1104,7 +1128,7 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
case 103: // Galileo E5b + Galileo E6B case 103: // Galileo E5b + Galileo E6B
if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()) if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())
{ {
log_rinex_obs(obsFile, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, "5X"); log_rinex_obs(obsFile, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, "7X E6");
} }
if (!d_rinex_header_updated and (pvt_solver->galileo_utc_model.A0 != 0)) if (!d_rinex_header_updated and (pvt_solver->galileo_utc_model.A0 != 0))
{ {
@ -1116,7 +1140,7 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
case 104: // Galileo E1B + Galileo E5a + Galileo E6B case 104: // Galileo E1B + Galileo E5a + Galileo E6B
if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()) if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())
{ {
log_rinex_obs(obsFile, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, "1B 5X"); log_rinex_obs(obsFile, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, "1B 5X E6");
} }
if (!d_rinex_header_updated and (pvt_solver->galileo_utc_model.A0 != 0)) if (!d_rinex_header_updated and (pvt_solver->galileo_utc_model.A0 != 0))
{ {
@ -1128,7 +1152,7 @@ void Rinex_Printer::print_rinex_annotation(const Rtklib_Solver* pvt_solver, cons
case 105: // Galileo E1B + Galileo E5b + Galileo E6B case 105: // Galileo E1B + Galileo E5b + Galileo E6B
if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend()) if (galileo_ephemeris_iter != pvt_solver->galileo_ephemeris_map.cend())
{ {
log_rinex_obs(obsFile, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, "1B 7X"); log_rinex_obs(obsFile, galileo_ephemeris_iter->second, rx_time, gnss_observables_map, "1B 7X E6");
} }
if (!d_rinex_header_updated and (pvt_solver->galileo_utc_model.A0 != 0)) if (!d_rinex_header_updated and (pvt_solver->galileo_utc_model.A0 != 0))
{ {
@ -1317,6 +1341,7 @@ void Rinex_Printer::log_rinex_nav_gal_nav(int type_of_rx, const std::map<int32_t
case 33: // L1+E1+E5a case 33: // L1+E1+E5a
log_rinex_nav(navMixFile, new_eph, new_gal_eph); log_rinex_nav(navMixFile, new_eph, new_gal_eph);
break; break;
case 100: // E6B
case 101: // E1B + E6B case 101: // E1B + E6B
case 102: // Galileo E5a + Galileo E6B case 102: // Galileo E5a + Galileo E6B
case 103: // Galileo E5b + Galileo E6B case 103: // Galileo E5b + Galileo E6B
@ -3264,6 +3289,7 @@ void Rinex_Printer::rinex_nav_header(std::fstream& out, const Gps_CNAV_Iono& gps
out << line << '\n'; out << line << '\n';
} }
void Rinex_Printer::rinex_nav_header(std::fstream& out, const Glonass_Gnav_Utc_Model& glo_gnav_utc_model, const Beidou_Dnav_Iono& bds_dnav_iono, const Beidou_Dnav_Utc_Model& bds_dnav_utc_model) const void Rinex_Printer::rinex_nav_header(std::fstream& out, const Glonass_Gnav_Utc_Model& glo_gnav_utc_model, const Beidou_Dnav_Iono& bds_dnav_iono, const Beidou_Dnav_Utc_Model& bds_dnav_utc_model) const
{ {
std::string line; std::string line;
@ -8747,7 +8773,14 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Galileo_Ephemeris&
// -------- Line 1 // -------- Line 1
line = std::string(5, ' '); line = std::string(5, ' ');
line += "3.02"; if (bands.find("E6") != std::string::npos)
{
line += "3.05";
}
else
{
line += "3.02";
}
line += std::string(11, ' '); line += std::string(11, ' ');
line += Rinex_Printer::leftJustify("OBSERVATION DATA", 20); line += Rinex_Printer::leftJustify("OBSERVATION DATA", 20);
line += satelliteSystem.find("Galileo")->second; line += satelliteSystem.find("Galileo")->second;
@ -8899,7 +8932,6 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Galileo_Ephemeris&
number_of_observations = number_of_observations + 4; number_of_observations = number_of_observations + 4;
} }
line.clear();
signal_ = "7X"; signal_ = "7X";
const std::size_t found_7X = bands.find(signal_); const std::size_t found_7X = bands.find(signal_);
if (found_7X != std::string::npos) if (found_7X != std::string::npos)
@ -8907,6 +8939,13 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Galileo_Ephemeris&
number_of_observations = number_of_observations + 4; number_of_observations = number_of_observations + 4;
} }
signal_ = "E6";
const std::size_t found_E6 = bands.find(signal_);
if (found_E6 != std::string::npos)
{
number_of_observations = number_of_observations + 4;
}
line.clear(); line.clear();
line += satelliteSystem.find("Galileo")->second; line += satelliteSystem.find("Galileo")->second;
@ -8961,6 +9000,22 @@ void Rinex_Printer::rinex_obs_header(std::fstream& out, const Galileo_Ephemeris&
line += observationCode["GALILEO_E5b_IQ"]; line += observationCode["GALILEO_E5b_IQ"];
} }
if (found_E6 != std::string::npos)
{
line += std::string(1, ' ');
line += observationType["PSEUDORANGE"];
line += observationCode["GALILEO_E56_B"];
line += std::string(1, ' ');
line += observationType["CARRIER_PHASE"];
line += observationCode["GALILEO_E56_B"];
line += std::string(1, ' ');
line += observationType["DOPPLER"];
line += observationCode["GALILEO_E56_B"];
line += std::string(1, ' ');
line += observationType["SIGNAL_STRENGTH"];
line += observationCode["GALILEO_E56_B"];
}
line += std::string(60 - line.size(), ' '); line += std::string(60 - line.size(), ' ');
line += Rinex_Printer::leftJustify("SYS / # / OBS TYPES", 20); line += Rinex_Printer::leftJustify("SYS / # / OBS TYPES", 20);
Rinex_Printer::lengthCheck(line); Rinex_Printer::lengthCheck(line);
@ -11586,6 +11641,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ep
std::map<int32_t, Gnss_Synchro> observablesE1B; std::map<int32_t, Gnss_Synchro> observablesE1B;
std::map<int32_t, Gnss_Synchro> observablesE5A; std::map<int32_t, Gnss_Synchro> observablesE5A;
std::map<int32_t, Gnss_Synchro> observablesE5B; std::map<int32_t, Gnss_Synchro> observablesE5B;
std::map<int32_t, Gnss_Synchro> observablesE6B;
std::map<int32_t, Gnss_Synchro>::const_iterator observables_iter; std::map<int32_t, Gnss_Synchro>::const_iterator observables_iter;
for (observables_iter = observables.cbegin(); for (observables_iter = observables.cbegin();
@ -11606,10 +11662,15 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ep
{ {
observablesE5B.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second)); observablesE5B.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second));
} }
if ((system_ == "E") && (sig_ == "E6"))
{
observablesE6B.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second));
}
} }
const std::size_t found_1B = galileo_bands.find("1B"); const std::size_t found_1B = galileo_bands.find("1B");
const std::size_t found_E5a = galileo_bands.find("5X"); const std::size_t found_E5a = galileo_bands.find("5X");
const std::size_t found_E5b = galileo_bands.find("7X"); const std::size_t found_E5b = galileo_bands.find("7X");
const std::size_t found_E6b = galileo_bands.find("E6");
std::multimap<uint32_t, Gnss_Synchro> total_map; std::multimap<uint32_t, Gnss_Synchro> total_map;
std::set<uint32_t> available_prns; std::set<uint32_t> available_prns;
@ -11706,6 +11767,23 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Galileo_Ephemeris& ep
total_map.insert(std::pair<uint32_t, Gnss_Synchro>(prn_, observables_iter->second)); total_map.insert(std::pair<uint32_t, Gnss_Synchro>(prn_, observables_iter->second));
} }
} }
if (found_E6b != std::string::npos)
{
for (observables_iter = observablesE6B.cbegin();
observables_iter != observablesE6B.cend();
observables_iter++)
{
const uint32_t prn_ = observables_iter->second.PRN;
total_map.insert(std::pair<uint32_t, Gnss_Synchro>(prn_, observables_iter->second));
it = available_prns.find(prn_);
if (it == available_prns.end())
{
available_prns.insert(prn_);
}
}
}
const int32_t numSatellitesObserved = available_prns.size(); const int32_t numSatellitesObserved = available_prns.size();
line += Rinex_Printer::rightJustify(std::to_string(numSatellitesObserved), 3); line += Rinex_Printer::rightJustify(std::to_string(numSatellitesObserved), 3);
// Receiver clock offset (optional) // Receiver clock offset (optional)
@ -11834,6 +11912,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep
std::map<int32_t, Gnss_Synchro> observablesE1B; std::map<int32_t, Gnss_Synchro> observablesE1B;
std::map<int32_t, Gnss_Synchro> observablesE5A; std::map<int32_t, Gnss_Synchro> observablesE5A;
std::map<int32_t, Gnss_Synchro> observablesE5B; std::map<int32_t, Gnss_Synchro> observablesE5B;
std::map<int32_t, Gnss_Synchro> observablesE6B;
std::map<int32_t, Gnss_Synchro>::const_iterator observables_iter; std::map<int32_t, Gnss_Synchro>::const_iterator observables_iter;
for (observables_iter = observables.cbegin(); for (observables_iter = observables.cbegin();
@ -11854,6 +11933,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep
{ {
observablesE5B.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second)); observablesE5B.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second));
} }
if ((system_ == "E") && (sig_ == "E6"))
{
observablesE6B.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second));
}
if ((system_ == "G") && (sig_ == "1C")) if ((system_ == "G") && (sig_ == "1C"))
{ {
observablesG1C.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second)); observablesG1C.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second));
@ -11902,6 +11985,19 @@ 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++)
{
const uint32_t prn_ = observables_iter->second.PRN;
total_gal_map.insert(std::pair<uint32_t, Gnss_Synchro>(prn_, observables_iter->second));
it = available_gal_prns.find(prn_);
if (it == available_gal_prns.end())
{
available_gal_prns.insert(prn_);
}
}
const int32_t numGalSatellitesObserved = available_gal_prns.size(); const int32_t numGalSatellitesObserved = available_gal_prns.size();
const int32_t numGpsSatellitesObserved = observablesG1C.size(); const int32_t numGpsSatellitesObserved = observablesG1C.size();
const int32_t numSatellitesObserved = numGalSatellitesObserved + numGpsSatellitesObserved; const int32_t numSatellitesObserved = numGalSatellitesObserved + numGpsSatellitesObserved;
@ -12107,6 +12203,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e
std::map<int32_t, Gnss_Synchro> observablesE1B; std::map<int32_t, Gnss_Synchro> observablesE1B;
std::map<int32_t, Gnss_Synchro> observablesE5A; std::map<int32_t, Gnss_Synchro> observablesE5A;
std::map<int32_t, Gnss_Synchro> observablesE5B; std::map<int32_t, Gnss_Synchro> observablesE5B;
std::map<int32_t, Gnss_Synchro> observablesE6B;
std::map<int32_t, Gnss_Synchro>::const_iterator observables_iter; std::map<int32_t, Gnss_Synchro>::const_iterator observables_iter;
for (observables_iter = observables.cbegin(); for (observables_iter = observables.cbegin();
@ -12127,6 +12224,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_CNAV_Ephemeris& e
{ {
observablesE5B.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second)); observablesE5B.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second));
} }
if ((system_ == "E") && (sig_ == "E6"))
{
observablesE6B.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second));
}
if ((system_ == "G") && (sig_ == "2S")) if ((system_ == "G") && (sig_ == "2S"))
{ {
observablesG2S.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second)); observablesG2S.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second));
@ -12181,6 +12282,19 @@ 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++)
{
const uint32_t prn_ = observables_iter->second.PRN;
total_gal_map.insert(std::pair<uint32_t, Gnss_Synchro>(prn_, observables_iter->second));
it = available_gal_prns.find(prn_);
if (it == available_gal_prns.end())
{
available_gal_prns.insert(prn_);
}
}
for (observables_iter = observablesG2S.cbegin(); for (observables_iter = observablesG2S.cbegin();
observables_iter != observablesG2S.cend(); observables_iter != observablesG2S.cend();
observables_iter++) observables_iter++)
@ -12405,6 +12519,7 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep
std::map<int32_t, Gnss_Synchro> observablesE1B; std::map<int32_t, Gnss_Synchro> observablesE1B;
std::map<int32_t, Gnss_Synchro> observablesE5A; std::map<int32_t, Gnss_Synchro> observablesE5A;
std::map<int32_t, Gnss_Synchro> observablesE5B; std::map<int32_t, Gnss_Synchro> observablesE5B;
std::map<int32_t, Gnss_Synchro> observablesE6B;
std::map<int32_t, Gnss_Synchro>::const_iterator observables_iter; std::map<int32_t, Gnss_Synchro>::const_iterator observables_iter;
for (observables_iter = observables.cbegin(); for (observables_iter = observables.cbegin();
@ -12425,6 +12540,10 @@ void Rinex_Printer::log_rinex_obs(std::fstream& out, const Gps_Ephemeris& gps_ep
{ {
observablesE5B.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second)); observablesE5B.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second));
} }
if ((system_ == "E") && (sig_ == "E6"))
{
observablesE6B.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second));
}
if ((system_ == "G") && (sig_ == "2S")) if ((system_ == "G") && (sig_ == "2S"))
{ {
observablesG2S.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second)); observablesG2S.insert(std::pair<int32_t, Gnss_Synchro>(observables_iter->first, observables_iter->second));
@ -12483,6 +12602,19 @@ 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++)
{
const uint32_t prn_ = observables_iter->second.PRN;
total_gal_map.insert(std::pair<uint32_t, Gnss_Synchro>(prn_, observables_iter->second));
it = available_gal_prns.find(prn_);
if (it == available_gal_prns.end())
{
available_gal_prns.insert(prn_);
}
}
for (observables_iter = observablesG1C.cbegin(); for (observables_iter = observablesG1C.cbegin();
observables_iter != observablesG1C.cend(); observables_iter != observablesG1C.cend();
observables_iter++) observables_iter++)