Skip to content
Snippets Groups Projects
Commit 417a0a2a authored by Pep Martí Saumell's avatar Pep Martí Saumell
Browse files

[test] Added test for observation.loadrinex

parent d1009c60
No related branches found
No related tags found
2 merge requests!20new tag,!19new tag
......@@ -32,12 +32,21 @@ int main(int argc, char* argv[])
double dt = 0.0; // no limit
const char* opt = "-SYS=G"; // only GPS | GPS+GAL: "-SYS=G,L" | ALL: ""
// RTKLIB trace
// char str_file[80];
// snprintf(str_file, sizeof str_file, "../src/examples/trace");
// traceopen(str_file);
// tracelevel(4);
// load observations from RINEX file
observations.loadFromRinex("../src/examples/raw_201805171357.obs", t_start, t_end, dt, opt);
observations.loadFromRinex("../src/examples/sample_data.obs", t_start, t_end, dt, opt);
observations.print();
// Trace close
// traceclose();
// load navigation from RINEX file
navigation.loadFromRinex("../src/examples/raw_201805171357.nav", t_start, t_end, dt, opt);
navigation.loadFromRinex("../src/examples/sample_data.nav", t_start, t_end, dt, opt);
navigation.print();
/* Set processing options */
......@@ -89,4 +98,6 @@ int main(int argc, char* argv[])
std::cout << "Position LLA: " << ecefToLatLonAlt(Eigen::Vector3d(solb.rr[0], solb.rr[1], solb.rr[2])).transpose()
<< std::endl;
std::cout << "Position LLA (GT): " << lla_gt.transpose() << std::endl;
traceclose();
}
This diff is collapsed.
3.04 OBSERVATION DATA M RINEX VERSION / TYPE
sbf2rin-13.4.3 20200205 113408 UTC PGM / RUN BY / DATE
SEPT MARKER NAME
Unknown MARKER NUMBER
Unknown Unknown OBSERVER / AGENCY
3021420 SEPT ASTERX-M2 4.4.0 REC # / TYPE / VERS
Unknown Unknown ANT # / TYPE
4789398.3686 176958.8129 4194502.0999 APPROX POSITION XYZ
0.0000 0.0000 0.0000 ANTENNA: DELTA H/E/N
G 7 X1 C1C L1C C2W L2W C2L L2L SYS / # / OBS TYPES
E 7 X1 C1C L1C C5Q L5Q C7Q L7Q SYS / # / OBS TYPES
S 3 X1 C1C L1C SYS / # / OBS TYPES
R 5 X1 C1C L1C C2C L2C SYS / # / OBS TYPES
C 5 X1 C2I L2I C7I L7I SYS / # / OBS TYPES
SEPTENTRIO RECEIVERS OUTPUT ALIGNED CARRIER PHASES. COMMENT
NO FURTHER PHASE SHIFT APPLIED IN THE RINEX ENCODER. COMMENT
G L1C SYS / PHASE SHIFT
G L2W SYS / PHASE SHIFT
G L2L 0.00000 SYS / PHASE SHIFT
E L1C 0.00000 SYS / PHASE SHIFT
E L5Q 0.00000 SYS / PHASE SHIFT
E L7Q 0.00000 SYS / PHASE SHIFT
S L1C SYS / PHASE SHIFT
R L1C SYS / PHASE SHIFT
R L2C SYS / PHASE SHIFT
C L2I SYS / PHASE SHIFT
C L7I SYS / PHASE SHIFT
0.050 INTERVAL
2019 12 12 11 37 42.0000000 GPS TIME OF FIRST OBS
2019 12 12 11 45 12.9000000 GPS TIME OF LAST OBS
36 # OF SATELLITES
C1C 0.000 C2C 0.000 GLONASS COD/PHS/BIS
8 R03 5 R05 1 R13 -2 R14 -7 R15 0 R19 3 R20 2 R21 4 GLONASS SLOT / FRQ #
END OF HEADER
> 2019 12 12 11 37 42.0000000 0 23
C05 16.000 40138840.659 6 209013478.40606 40138832.256 6 161622441.87406
C10 17.000 39633104.355 5 206379985.90205 39633100.852 6 159586077.69206
C23 18.000 22865676.301 8 119067585.90908
C32 19.000 22153454.599 8 115358921.19508
C37 20.000 23690566.611 7 123363010.77907
E01 11.000 26311074.676 7 138265636.53007 26311074.470 5 103250320.19005 26311070.977 7 105943790.57907
E09 12.000 25723493.482 5
E12 13.000 24803095.627 5 130341141.55605 24803092.768 4 97332661.71504 24803092.407 6 99871767.93506
E19 14.000 24540665.652 6 128962068.93606 24540664.837 5 96302837.53105 24540661.694 6 98815075.63606
E21 15.000 25609802.251 7 134580416.73507 25609802.381 7 100498367.38007 25609799.519 7 103120055.01507
G02 1.000 22032430.127 5
G06 2.000 22147435.410 6 116385570.45206 22147437.095 4 90690045.24704 22147437.422 7 90690046.16907
G07 3.000 20902411.481 8 109842911.60108 20902406.002 6 85591857.15006 20902406.930 7 85591857.16507
G09 4.000 21908403.525 6 115129430.37406 21908399.544 1 89711233.32401 21908399.320 5
G23 5.000 24104714.314 6 126671129.49306 24104706.816 2 98704739.67602
G30 6.000 21404145.095 8 112479542.93308 21404142.953 6 87646388.26706 21404143.916 7 87646383.27307
R03 7.000 21945110.617 7 117474090.63807 21945109.720 6 91368580.68606
R14 8.000 20214975.526 8 107757316.39008 20214976.579 7 83811176.41707
R15 9.000 22699008.378 5 121296675.96005 22699009.712 5 94341922.34705
R19 10.000 22853592.745 4 22853590.888 4
S23 21.000 38309228.895 7 201316353.13407
S25 22.000 37834172.957 6 198818604.39206
S36 23.000 37630702.258 7 197750698.01307
......@@ -461,7 +461,7 @@ bool equalObservations(const obsd_t& obs1, const obsd_t& obs2)
return false;
if (obs1.sat != obs2.sat)
return false;
if (obs1.rcv != obs2.sat)
if (obs1.rcv != obs2.rcv)
return false;
if (memcmp(obs1.SNR, obs2.SNR, sizeof(obs1.SNR)) != 0)
return false;
......
......@@ -130,7 +130,7 @@ void Navigation::loadFromRinex(const std::string& rnx_file, gtime_t t_start, gti
uniqueNavigation();
}
else
std::cout << "Couldn't load provided observation file, reason: " << (stat == 0 ? "no data" : "error") << std::endl;
std::cout << "Navigation: couldn't load provided observation file, reason: " << (stat == 0 ? "no data" : "error") << std::endl;
}
void Navigation::copyAllArrays(const nav_t& nav)
......
......@@ -91,7 +91,7 @@ void Observations::loadFromRinex(const std::string& rnx_file,
sortobs(&obs);
else
{
std::cout << "Couldn't load provided observation file, reason: " << (stat == 0 ? "no data" : "error") << std::endl;
std::cout << "Observation: couldn't load provided observation file, reason: " << (stat == 0 ? "no data" : "error") << stat << std::endl;
return;
}
......
......@@ -11,20 +11,25 @@ TEST(ObservationsTest, LoadFromRinex)
double dt = 0.0; // no limit
const char* opt = "-SYS=G"; // only GPS | GPS+GAL: "-SYS=G,L" | ALL: ""
const std::string& rnx_file = "../src/examples/raw_201805171357.obs";
const std::string& rnx_file = "/home/pepms/robotics/libraries/gnss_utils/src/examples/sample_data.obs";
// GNSSUtils utilities
Observations observations;
observations.loadFromRinex(rnx_file.c_str(), t_start, t_end, dt, opt);
observations.print();
// RTKLIB utilities
obs_t obs;
obs.data = (obsd_t*)malloc(sizeof(obsd_t) * MAXSAT);
obs.n = 0;
obs.nmax = MAXSAT;
int stat = readrnxt(rnx_file.c_str(), 1, t_start, t_end, dt, opt, &obs, NULL, NULL);
ASSERT_EQ(stat, 1);
sortobs(&obs);
ASSERT_EQ(obs.n, 6);
// Comparison
ASSERT_TRUE(obs.n == observations.getObservations().size());
......@@ -33,6 +38,8 @@ TEST(ObservationsTest, LoadFromRinex)
{
ASSERT_TRUE(equalObservations(obs.data[ii], observations.getObservations()[ii]));
}
free(obs.data);
}
int main(int argc, char** argv)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment