From 417a0a2ad6f43a6cc9dd9e584eecfaa58be91477 Mon Sep 17 00:00:00 2001 From: PepMS <jmarti@iri.upc.edu> Date: Mon, 30 Mar 2020 15:45:43 +0200 Subject: [PATCH] [test] Added test for observation.loadrinex --- src/examples/gnss_utils_test.cpp | 15 +- src/examples/sample_data.nav | 406 +++++++++++++++++++++++++++++++ src/examples/sample_data.obs | 58 +++++ src/gnss_utils.cpp | 2 +- src/navigation.cpp | 2 +- src/observations.cpp | 2 +- test/gtest_observations.cpp | 9 +- 7 files changed, 488 insertions(+), 6 deletions(-) create mode 100644 src/examples/sample_data.nav create mode 100644 src/examples/sample_data.obs diff --git a/src/examples/gnss_utils_test.cpp b/src/examples/gnss_utils_test.cpp index 6b66334..bcbd7dc 100644 --- a/src/examples/gnss_utils_test.cpp +++ b/src/examples/gnss_utils_test.cpp @@ -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(); } diff --git a/src/examples/sample_data.nav b/src/examples/sample_data.nav new file mode 100644 index 0000000..5c4c418 --- /dev/null +++ b/src/examples/sample_data.nav @@ -0,0 +1,406 @@ + 3.04 N: GNSS NAV DATA M: MIXED RINEX VERSION / TYPE +sbf2rin-13.4.3 20200205 113410 UTC PGM / RUN BY / DATE +GPSA 9.3132E-09 -1.4901E-08 -5.9605E-08 1.1921E-07 IONOSPHERIC CORR +GPSB 9.6256E+04 -1.4746E+05 -1.3107E+05 9.1750E+05 IONOSPHERIC CORR +GAL 2.9250E+01 3.8281E-01 3.2959E-03 0.0000E+00 IONOSPHERIC CORR +GPUT -9.3132257462E-10 8.881784197E-16 503808 2083 TIME SYSTEM CORR +GAUT 9.3132257462E-10 0.000000000E+00 345600 2083 TIME SYSTEM CORR +GAGP 1.2514647096E-09-5.329070518E-15 345600 2083 TIME SYSTEM CORR + 18 LEAP SECONDS + END OF HEADER +G02 2019 12 12 12 00 00-3.648423589766E-04-7.503331289627E-12 0.000000000000E+00 + 4.700000000000E+01-1.208437500000E+02 4.378039505776E-09-1.891689129337E+00 + -6.053596735001E-06 1.953727600630E-02 9.275972843170E-06 5.153594808578E+03 + 3.888000000000E+05 3.371387720108E-07-2.768163608668E-01 2.346932888031E-07 + 9.575379914494E-01 1.915312500000E+02-1.691294764827E+00-7.654961717025E-09 + 2.000083311498E-11 1.000000000000E+00 2.083000000000E+03 0.000000000000E+00 + 2.000000000000E+00 0.000000000000E+00-1.769512891769E-08 4.700000000000E+01 + 3.868920000000E+05 4.000000000000E+00 +G04 2019 12 12 12 00 00-1.993030309677E-05-5.002220859751E-12 0.000000000000E+00 + 1.570000000000E+02-1.387500000000E+01 4.959135139313E-09-2.339868507292E+00 + -8.419156074524E-07 1.249722088687E-03 5.329027771950E-06 5.150576126099E+03 + 3.888000000000E+05 5.587935447693E-09 1.915372002909E+00 1.303851604462E-08 + 9.594040575671E-01 2.769062500000E+02-1.281079249179E+00-8.132124449911E-09 + -3.685867816904E-10 1.000000000000E+00 2.083000000000E+03 0.000000000000E+00 + 4.096000000000E+03 6.300000000000E+01-4.190951585770E-09 6.690000000000E+02 + 3.873960000000E+05 4.000000000000E+00 +G06 2019 12 12 12 00 00-1.512947492301E-04-1.114131009672E-11 0.000000000000E+00 + 1.000000000000E+02-1.239062500000E+02 3.927663602954E-09-1.824134113525E+00 + -6.347894668579E-06 1.658447668888E-03 9.786337614059E-06 5.153719285965E+03 + 3.888000000000E+05-1.490116119385E-08-2.122724576342E-01 5.401670932770E-08 + 9.781077241470E-01 2.010000000000E+02-1.200768673201E+00-7.640318249923E-09 + 1.214336296267E-11 1.000000000000E+00 2.083000000000E+03 0.000000000000E+00 + 2.000000000000E+00 0.000000000000E+00 4.656612873077E-09 1.000000000000E+02 + 3.858180000000E+05 4.000000000000E+00 +G07 2019 12 12 12 00 00-1.683332957327E-04-8.185452315956E-12 0.000000000000E+00 + 5.700000000000E+01 3.909375000000E+01 4.250534194668E-09-2.882882750792E+00 + 1.888722181320E-06 1.320131728426E-02 1.172721385956E-05 5.153718780518E+03 + 3.888000000000E+05-7.450580596924E-09 2.943673467473E+00-1.341104507446E-07 + 9.545190186113E-01 1.482812500000E+02-2.422380694519E+00-7.540671242082E-09 + -4.639478967207E-10 1.000000000000E+00 2.083000000000E+03 0.000000000000E+00 + 2.000000000000E+00 0.000000000000E+00-1.117587089539E-08 5.700000000000E+01 + 3.858180000000E+05 4.000000000000E+00 +G09 2019 12 12 12 00 00-1.062308438122E-04-9.436007530894E-12 0.000000000000E+00 + 7.800000000000E+01-1.206250000000E+01 5.168786729286E-09 4.992301981873E-01 + -7.078051567078E-07 1.692383317277E-03 5.021691322327E-06 5.153534730911E+03 + 3.888000000000E+05-2.793967723846E-08 1.868752621939E+00 1.490116119385E-08 + 9.520568016730E-01 2.776875000000E+02 1.684705661839E+00-8.283559329210E-09 + -2.914407111040E-10 1.000000000000E+00 2.083000000000E+03 0.000000000000E+00 + 2.000000000000E+00 0.000000000000E+00 1.396983861923E-09 7.800000000000E+01 + 3.857520000000E+05 4.000000000000E+00 +G13 2019 12 12 12 00 00-2.714386209846E-05 2.387423592154E-12 0.000000000000E+00 + 8.700000000000E+01-1.987500000000E+01 4.779841956746E-09-8.793798521920E-01 + -1.072883605957E-06 4.130274290219E-03 5.709007382393E-06 5.153656044006E+03 + 3.888000000000E+05-6.332993507385E-08 2.009100851183E+00 9.313225746155E-08 + 9.674158381471E-01 2.706562500000E+02 1.183260297004E+00-8.083193840326E-09 + -5.078782980268E-10 1.000000000000E+00 2.083000000000E+03 0.000000000000E+00 + 2.000000000000E+00 0.000000000000E+00-1.117587089539E-08 8.700000000000E+01 + 3.870420000000E+05 4.000000000000E+00 +G23 2019 12 12 12 00 00-1.500290818512E-04 2.387423592154E-12 0.000000000000E+00 + 3.000000000000E+01-1.009375000000E+01 5.335222233421E-09-1.452196357053E+00 + -4.973262548447E-07 1.326873130165E-02 4.552304744720E-06 5.153694892883E+03 + 3.888000000000E+05 2.980232238770E-07 1.861752114203E+00 4.470348358154E-08 + 9.428683609718E-01 2.778750000000E+02-2.215284453592E+00-8.261415549690E-09 + -2.478674675321E-10 1.000000000000E+00 2.083000000000E+03 0.000000000000E+00 + 2.000000000000E+00 0.000000000000E+00-2.048909664154E-08 3.000000000000E+01 + 3.858420000000E+05 4.000000000000E+00 +G30 2019 12 12 12 00 00-1.042019575834E-04-8.640199666843E-12 0.000000000000E+00 + 2.500000000000E+01 4.368750000000E+01 4.663408535398E-09-2.906933186921E+00 + 2.210959792137E-06 4.164319136180E-03 1.142919063568E-05 5.153722436905E+03 + 3.888000000000E+05-2.793967723846E-08 2.968865819418E+00-3.725290298462E-09 + 9.399056183160E-01 1.480312500000E+02-2.921787544453E+00-7.888185717455E-09 + -4.778770483544E-10 1.000000000000E+00 2.083000000000E+03 0.000000000000E+00 + 2.000000000000E+00 0.000000000000E+00 3.725290298462E-09 2.500000000000E+01 + 3.858180000000E+05 4.000000000000E+00 +R03 2019 12 12 11 15 00 6.369315087795E-06 0.000000000000E+00 3.858000000000E+05 + 9.652274414063E+03 3.457994461060E-01 9.313225746155E-10 0.000000000000E+00 + 1.708528710938E+04 2.202743530273E+00-1.862645149231E-09 5.000000000000E+00 + 1.629986035156E+04-2.522974967957E+00-2.793967723846E-09 0.000000000000E+00 +R03 2019 12 12 11 45 00 6.371177732944E-06 0.000000000000E+00 3.870000000000E+05 + 1.043946044922E+04 4.914197921753E-01 9.313225746155E-10 0.000000000000E+00 + 2.039817236328E+04 1.453030586243E+00-1.862645149231E-09 5.000000000000E+00 + 1.118693066406E+04-3.121288299561E+00-1.862645149231E-09 0.000000000000E+00 +R05 2019 12 12 11 15 00 4.108343273401E-05 9.094947017729E-13 3.862800000000E+05 + 5.985222167969E+03 1.195173263550E-01-1.862645149231E-09 0.000000000000E+00 + -1.828012353516E+04 2.295486450195E+00 1.862645149231E-09 1.000000000000E+00 + 1.676849218750E+04 2.457766532898E+00-1.862645149231E-09 0.000000000000E+00 +R05 2019 12 12 11 45 00 4.108529537916E-05 9.094947017729E-13 3.871800000000E+05 + 6.598400390625E+03 5.781021118164E-01-9.313225746155E-10 0.000000000000E+00 + -1.370180371094E+04 2.745733261108E+00 9.313225746155E-10 1.000000000000E+00 + 2.048785058594E+04 1.648019790649E+00-1.862645149231E-09 0.000000000000E+00 +R14 2019 12 12 11 15 00 4.597380757332E-05 0.000000000000E+00 3.858000000000E+05 + 2.135816357422E+04-6.865911483765E-01 3.725290298462E-09 0.000000000000E+00 + 1.261080761719E+04-4.694700241089E-01-0.000000000000E+00-7.000000000000E+00 + 5.991423828125E+03 3.442845344543E+00-2.793967723846E-09 0.000000000000E+00 +R14 2019 12 12 11 45 00 4.597473889589E-05 0.000000000000E+00 3.870000000000E+05 + 1.936734765625E+04-1.519350051880E+00 1.862645149231E-09 0.000000000000E+00 + 1.162212011719E+04-5.869359970093E-01-9.313225746155E-10-7.000000000000E+00 + 1.187716162109E+04 3.054467201233E+00-2.793967723846E-09 0.000000000000E+00 +R15 2019 12 12 11 15 00 1.051910221577E-04 0.000000000000E+00 3.860100000000E+05 + 2.249286962891E+04 1.470921516418E+00 5.587935447693E-09 0.000000000000E+00 + 4.179755859375E+03 4.950771331787E-01 9.313225746155E-10 0.000000000000E+00 + -1.125261865234E+04 3.118181228638E+00-1.862645149231E-09 0.000000000000E+00 +R15 2019 12 12 11 45 00 1.051910221577E-04 0.000000000000E+00 3.870000000000E+05 + 2.451276953125E+04 7.425718307495E-01 4.656612873077E-09 0.000000000000E+00 + 4.643450683594E+03 4.951381683350E-02 0.000000000000E+00 0.000000000000E+00 + -5.276882812500E+03 3.478320121765E+00-2.793967723846E-09 0.000000000000E+00 +R19 2019 12 12 11 15 00-6.853323429823E-05-1.818989403546E-12 3.859500000000E+05 + 2.008951708984E+04 2.060537338257E-01 2.793967723846E-09 0.000000000000E+00 + -1.541425244141E+04-4.377956390381E-01 2.793967723846E-09 3.000000000000E+00 + 3.049126953125E+03-3.578741073608E+00-1.862645149231E-09 0.000000000000E+00 +R19 2019 12 12 11 45 00-6.853695958853E-05-1.818989403546E-12 3.870000000000E+05 + 1.978871044922E+04-5.135507583618E-01 3.725290298462E-09 0.000000000000E+00 + -1.571828076172E+04 1.333026885986E-01 1.862645149231E-09 3.000000000000E+00 + -3.427280273438E+03-3.570507049561E+00-1.862645149231E-09 0.000000000000E+00 +R13 2019 12 12 11 45 00-3.215298056602E-05-0.000000000000E+00 3.876000000000E+05 + 3.100402832031E+03-2.939124107361E+00-1.862645149231E-09 0.000000000000E+00 + 1.186301953125E+04-8.695030212402E-01-9.313225746155E-10-2.000000000000E+00 + 2.235348193359E+04 8.685455322266E-01-1.862645149231E-09 0.000000000000E+00 +R20 2019 12 12 11 45 00-3.986386582255E-04-0.000000000000E+00 3.877800000000E+05 + 9.837636718750E+03 1.428291320801E+00-0.000000000000E+00 0.000000000000E+00 + -1.795626220703E+04-1.534766197205E+00 1.862645149231E-09 2.000000000000E+00 + 1.525312060547E+04-2.726587295532E+00-1.862645149231E-09 0.000000000000E+00 +E01 2019 12 12 11 10 00-7.507699192502E-04-7.986500349944E-12 0.000000000000E+00 + 3.000000000000E+00 2.013125000000E+02 2.449744898851E-09 7.981291655576E-01 + 9.473413228989E-06 1.731918891892E-04 9.533017873764E-06 5.440622966766E+03 + 3.858000000000E+05 3.166496753693E-08-2.605880888987E+00-1.117587089539E-08 + 9.855193908613E-01 1.463750000000E+02-1.069210219000E+00-5.272719629937E-09 + 1.914365455291E-10 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-1.629814505577E-09-1.862645149231E-09 + 3.864650000000E+05 +E01 2019 12 12 11 20 00-7.507746340707E-04-7.972289495228E-12 0.000000000000E+00 + 4.000000000000E+00 2.002500000000E+02 2.449744898851E-09 8.736282654153E-01 + 9.419396519661E-06 1.731686061248E-04 9.588897228241E-06 5.440622581482E+03 + 3.864000000000E+05 3.725290298462E-08-2.605884063520E+00-1.862645149231E-09 + 9.855195488564E-01 1.452500000000E+02-1.070324887968E+00-5.265933632987E-09 + 1.896507568581E-10 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-1.629814505577E-09-1.862645149231E-09 + 3.870650000000E+05 +E09 2019 12 12 11 10 00 6.223833654076E-03-1.216449163621E-11 0.000000000000E+00 + 3.000000000000E+00 7.218750000000E+00 3.823373544569E-09-3.442271110123E-02 + 3.892928361893E-07 2.964780433103E-04 3.403052687645E-06 5.440603132248E+03 + 3.858000000000E+05-9.313225746155E-09 1.575307486314E+00-6.146728992462E-08 + 9.586413959478E-01 2.625000000000E+02 2.794206052069E-01-5.815242228181E-09 + 8.571785620706E-12 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-4.656612873077E-10-6.984919309616E-10 + 3.869030000000E+05 +E12 2019 12 12 10 40 00 6.055364210624E-03-1.870148480521E-11 0.000000000000E+00 + 0.000000000000E+00-2.075312500000E+02 2.603322724555E-09-2.414195903395E+00 + -9.659677743912E-06 2.996901748702E-04 6.495043635368E-06 5.440614477158E+03 + 3.840000000000E+05-2.421438694000E-08-5.219517721978E-01 5.774199962616E-08 + 9.864495053986E-01 2.151250000000E+02-9.348391204646E-01-5.376652530588E-09 + -2.257236880119E-10 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-1.327134668827E-08-1.327134668827E-08 + 3.858050000000E+05 +E19 2019 12 12 11 00 00-2.469634637237E-06 2.273736754432E-13 0.000000000000E+00 + 2.000000000000E+00 1.103125000000E+01 3.765871149364E-09-1.685770007887E-01 + 4.824250936508E-07 1.212444622070E-04 3.688037395477E-06 5.440600940704E+03 + 3.852000000000E+05-5.401670932770E-08 1.580615112564E+00 5.215406417847E-08 + 9.583897608719E-01 2.595937500000E+02 1.996512379669E+00-5.770954669140E-09 + 1.160762636137E-10 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-5.820766091347E-09-5.820766091347E-09 + 3.858660000000E+05 +E19 2019 12 12 11 10 00-2.469576429576E-06 2.273736754432E-13 0.000000000000E+00 + 3.000000000000E+00 1.168750000000E+01 3.765156833895E-09-9.388288915917E-02 + 5.066394805908E-07 1.211694907397E-04 3.693625330925E-06 5.440600774765E+03 + 3.858000000000E+05-5.960464477539E-08 1.580611582543E+00 4.097819328308E-08 + 9.583898398694E-01 2.594687500000E+02 1.996204499781E+00-5.764168672191E-09 + 1.207193141583E-10 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-5.820766091347E-09-5.820766091347E-09 + 3.864650000000E+05 +E21 2019 12 12 11 10 00-5.709171527997E-04-2.131628207280E-12 0.000000000000E+00 + 3.000000000000E+00 2.180312500000E+02 2.333311477503E-09 1.537835498027E+00 + 1.022964715958E-05 9.841390419751E-05 9.685754776001E-06 5.440636165619E+03 + 3.858000000000E+05-2.980232238770E-08-2.608584029515E+00 4.842877388000E-08 + 9.850865499746E-01 1.424062500000E+02-1.025413854454E+00-5.217717338871E-09 + 1.871506527187E-10 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00 4.656612873077E-10 2.328306436539E-10 + 3.867350000000E+05 +E21 2019 12 12 11 20 00-5.709183751605E-04-2.131628207280E-12 0.000000000000E+00 + 4.000000000000E+00 2.213125000000E+02 2.317953694933E-09 1.607657241034E+00 + 1.038052141666E-05 9.810912888497E-05 9.816139936447E-06 5.440637243271E+03 + 3.864000000000E+05-4.097819328308E-08-2.608587130902E+00 4.470348358154E-08 + 9.850867050439E-01 1.395312500000E+02-1.020851268976E+00-5.213788603794E-09 + 1.800074980348E-10 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00 4.656612873077E-10 2.328306436539E-10 + 3.870650000000E+05 +E01 2019 12 12 11 10 00-7.507689879276E-04-7.986500349944E-12 0.000000000000E+00 + 3.000000000000E+00 2.013125000000E+02 2.449744898851E-09 7.981291655576E-01 + 9.473413228989E-06 1.731918891892E-04 9.533017873764E-06 5.440622966766E+03 + 3.858000000000E+05 3.166496753693E-08-2.605880888987E+00-1.117587089539E-08 + 9.855193908613E-01 1.463750000000E+02-1.069210219000E+00-5.272719629937E-09 + 1.914365455291E-10 2.580000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-1.629814505577E-09 0.000000000000E+00 + 3.865400000000E+05 +E01 2019 12 12 11 20 00-7.507736445405E-04-7.972289495228E-12 0.000000000000E+00 + 4.000000000000E+00 2.002500000000E+02 2.449744898851E-09 8.736282654153E-01 + 9.419396519661E-06 1.731686061248E-04 9.588897228241E-06 5.440622581482E+03 + 3.864000000000E+05 3.725290298462E-08-2.605884063520E+00-1.862645149231E-09 + 9.855195488564E-01 1.452500000000E+02-1.070324887968E+00-5.265933632987E-09 + 1.896507568581E-10 2.580000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-1.629814505577E-09 0.000000000000E+00 + 3.871400000000E+05 +E12 2019 12 12 10 40 00 6.055364909116E-03-1.871569565992E-11 0.000000000000E+00 + 0.000000000000E+00-2.075312500000E+02 2.603322724555E-09-2.414195903395E+00 + -9.659677743912E-06 2.996901748702E-04 6.495043635368E-06 5.440614477158E+03 + 3.840000000000E+05-2.421438694000E-08-5.219517721978E-01 5.774199962616E-08 + 9.864495053986E-01 2.151250000000E+02-9.348391204646E-01-5.376652530588E-09 + -2.257236880119E-10 2.580000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-1.327134668827E-08 0.000000000000E+00 + 3.858400000000E+05 +E19 2019 12 12 11 00 00-2.468528691679E-06 2.273736754432E-13 0.000000000000E+00 + 2.000000000000E+00 1.103125000000E+01 3.765871149364E-09-1.685770007887E-01 + 4.824250936508E-07 1.212444622070E-04 3.688037395477E-06 5.440600940704E+03 + 3.852000000000E+05-5.401670932770E-08 1.580615112564E+00 5.215406417847E-08 + 9.583897608719E-01 2.595937500000E+02 1.996512379669E+00-5.770954669140E-09 + 1.160762636137E-10 2.580000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-5.820766091347E-09 0.000000000000E+00 + 3.859400000000E+05 +E19 2019 12 12 11 10 00-2.468470484018E-06 2.273736754432E-13 0.000000000000E+00 + 3.000000000000E+00 1.168750000000E+01 3.765156833895E-09-9.388288915917E-02 + 5.066394805908E-07 1.211694907397E-04 3.693625330925E-06 5.440600774765E+03 + 3.858000000000E+05-5.960464477539E-08 1.580611582543E+00 4.097819328308E-08 + 9.583898398694E-01 2.594687500000E+02 1.996204499781E+00-5.764168672191E-09 + 1.207193141583E-10 2.580000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-5.820766091347E-09 0.000000000000E+00 + 3.865400000000E+05 +E21 2019 12 12 11 10 00-5.709161632694E-04-2.117417352565E-12 0.000000000000E+00 + 3.000000000000E+00 2.180312500000E+02 2.333311477503E-09 1.537835498027E+00 + 1.022964715958E-05 9.841390419751E-05 9.685754776001E-06 5.440636165619E+03 + 3.858000000000E+05-2.980232238770E-08-2.608584029515E+00 4.842877388000E-08 + 9.850865499746E-01 1.424062500000E+02-1.025413854454E+00-5.217717338871E-09 + 1.871506527187E-10 2.580000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00 4.656612873077E-10 0.000000000000E+00 + 3.867900000000E+05 +E21 2019 12 12 11 20 00-5.709173856303E-04-2.131628207280E-12 0.000000000000E+00 + 4.000000000000E+00 2.213125000000E+02 2.317953694933E-09 1.607657241034E+00 + 1.038052141666E-05 9.810912888497E-05 9.816139936447E-06 5.440637243271E+03 + 3.864000000000E+05-4.097819328308E-08-2.608587130902E+00 4.470348358154E-08 + 9.850867050439E-01 1.395312500000E+02-1.020851268976E+00-5.213788603794E-09 + 1.800074980348E-10 2.580000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00 4.656612873077E-10 0.000000000000E+00 + 3.871400000000E+05 +E04 2019 12 12 11 10 00-4.236891982146E-04-7.531752999057E-12 0.000000000000E+00 + 3.000000000000E+00 9.781250000000E+00 3.935521073107E-09-4.009111796513E-01 + 5.532056093216E-07 8.811207953840E-05 3.596767783165E-06 5.440604427338E+03 + 3.858000000000E+05 9.499490261078E-08 1.582511472789E+00 3.166496753693E-08 + 9.526713574660E-01 2.577187500000E+02 1.440283619102E+00-5.908817554540E-09 + 7.071723137082E-11 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-5.355104804039E-09-5.820766091347E-09 + 3.875670000000E+05 +E04 2019 12 12 11 10 00-4.236878594384E-04-7.531752999057E-12 0.000000000000E+00 + 3.000000000000E+00 9.781250000000E+00 3.935521073107E-09-4.009111796513E-01 + 5.532056093216E-07 8.811207953840E-05 3.596767783165E-06 5.440604427338E+03 + 3.858000000000E+05 9.499490261078E-08 1.582511472789E+00 3.166496753693E-08 + 9.526713574660E-01 2.577187500000E+02 1.440283619102E+00-5.908817554540E-09 + 7.071723137082E-11 2.580000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-5.355104804039E-09 0.000000000000E+00 + 3.875900000000E+05 +E11 2019 12 12 11 00 00 3.295102505945E-04 1.526245796413E-10 5.204170427930E-18 + 2.000000000000E+00-2.123750000000E+02 2.665468170305E-09 2.480654590844E+00 + -9.858980774879E-06 1.651302445680E-04 7.150694727898E-06 5.440609029770E+03 + 3.852000000000E+05-3.352761268616E-08-5.219456059981E-01 2.048909664154E-08 + 9.864349859366E-01 1.975937500000E+02-2.012781103955E-01-5.400939256513E-09 + -2.103659054415E-10 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-1.583248376846E-08-1.699663698673E-08 + 3.876330000000E+05 +E21 2019 12 12 11 30 00-5.709196557291E-04-2.131628207280E-12 0.000000000000E+00 + 5.000000000000E+00 2.240625000000E+02 2.303667385565E-09 1.677767938158E+00 + 1.050904393196E-05 9.777839295566E-05 9.970739483833E-06 5.440638303757E+03 + 3.870000000000E+05-5.401670932770E-08-2.608590226436E+00 3.725290298462E-08 + 9.850868571874E-01 1.362812500000E+02-1.016577701982E+00-5.210574184187E-09 + 1.721500278825E-10 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00 4.656612873077E-10 2.328306436539E-10 + 3.876650000000E+05 +E11 2019 12 12 11 00 00 3.295124042779E-04 1.526387904960E-10 5.204170427930E-18 + 2.000000000000E+00-2.123750000000E+02 2.665468170305E-09 2.480654590844E+00 + -9.858980774879E-06 1.651302445680E-04 7.150694727898E-06 5.440609029770E+03 + 3.852000000000E+05-3.352761268616E-08-5.219456059981E-01 2.048909664154E-08 + 9.864349859366E-01 1.975937500000E+02-2.012781103955E-01-5.400939256513E-09 + -2.103659054415E-10 2.580000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-1.583248376846E-08 0.000000000000E+00 + 3.876800000000E+05 +E01 2019 12 12 11 30 00-7.507792906836E-04-7.972289495228E-12 0.000000000000E+00 + 5.000000000000E+00 1.994687500000E+02 2.447601952446E-09 9.486982138657E-01 + 9.378418326378E-06 1.731649972498E-04 9.616836905479E-06 5.440622346878E+03 + 3.870000000000E+05 3.911554813385E-08-2.605887229274E+00 7.450580596924E-09 + 9.855197039257E-01 1.446875000000E+02-1.071010335308E+00-5.259504793772E-09 + 1.871506527187E-10 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-1.629814505577E-09-1.862645149231E-09 + 3.877250000000E+05 +E21 2019 12 12 11 30 00-5.709186661988E-04-2.117417352565E-12 0.000000000000E+00 + 5.000000000000E+00 2.240625000000E+02 2.303667385565E-09 1.677767938158E+00 + 1.050904393196E-05 9.777839295566E-05 9.970739483833E-06 5.440638303757E+03 + 3.870000000000E+05-5.401670932770E-08-2.608590226436E+00 3.725290298462E-08 + 9.850868571874E-01 1.362812500000E+02-1.016577701982E+00-5.210574184187E-09 + 1.721500278825E-10 2.580000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00 4.656612873077E-10 0.000000000000E+00 + 3.877400000000E+05 +E01 2019 12 12 11 30 00-7.507783011533E-04-7.972289495228E-12 0.000000000000E+00 + 5.000000000000E+00 1.994687500000E+02 2.447601952446E-09 9.486982138657E-01 + 9.378418326378E-06 1.731649972498E-04 9.616836905479E-06 5.440622346878E+03 + 3.870000000000E+05 3.911554813385E-08-2.605887229274E+00 7.450580596924E-09 + 9.855197039257E-01 1.446875000000E+02-1.071010335308E+00-5.259504793772E-09 + 1.871506527187E-10 2.580000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00-1.629814505577E-09 0.000000000000E+00 + 3.878200000000E+05 +E36 2019 12 12 10 30 00 6.253067986108E-04-4.803268893738E-12 0.000000000000E+00 + 1.270000000000E+02-2.396562500000E+02 2.521890761159E-09 3.060908164528E+00 + -1.121312379837E-05 3.076605498791E-04 7.288530468941E-06 5.440609262466E+03 + 3.834000000000E+05 2.980232238770E-08-5.264936383676E-01 5.587935447693E-08 + 9.896539850266E-01 1.944062500000E+02-1.782833699345E+00-5.428440402046E-09 + -2.457245211269E-10 5.170000000000E+02 2.083000000000E+03 + 3.120000000000E+00 0.000000000000E+00 3.725290298462E-09 4.423782229424E-09 + 3.878450000000E+05 +S36 2019 12 12 11 36 48 0.000000000000E+00 0.000000000000E+00 3.874820000000E+05 + 4.200368800000E+04 0.000000000000E+00 0.000000000000E+00 6.300000000000E+01 + 3.674846960000E+03 0.000000000000E+00 0.000000000000E+00 3.276700000000E+04 + 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 2.530000000000E+02 +S25 2019 12 11 23 59 44 0.000000000000E+00 0.000000000000E+00 3.874840000000E+05 + 4.053076976000E+04 0.000000000000E+00 0.000000000000E+00 6.300000000000E+01 + -1.162201120000E+04 0.000000000000E+00 0.000000000000E+00 3.276700000000E+04 + 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 +S23 2019 12 12 11 37 04 0.000000000000E+00 0.000000000000E+00 3.874940000000E+05 + 3.594460000000E+04 0.000000000000E+00 0.000000000000E+00 6.300000000000E+01 + 2.204414000000E+04 0.000000000000E+00 0.000000000000E+00 3.276700000000E+04 + 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 1.460000000000E+02 +S36 2019 12 12 11 38 56 0.000000000000E+00 0.000000000000E+00 3.875460000000E+05 + 4.200368800000E+04 0.000000000000E+00 0.000000000000E+00 6.300000000000E+01 + 3.674846960000E+03 0.000000000000E+00 0.000000000000E+00 3.276700000000E+04 + 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 2.540000000000E+02 +S23 2019 12 12 11 39 12 0.000000000000E+00 0.000000000000E+00 3.875580000000E+05 + 3.594460000000E+04 0.000000000000E+00 0.000000000000E+00 6.300000000000E+01 + 2.204414000000E+04 0.000000000000E+00 0.000000000000E+00 3.276700000000E+04 + 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 1.470000000000E+02 +S23 2019 12 12 11 41 20 0.000000000000E+00 0.000000000000E+00 3.876860000000E+05 + 3.594460000000E+04 0.000000000000E+00 0.000000000000E+00 6.300000000000E+01 + 2.204414000000E+04 0.000000000000E+00 0.000000000000E+00 3.276700000000E+04 + 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 1.480000000000E+02 +S36 2019 12 12 11 41 04 0.000000000000E+00 0.000000000000E+00 3.877380000000E+05 + 4.200368800000E+04 0.000000000000E+00 0.000000000000E+00 6.300000000000E+01 + 3.674846960000E+03 0.000000000000E+00 0.000000000000E+00 3.276700000000E+04 + 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 2.550000000000E+02 +S36 2019 12 12 11 43 12 0.000000000000E+00 0.000000000000E+00 3.878020000000E+05 + 4.200368800000E+04 0.000000000000E+00 0.000000000000E+00 6.300000000000E+01 + 3.674846960000E+03 0.000000000000E+00 0.000000000000E+00 3.276700000000E+04 + 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 +S23 2019 12 12 11 43 28 0.000000000000E+00 0.000000000000E+00 3.878780000000E+05 + 3.594460000000E+04 0.000000000000E+00 0.000000000000E+00 6.300000000000E+01 + 2.204414000000E+04 0.000000000000E+00 0.000000000000E+00 3.276700000000E+04 + 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 1.490000000000E+02 +C05 2019 12 12 11 00 00-2.244751667604E-04-5.808153957787E-11 0.000000000000E+00 + 1.000000000000E+00-4.986718750000E+02 1.785788670980E-12-5.169766818568E-01 + -1.630326732993E-05 6.773804780096E-04 2.061109989882E-05 6.493346771240E+03 + 3.852000000000E+05 1.271255314350E-07-1.766797704845E-01 3.259629011154E-09 + 1.180676987021E-01-6.241562500000E+02-1.608095995036E+00 1.192549674481E-09 + 7.575315542299E-10 0.000000000000E+00 7.270000000000E+02 + 2.000000000000E+00 0.000000000000E+00-8.000000000000E-10-9.200000000000E-09 + 3.858276000000E+05 0.000000000000E+00 +C10 2019 12 12 11 00 00-4.537283675745E-04-3.685762806072E-11 0.000000000000E+00 + 1.000000000000E+00 9.611718750000E+02 9.743262988869E-10-3.040647920928E+00 + 3.135204315186E-05 6.156359100714E-03 7.578637450933E-06 6.493785018921E+03 + 3.852000000000E+05-1.676380634308E-08-2.379959881122E+00-4.004687070847E-08 + 9.058375010021E-01-1.493750000000E+01-2.570309406835E+00-2.115088101909E-09 + 4.782342060886E-10 0.000000000000E+00 7.270000000000E+02 + 2.000000000000E+00 0.000000000000E+00 5.000000000000E-09 2.400000000000E-09 + 3.858180000000E+05 0.000000000000E+00 +C23 2019 12 12 11 00 00-8.696540025994E-04 2.136069099379E-12 0.000000000000E+00 + 1.000000000000E+00 1.034062500000E+02 3.498002848716E-09 1.631067082891E+00 + 5.179084837437E-06 2.014992060140E-04 1.188227906823E-05 5.282628129959E+03 + 3.852000000000E+05 3.725290298462E-08-3.016985033742E+00 6.565824151039E-08 + 9.546959600159E-01 1.175156250000E+02-1.126531243634E+00-6.488127399406E-09 + -1.864363372504E-10 0.000000000000E+00 7.270000000000E+02 + 2.000000000000E+00 0.000000000000E+00 2.430000000000E-08 2.430000000000E-08 + 3.858180000000E+05 1.000000000000E+00 +C30 2019 12 12 11 00 00 2.388220746070E-04 6.104450278599E-12 0.000000000000E+00 + 1.000000000000E+00-1.393437500000E+02 3.927663602954E-09-2.732742750025E+00 + -6.837770342827E-06 3.649030113593E-04 1.750886440277E-06 5.282614929199E+03 + 3.852000000000E+05-3.864988684654E-08-9.521190897989E-01-5.587935447693E-09 + 9.644793109832E-01 3.275781250000E+02-4.157902561103E-01-7.082080711374E-09 + -2.339383158984E-10 0.000000000000E+00 7.270000000000E+02 + 2.000000000000E+00 0.000000000000E+00-1.040000000000E-08-1.040000000000E-08 + 3.858180000000E+05 1.000000000000E+00 +C32 2019 12 12 11 00 00-8.566775359213E-04 2.992273095970E-12 0.000000000000E+00 + 1.000000000000E+00 2.875000000000E+01 4.228033257413E-09 2.867304095205E+00 + 1.456588506699E-06 1.842749770731E-04 6.427057087421E-06 5.282614164352E+03 + 3.852000000000E+05 1.862645149231E-09 1.148173467908E+00 6.705522537231E-08 + 9.608588315814E-01 2.297500000000E+02-1.050918258529E+00-6.857785654299E-09 + 5.228789228631E-10 0.000000000000E+00 7.270000000000E+02 + 2.000000000000E+00 0.000000000000E+00-9.900000000000E-09-9.900000000000E-09 + 3.857580000000E+05 1.000000000000E+00 +C37 2019 12 12 11 00 00-8.880557725206E-04-5.954881032721E-11 0.000000000000E+00 + 1.000000000000E+00 1.086562500000E+02 3.521932416908E-09 8.066563687499E-01 + 5.388632416725E-06 7.037379546091E-04 1.127412542701E-05 5.282630052567E+03 + 3.852000000000E+05-2.142041921616E-08-3.020306267399E+00 1.536682248116E-08 + 9.560827215058E-01 1.306718750000E+02-1.080448983277E+00-6.580988410297E-09 + -2.328668426958E-10 0.000000000000E+00 7.270000000000E+02 + 2.000000000000E+00 0.000000000000E+00-1.390000000000E-08-1.390000000000E-08 + 3.858180000000E+05 1.000000000000E+00 +C20 2019 12 12 11 00 00-4.067538538948E-04-5.008171655163E-11 0.000000000000E+00 + 1.000000000000E+00 2.850000000000E+01 4.229461888350E-09 1.463145840983E+00 + 1.523178070784E-06 5.460308166221E-04 6.177462637424E-06 5.282614208221E+03 + 3.852000000000E+05 3.445893526077E-08 1.153432718382E+00-1.210719347000E-08 + 9.622213291121E-01 2.341406250000E+02-4.480160490039E-01-6.852785446020E-09 + 4.753769442150E-10 0.000000000000E+00 7.270000000000E+02 + 2.000000000000E+00 0.000000000000E+00 2.090000000000E-08 2.090000000000E-08 + 3.875880000000E+05 1.000000000000E+00 diff --git a/src/examples/sample_data.obs b/src/examples/sample_data.obs new file mode 100644 index 0000000..d773d3b --- /dev/null +++ b/src/examples/sample_data.obs @@ -0,0 +1,58 @@ + 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 diff --git a/src/gnss_utils.cpp b/src/gnss_utils.cpp index 49f9ec4..5e9ee98 100644 --- a/src/gnss_utils.cpp +++ b/src/gnss_utils.cpp @@ -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; diff --git a/src/navigation.cpp b/src/navigation.cpp index a1ccfd7..da5c6d6 100644 --- a/src/navigation.cpp +++ b/src/navigation.cpp @@ -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) diff --git a/src/observations.cpp b/src/observations.cpp index 98b72a6..ea2dc15 100644 --- a/src/observations.cpp +++ b/src/observations.cpp @@ -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; } diff --git a/test/gtest_observations.cpp b/test/gtest_observations.cpp index 66a25f0..3675a22 100644 --- a/test/gtest_observations.cpp +++ b/test/gtest_observations.cpp @@ -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) -- GitLab