mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2024-12-14 12:10:34 +00:00
Adding RINEX observable header file for Galileo
This commit is contained in:
parent
f6a55955ae
commit
8e70de41ed
@ -185,7 +185,7 @@ int galileo_e1_pvt_cc::general_work (int noutput_items, gr_vector_int &ninput_it
|
|||||||
galileo_ephemeris_iter = d_ls_pvt->galileo_ephemeris_map.begin();
|
galileo_ephemeris_iter = d_ls_pvt->galileo_ephemeris_map.begin();
|
||||||
if (galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.end())
|
if (galileo_ephemeris_iter != d_ls_pvt->galileo_ephemeris_map.end())
|
||||||
{
|
{
|
||||||
//rp->rinex_obs_header(rp->obsFile, galileo_ephemeris_iter->second, d_rx_time);
|
rp->rinex_obs_header(rp->obsFile, galileo_ephemeris_iter->second, d_rx_time);
|
||||||
rp->rinex_nav_header(rp->navGalFile, d_ls_pvt->galileo_iono, d_ls_pvt->galileo_utc_model);
|
rp->rinex_nav_header(rp->navGalFile, d_ls_pvt->galileo_iono, d_ls_pvt->galileo_utc_model);
|
||||||
b_rinex_header_writen = true; // do not write header anymore
|
b_rinex_header_writen = true; // do not write header anymore
|
||||||
}
|
}
|
||||||
|
@ -341,8 +341,9 @@ std::string Rinex_Printer::getLocalTime()
|
|||||||
|
|
||||||
if (version == 3)
|
if (version == 3)
|
||||||
{
|
{
|
||||||
line += std::string(1, ' ');
|
//line += std::string(1, ' ');
|
||||||
line += boost::gregorian::to_iso_string(today);
|
line += boost::gregorian::to_iso_string(today);
|
||||||
|
line += std::string(1, ' ');
|
||||||
line += strmHour.str();
|
line += strmHour.str();
|
||||||
line += strmMin.str();
|
line += strmMin.str();
|
||||||
|
|
||||||
@ -1404,6 +1405,189 @@ void Rinex_Printer::rinex_obs_header(std::ofstream& out, Gps_Ephemeris eph, doub
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void Rinex_Printer::rinex_obs_header(std::ofstream& out, Galileo_Ephemeris eph, double d_TOW_first_observation)
|
||||||
|
{
|
||||||
|
|
||||||
|
std::string line;
|
||||||
|
version = 3;
|
||||||
|
|
||||||
|
// -------- Line 1
|
||||||
|
line = std::string(5, ' ');
|
||||||
|
line += "3.01";
|
||||||
|
line += std::string(11, ' ');
|
||||||
|
line += Rinex_Printer::leftJustify("OBSERVATION DATA", 20);
|
||||||
|
line += satelliteSystem["Galileo"];
|
||||||
|
line += std::string(19, ' ');
|
||||||
|
line += std::string("RINEX VERSION / TYPE");
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- Line 2
|
||||||
|
line.clear();
|
||||||
|
line += Rinex_Printer::leftJustify("G = GPS R = GLONASS E = GALILEO S = GEO M = MIXED", 60);
|
||||||
|
line += Rinex_Printer::leftJustify("COMMENT", 20);
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- Line 3
|
||||||
|
line.clear();
|
||||||
|
line += Rinex_Printer::getLocalTime();
|
||||||
|
line += std::string("PGM / RUN BY / DATE");
|
||||||
|
line += std::string(1, ' ');
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- Line COMMENT
|
||||||
|
line.clear();
|
||||||
|
line += Rinex_Printer::leftJustify("GALILEO OBSERVATION DATA FILE GENERATED BY GNSS-SDR", 60);
|
||||||
|
line += Rinex_Printer::leftJustify("COMMENT", 20);
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- Line COMMENT
|
||||||
|
line.clear();
|
||||||
|
line += Rinex_Printer::leftJustify("See http://gnss-sdr.org", 60);
|
||||||
|
line += Rinex_Printer::leftJustify("COMMENT", 20);
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- Line MARKER NAME
|
||||||
|
line.clear();
|
||||||
|
line += Rinex_Printer::leftJustify("DEFAULT MARKER NAME", 60); // put a flag or a property,
|
||||||
|
line += Rinex_Printer::leftJustify("MARKER NAME", 20);
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- Line MARKER TYPE
|
||||||
|
//line.clear();
|
||||||
|
//line += Rinex_Printer::leftJustify("GROUND_CRAFT", 20); // put a flag or a property
|
||||||
|
//line += std::string(40, ' ');
|
||||||
|
//line += Rinex_Printer::leftJustify("MARKER TYPE", 20);
|
||||||
|
//Rinex_Printer::lengthCheck(line);
|
||||||
|
//out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- Line OBSERVER / AGENCY
|
||||||
|
line.clear();
|
||||||
|
std::string username=getenv("USER");
|
||||||
|
line += leftJustify(username, 20);
|
||||||
|
line += Rinex_Printer::leftJustify("CTTC", 40); // add flag and property
|
||||||
|
line += Rinex_Printer::leftJustify("OBSERVER / AGENCY", 20);
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- Line REC / TYPE VERS
|
||||||
|
line.clear();
|
||||||
|
line += Rinex_Printer::leftJustify("GNSS-SDR", 20); // add flag and property
|
||||||
|
line += Rinex_Printer::leftJustify("Software Receiver", 20); // add flag and property
|
||||||
|
//line += Rinex_Printer::leftJustify(google::VersionString(), 20); // add flag and property
|
||||||
|
line += Rinex_Printer::leftJustify("0.0.4", 20);
|
||||||
|
line += Rinex_Printer::leftJustify("REC # / TYPE / VERS", 20);
|
||||||
|
lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- ANTENNA TYPE
|
||||||
|
line.clear();
|
||||||
|
line += Rinex_Printer::leftJustify("Antenna number", 20); // add flag and property
|
||||||
|
line += Rinex_Printer::leftJustify("Antenna type", 20); // add flag and property
|
||||||
|
line += std::string(20, ' ');
|
||||||
|
line += Rinex_Printer::leftJustify("ANT # / TYPE", 20);
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- APPROX POSITION (optional for moving platforms)
|
||||||
|
// put here real data!
|
||||||
|
double antena_x = 0.0;
|
||||||
|
double antena_y = 0.0;
|
||||||
|
double antena_z = 0.0;
|
||||||
|
line.clear();
|
||||||
|
line += Rinex_Printer::rightJustify(Rinex_Printer::asString(antena_x, 4), 14);
|
||||||
|
line += Rinex_Printer::rightJustify(Rinex_Printer::asString(antena_y, 4), 14);
|
||||||
|
line += Rinex_Printer::rightJustify(Rinex_Printer::asString(antena_z, 4), 14);
|
||||||
|
line += std::string(18, ' ');
|
||||||
|
line += Rinex_Printer::leftJustify("APPROX POSITION XYZ", 20);
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- ANTENNA: DELTA H/E/N
|
||||||
|
// put here real data!
|
||||||
|
double antena_h = 0.0;
|
||||||
|
double antena_e = 0.0;
|
||||||
|
double antena_n = 0.0;
|
||||||
|
line.clear();
|
||||||
|
line += Rinex_Printer::rightJustify(Rinex_Printer::asString(antena_h, 4), 14);
|
||||||
|
line += Rinex_Printer::rightJustify(Rinex_Printer::asString(antena_e, 4), 14);
|
||||||
|
line += Rinex_Printer::rightJustify(Rinex_Printer::asString(antena_n, 4), 14);
|
||||||
|
line += std::string(18, ' ');
|
||||||
|
line += Rinex_Printer::leftJustify("ANTENNA: DELTA H/E/N", 20);
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- SYS / OBS TYPES
|
||||||
|
// one line per available system
|
||||||
|
line.clear();
|
||||||
|
line += satelliteSystem["Galileo"];
|
||||||
|
line += std::string(2, ' ');
|
||||||
|
line += Rinex_Printer::rightJustify("4", 3);
|
||||||
|
line += std::string(1, ' ');
|
||||||
|
line += observationType["PSEUDORANGE"];
|
||||||
|
line += observationCode["GALILEO_E1_B"];
|
||||||
|
line += std::string(1, ' ');
|
||||||
|
line += observationType["CARRIER_PHASE"];
|
||||||
|
line += observationCode["GALILEO_E1_B"];
|
||||||
|
line += std::string(1, ' ');
|
||||||
|
line += observationType["DOPPLER"];
|
||||||
|
line += observationCode["GALILEO_E1_B"];
|
||||||
|
line += std::string(1, ' ');
|
||||||
|
line += observationType["SIGNAL_STRENGTH"];
|
||||||
|
line += observationCode["GALILEO_E1_B"];
|
||||||
|
line += std::string(60-line.size(), ' ');
|
||||||
|
line += Rinex_Printer::leftJustify("SYS / # / OBS TYPES", 20);
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- Signal Strength units
|
||||||
|
line.clear();
|
||||||
|
line += Rinex_Printer::leftJustify("DBHZ", 20);
|
||||||
|
line += std::string(40, ' ');
|
||||||
|
line += Rinex_Printer::leftJustify("SIGNAL STRENGTH UNIT", 20);
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
|
||||||
|
// -------- TIME OF FIRST OBS
|
||||||
|
line.clear();
|
||||||
|
boost::posix_time::ptime p_galileo_time = Rinex_Printer::compute_Galileo_time(eph, d_TOW_first_observation);
|
||||||
|
std::string timestring=boost::posix_time::to_iso_string(p_galileo_time);
|
||||||
|
std::string year (timestring, 0, 4);
|
||||||
|
std::string month (timestring, 4, 2);
|
||||||
|
std::string day (timestring, 6, 2);
|
||||||
|
std::string hour (timestring, 9, 2);
|
||||||
|
std::string minutes (timestring, 11, 2);
|
||||||
|
double galileo_t = d_TOW_first_observation;
|
||||||
|
double seconds = fmod(galileo_t, 60);
|
||||||
|
line += Rinex_Printer::rightJustify(year, 6);
|
||||||
|
line += Rinex_Printer::rightJustify(month, 6);
|
||||||
|
line += Rinex_Printer::rightJustify(day, 6);
|
||||||
|
line += Rinex_Printer::rightJustify(hour, 6);
|
||||||
|
line += Rinex_Printer::rightJustify(minutes, 6);
|
||||||
|
line += Rinex_Printer::rightJustify(asString(seconds, 7), 13);
|
||||||
|
line += Rinex_Printer::rightJustify(std::string("GAL"), 8);
|
||||||
|
line += std::string(9, ' ');
|
||||||
|
line += Rinex_Printer::leftJustify("TIME OF FIRST OBS", 20);
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
|
||||||
|
// -------- SYS /PHASE SHIFTS
|
||||||
|
|
||||||
|
// -------- end of header
|
||||||
|
line.clear();
|
||||||
|
line += std::string(60, ' ');
|
||||||
|
line += Rinex_Printer::leftJustify("END OF HEADER", 20);
|
||||||
|
Rinex_Printer::lengthCheck(line);
|
||||||
|
out << line << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Rinex_Printer::log_rinex_obs(std::ofstream& out, Gps_Ephemeris eph, double obs_time, std::map<int,Gnss_Synchro> pseudoranges)
|
void Rinex_Printer::log_rinex_obs(std::ofstream& out, Gps_Ephemeris eph, double obs_time, std::map<int,Gnss_Synchro> pseudoranges)
|
||||||
{
|
{
|
||||||
|
@ -100,7 +100,9 @@ public:
|
|||||||
*/
|
*/
|
||||||
void rinex_obs_header(std::ofstream& out, Gps_Ephemeris eph, double d_TOW_first_observation);
|
void rinex_obs_header(std::ofstream& out, Gps_Ephemeris eph, double d_TOW_first_observation);
|
||||||
|
|
||||||
|
void rinex_obs_header(std::ofstream& out, Galileo_Ephemeris eph, double d_TOW_first_observation);
|
||||||
/*!
|
/*!
|
||||||
|
|
||||||
* \brief Generates the SBAS raw data header
|
* \brief Generates the SBAS raw data header
|
||||||
*/
|
*/
|
||||||
void rinex_sbs_header(std::ofstream& out);
|
void rinex_sbs_header(std::ofstream& out);
|
||||||
|
Loading…
Reference in New Issue
Block a user