GroupPathCorr_T.cpp
Go to the documentation of this file.
1 //==============================================================================
2 //
3 // This file is part of GNSSTk, the ARL:UT GNSS Toolkit.
4 //
5 // The GNSSTk is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 3.0 of the License, or
8 // any later version.
9 //
10 // The GNSSTk is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with GNSSTk; if not, write to the Free Software Foundation,
17 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
18 //
19 // This software was developed by Applied Research Laboratories at the
20 // University of Texas at Austin.
21 // Copyright 2004-2022, The Board of Regents of The University of Texas System
22 //
23 //==============================================================================
24 
25 //==============================================================================
26 //
27 // This software was developed by Applied Research Laboratories at the
28 // University of Texas at Austin, under contract to an agency or agencies
29 // within the U.S. Department of Defense. The U.S. Government retains all
30 // rights to use, duplicate, distribute, disclose, or release this software.
31 //
32 // Pursuant to DoD Directive 523024
33 //
34 // DISTRIBUTION STATEMENT A: This software has been approved for public
35 // release, distribution is unlimited.
36 //
37 //==============================================================================
38 
39 #include "TestUtil.hpp"
40 #include "BCISCorrector.hpp"
41 #include "BCIonoCorrector.hpp"
42 #include "TropCorrector.hpp"
43 #include "GroupPathCorr.hpp"
44 #include "NavLibrary.hpp"
46 #include "CivilTime.hpp"
47 
48 namespace gnsstk
49 {
50  std::ostream& operator<<(std::ostream& s, CorrectorType t)
51  {
52  s << StringUtils::asString(t);
53  return s;
54  }
55 }
56 
57 
59 {
60 public:
63  bool getCorr(const gnsstk::Position& rxPos, const gnsstk::Position& svPos,
64  const gnsstk::SatID& sat, const gnsstk::ObsID& obs,
65  const gnsstk::CommonTime& when, gnsstk::NavType nav,
66  double& corrOut) override
67  {
68  corrOut = 2.0;
69  return true;
70  }
71  bool getCorr(const gnsstk::Position& rxPos, const gnsstk::Xvt& svPos,
72  const gnsstk::SatID& sat, const gnsstk::ObsID& obs,
73  const gnsstk::CommonTime& when, gnsstk::NavType nav,
74  double& corrOut) override
75  {
76  corrOut = 2.0;
77  return true;
78  }
79 };
80 
81 
83 {
84 public:
87  bool getCorr(const gnsstk::Position& rxPos, const gnsstk::Position& svPos,
88  const gnsstk::SatID& sat, const gnsstk::ObsID& obs,
89  const gnsstk::CommonTime& when, gnsstk::NavType nav,
90  double& corrOut) override
91  {
92  corrOut = 4.0;
93  return true;
94  }
95  bool getCorr(const gnsstk::Position& rxPos, const gnsstk::Xvt& svPos,
96  const gnsstk::SatID& sat, const gnsstk::ObsID& obs,
97  const gnsstk::CommonTime& when, gnsstk::NavType nav,
98  double& corrOut) override
99  {
100  corrOut = 4.0;
101  return true;
102  }
103 };
104 
105 
107 {
108 public:
111  bool getCorr(const gnsstk::Position& rxPos, const gnsstk::Position& svPos,
112  const gnsstk::SatID& sat, const gnsstk::ObsID& obs,
113  const gnsstk::CommonTime& when, gnsstk::NavType nav,
114  double& corrOut) override
115  {
116  corrOut = 10.0;
117  return true;
118  }
119  bool getCorr(const gnsstk::Position& rxPos, const gnsstk::Xvt& svPos,
120  const gnsstk::SatID& sat, const gnsstk::ObsID& obs,
121  const gnsstk::CommonTime& when, gnsstk::NavType nav,
122  double& corrOut) override
123  {
124  corrOut = 10.0;
125  return true;
126  }
127 };
128 
129 
131 {
132 public:
135  bool getCorr(const gnsstk::Position& rxPos, const gnsstk::Position& svPos,
136  const gnsstk::SatID& sat, const gnsstk::ObsID& obs,
137  const gnsstk::CommonTime& when, gnsstk::NavType nav,
138  double& corrOut) override
139  {
140  corrOut = 20.0;
141  return true;
142  }
143  bool getCorr(const gnsstk::Position& rxPos, const gnsstk::Xvt& svPos,
144  const gnsstk::SatID& sat, const gnsstk::ObsID& obs,
145  const gnsstk::CommonTime& when, gnsstk::NavType nav,
146  double& corrOut) override
147  {
148  corrOut = 20.0;
149  return true;
150  }
151 };
152 
153 
154 
156 {
157 public:
158  GroupPathCorr_T();
159  unsigned constructorTest();
160  unsigned getCorrTestPositionDouble();
161  unsigned getCorrTestXvtDouble();
162  unsigned getCorrTestPositionResults();
163  unsigned getCorrTestXvtResults();
164  unsigned initTest();
165  unsigned initGlobalTest();
166  unsigned initNBTest();
167  std::string dataPath;
168 };
169 
170 
173 {
174  dataPath = gnsstk::getPathData() + gnsstk::getFileSep();
175 }
176 
177 
178 unsigned GroupPathCorr_T ::
180 {
181  TUDEF("GroupPathCorr", "GroupPathCorr");
183  TUASSERTE(bool, true, uut.calcs.empty());
184  TURETURN();
185 }
186 
187 
188 unsigned GroupPathCorr_T ::
190 {
191  TUDEF("GroupPathCorr", "getCorr(Position,double)");
196  gnsstk::NavLibrary navLib;
198  gnsstk::Position stnPos(-740290.01, -5457071.705, 3207245.599);
199  gnsstk::Position svPos(-16208820.579, -207275.833, 21038422.516);
200  gnsstk::CommonTime when(gnsstk::CivilTime(2015,7,19,4,30,0,
206  ndf = std::make_shared<gnsstk::MultiFormatNavDataFactory>();
208  dynamic_cast<gnsstk::MultiFormatNavDataFactory*>(ndf.get());
209  TUASSERTE(bool, true, mfndf->addDataSource(dataPath + "arlm2000.15n"));
210  TUCATCH(navLib.addFactory(ndf));
211  double corr = 0.0;
212  gnsstk::GroupPathCorrectorPtr ec1, ec2, ec3;
213  ec1 = std::make_shared<gnsstk::BCISCorrector>(navLib);
214  ec2 = std::make_shared<gnsstk::BCIonoCorrector>(navLib);
215  ec3 = std::make_shared<gnsstk::GlobalTropCorrector>();
216  isc = dynamic_cast<gnsstk::BCISCorrector*>(ec1.get());
217  iono = dynamic_cast<gnsstk::BCIonoCorrector*>(ec2.get());
218  trop = dynamic_cast<gnsstk::GlobalTropCorrector*>(ec3.get());
219  TUASSERTE(bool, true, trop->loadFile(dataPath+"arlm2000.15m"));
220  uut.calcs.push_back(ec1);
221  uut.calcs.push_back(ec2);
222  uut.calcs.push_back(ec3);
223  TUASSERTE(bool, true, uut.getCorr(stnPos, svPos, sat, oid, when, nav, corr));
224  TUASSERTFE(13.399231057432754, corr);
225  TURETURN();
226 }
227 
228 
229 unsigned GroupPathCorr_T ::
231 {
232  TUDEF("GroupPathCorr", "getCorr(Xvt,double)");
237  gnsstk::NavLibrary navLib;
239  gnsstk::Position stnPos(-740290.01, -5457071.705, 3207245.599);
240  gnsstk::Xvt svPos;
241  svPos.x = gnsstk::Triple(-16208820.579, -207275.833, 21038422.516);
242  // The rest are just bunk with the intent that if the algorithm
243  // is changed to include the data somehow, the assertion fails.
244  svPos.v = gnsstk::Triple(123,456,789);
245  svPos.clkbias = 234;
246  svPos.clkdrift = 345;
247  svPos.relcorr = 456;
248  gnsstk::CommonTime when(gnsstk::CivilTime(2015,7,19,4,30,0,
254  ndf = std::make_shared<gnsstk::MultiFormatNavDataFactory>();
256  dynamic_cast<gnsstk::MultiFormatNavDataFactory*>(ndf.get());
257  TUASSERTE(bool, true, mfndf->addDataSource(dataPath + "arlm2000.15n"));
258  TUCATCH(navLib.addFactory(ndf));
259  double corr = 0.0;
260  gnsstk::GroupPathCorrectorPtr ec1, ec2, ec3;
261  ec1 = std::make_shared<gnsstk::BCISCorrector>(navLib);
262  ec2 = std::make_shared<gnsstk::BCIonoCorrector>(navLib);
263  ec3 = std::make_shared<gnsstk::GlobalTropCorrector>();
264  isc = dynamic_cast<gnsstk::BCISCorrector*>(ec1.get());
265  iono = dynamic_cast<gnsstk::BCIonoCorrector*>(ec2.get());
266  trop = dynamic_cast<gnsstk::GlobalTropCorrector*>(ec3.get());
267  TUASSERTE(bool, true, trop->loadFile(dataPath+"arlm2000.15m"));
268  uut.calcs.push_back(ec1);
269  uut.calcs.push_back(ec2);
270  uut.calcs.push_back(ec3);
271  TUASSERTE(bool, true, uut.getCorr(stnPos, svPos, sat, oid, when, nav, corr));
272  TUASSERTFE(13.399231057432754, corr);
273  TURETURN();
274 }
275 
276 
277 unsigned GroupPathCorr_T ::
279 {
280  TUDEF("GroupPathCorr", "getCorr(Position,CorrectionResults)");
282  gnsstk::GroupPathCorrectorPtr ec1, ec2, ec3, ec4;
283  gnsstk::Position stnPos(-740290.01, -5457071.705, 3207245.599);
284  gnsstk::Position svPos(-16208820.579, -207275.833, 21038422.516);
285  gnsstk::CommonTime when(gnsstk::CivilTime(2015,7,19,4,30,0,
292  ec1 = std::make_shared<TestISCorrector1>();
293  ec2 = std::make_shared<TestIonoCorrector>();
294  ec3 = std::make_shared<TestISCorrector2>();
295  ec4 = std::make_shared<TestTropCorrector>();
296  uut.calcs.push_back(ec1);
297  uut.calcs.push_back(ec2);
298  uut.calcs.push_back(ec3);
299  uut.calcs.push_back(ec4);
300  // These assertions verify that the default dup behavior is
301  // ComputeFirst and that the ComputeFirst behavior hasn't
302  // changed.
303  TUASSERTE(bool, true, uut.getCorr(stnPos, svPos, sat, oid, when, nav, out));
304  const gnsstk::CorrectionResultList& results1 = out.getResults();
305  TUASSERTE(size_t, 3, results1.size());
307  auto i1 = results1.begin();
308  TUASSERTFE(2.0, i1->result);
309  TUASSERT(i1->source == ec1);
310  i1++;
311  TUASSERTFE(20.0, i1->result);
312  TUASSERT(i1->source == ec2);
313  i1++;
314  TUASSERTFE(10.0, i1->result);
315  TUASSERT(i1->source == ec4);
316  // check ComputeLast
317  // note that this also tests that getCorr clears the results first
318  TUASSERTE(bool, true, uut.getCorr(stnPos, svPos, sat, oid, when, nav, out,
320  const gnsstk::CorrectionResultList& results2 = out.getResults();
321  TUASSERTE(size_t, 4, results2.size());
323  auto i2 = results2.begin();
324  TUASSERTFE(2.0, i2->result);
325  TUASSERT(i2->source == ec1);
326  i2++;
327  TUASSERTFE(20.0, i2->result);
328  TUASSERT(i2->source == ec2);
329  i2++;
330  TUASSERTFE(4.0, i2->result);
331  TUASSERT(i2->source == ec3);
332  i2++;
333  TUASSERTFE(10.0, i2->result);
334  TUASSERT(i2->source == ec4);
335  // check UseFirst
336  TUASSERTE(bool, true, uut.getCorr(stnPos, svPos, sat, oid, when, nav, out,
338  const gnsstk::CorrectionResultList& results3 = out.getResults();
339  TUASSERTE(size_t, 4, results3.size());
341  auto i3 = results3.begin();
342  TUASSERTFE(2.0, i3->result);
343  TUASSERT(i3->source == ec1);
344  i3++;
345  TUASSERTFE(20.0, i3->result);
346  TUASSERT(i3->source == ec2);
347  i3++;
348  TUASSERTFE(4.0, i3->result);
349  TUASSERT(i3->source == ec3);
350  i3++;
351  TUASSERTFE(10.0, i3->result);
352  TUASSERT(i3->source == ec4);
353  TURETURN();
354 }
355 
356 
357 unsigned GroupPathCorr_T ::
359 {
360  TUDEF("GroupPathCorr", "getCorr(Xvt,CorrectionResults)");
362  gnsstk::GroupPathCorrectorPtr ec1, ec2, ec3, ec4;
363  gnsstk::Position stnPos(-740290.01, -5457071.705, 3207245.599);
364  gnsstk::Xvt svPos;
365  svPos.x = gnsstk::Triple(-16208820.579, -207275.833, 21038422.516);
366  // The rest are just bunk with the intent that if the algorithm
367  // is changed to include the data somehow, the assertion fails.
368  svPos.v = gnsstk::Triple(123,456,789);
369  svPos.clkbias = 234;
370  svPos.clkdrift = 345;
371  svPos.relcorr = 456;
372  gnsstk::CommonTime when(gnsstk::CivilTime(2015,7,19,4,30,0,
379  ec1 = std::make_shared<TestISCorrector1>();
380  ec2 = std::make_shared<TestIonoCorrector>();
381  ec3 = std::make_shared<TestISCorrector2>();
382  ec4 = std::make_shared<TestTropCorrector>();
383  uut.calcs.push_back(ec1);
384  uut.calcs.push_back(ec2);
385  uut.calcs.push_back(ec3);
386  uut.calcs.push_back(ec4);
387  // These assertions verify that the default dup behavior is
388  // ComputeFirst and that the ComputeFirst behavior hasn't
389  // changed.
390  TUASSERTE(bool, true, uut.getCorr(stnPos, svPos, sat, oid, when, nav, out));
391  const gnsstk::CorrectionResultList& results1 = out.getResults();
392  TUASSERTE(size_t, 3, results1.size());
394  auto i1 = results1.begin();
395  TUASSERTFE(2.0, i1->result);
396  TUASSERT(i1->source == ec1);
397  i1++;
398  TUASSERTFE(20.0, i1->result);
399  TUASSERT(i1->source == ec2);
400  i1++;
401  TUASSERTFE(10.0, i1->result);
402  TUASSERT(i1->source == ec4);
403  // check ComputeLast
404  // note that this also tests that getCorr clears the results first
405  TUASSERTE(bool, true, uut.getCorr(stnPos, svPos, sat, oid, when, nav, out,
407  const gnsstk::CorrectionResultList& results2 = out.getResults();
408  TUASSERTE(size_t, 4, results2.size());
410  auto i2 = results2.begin();
411  TUASSERTFE(2.0, i2->result);
412  TUASSERT(i2->source == ec1);
413  i2++;
414  TUASSERTFE(20.0, i2->result);
415  TUASSERT(i2->source == ec2);
416  i2++;
417  TUASSERTFE(4.0, i2->result);
418  TUASSERT(i2->source == ec3);
419  i2++;
420  TUASSERTFE(10.0, i2->result);
421  TUASSERT(i2->source == ec4);
422  // check UseFirst
423  TUASSERTE(bool, true, uut.getCorr(stnPos, svPos, sat, oid, when, nav, out,
425  const gnsstk::CorrectionResultList& results3 = out.getResults();
426  TUASSERTE(size_t, 4, results3.size());
428  auto i3 = results3.begin();
429  TUASSERTFE(2.0, i3->result);
430  TUASSERT(i3->source == ec1);
431  i3++;
432  TUASSERTFE(20.0, i3->result);
433  TUASSERT(i3->source == ec2);
434  i3++;
435  TUASSERTFE(4.0, i3->result);
436  TUASSERT(i3->source == ec3);
437  i3++;
438  TUASSERTFE(10.0, i3->result);
439  TUASSERT(i3->source == ec4);
440  TURETURN();
441 }
442 
443 
444 unsigned GroupPathCorr_T ::
446 {
447  TUDEF("GroupPathCorr", "init");
449  gnsstk::NavLibrary navLib;
450  TUASSERTE(bool, true, uut.init(navLib));
451  // While the order isn't important, we assume it hasn't changed.
452  auto i = uut.calcs.begin();
453  TUASSERT(dynamic_cast<gnsstk::BCISCorrector*>(i->get()) != nullptr);
454  TUASSERTE(gnsstk::NavLibrary*, &navLib,
455  &(dynamic_cast<gnsstk::BCISCorrector*>(i->get())->navLib));
456  i++;
457  TUASSERT(dynamic_cast<gnsstk::BCIonoCorrector*>(i->get()) != nullptr);
458  TUASSERTE(gnsstk::NavLibrary*, &navLib,
459  &(dynamic_cast<gnsstk::BCIonoCorrector*>(i->get())->navLib));
460  TURETURN();
461 }
462 
463 
464 unsigned GroupPathCorr_T ::
466 {
467  TUDEF("GroupPathCorr", "initGlobal");
469  gnsstk::NavLibrary navLib;
470  TUASSERTE(bool, true, uut.initGlobal(navLib, dataPath+"arlm2000.15m"));
471  // While the order isn't important, we assume it hasn't changed.
472  auto i = uut.calcs.begin();
473  TUASSERT(dynamic_cast<gnsstk::BCISCorrector*>(i->get()) != nullptr);
474  TUASSERTE(gnsstk::NavLibrary*, &navLib,
475  &(dynamic_cast<gnsstk::BCISCorrector*>(i->get())->navLib));
476  i++;
477  TUASSERT(dynamic_cast<gnsstk::BCIonoCorrector*>(i->get()) != nullptr);
478  TUASSERTE(gnsstk::NavLibrary*, &navLib,
479  &(dynamic_cast<gnsstk::BCIonoCorrector*>(i->get())->navLib));
480  i++;
481  TUASSERT(dynamic_cast<gnsstk::GlobalTropCorrector*>(i->get()) != nullptr);
482  TUASSERTE(bool, false,
483  dynamic_cast<gnsstk::GlobalTropCorrector*>(i->get())->wxData.wx.obs.empty());
484  TURETURN();
485 }
486 
487 
488 unsigned GroupPathCorr_T ::
490 {
491  TUDEF("GroupPathCorr", "initNB");
493  gnsstk::NavLibrary navLib;
494  TUASSERTE(bool, true, uut.initNB(navLib, dataPath+"arlm2000.15m"));
495  // While the order isn't important, we assume it hasn't changed.
496  auto i = uut.calcs.begin();
497  TUASSERT(dynamic_cast<gnsstk::BCISCorrector*>(i->get()) != nullptr);
498  TUASSERTE(gnsstk::NavLibrary*, &navLib,
499  &(dynamic_cast<gnsstk::BCISCorrector*>(i->get())->navLib));
500  i++;
501  TUASSERT(dynamic_cast<gnsstk::BCIonoCorrector*>(i->get()) != nullptr);
502  TUASSERTE(gnsstk::NavLibrary*, &navLib,
503  &(dynamic_cast<gnsstk::BCIonoCorrector*>(i->get())->navLib));
504  i++;
505  TUASSERT(dynamic_cast<gnsstk::NBTropCorrector*>(i->get()) != nullptr);
506  TUASSERTE(bool, false,
507  dynamic_cast<gnsstk::NBTropCorrector*>(i->get())->wxData.wx.obs.empty());
508  TURETURN();
509 }
510 
511 
512 int main()
513 {
514  unsigned errorTotal = 0;
515  GroupPathCorr_T testClass;
516 
517  errorTotal += testClass.constructorTest();
518  errorTotal += testClass.getCorrTestPositionDouble();
519  errorTotal += testClass.getCorrTestXvtDouble();
520  errorTotal += testClass.getCorrTestPositionResults();
521  errorTotal += testClass.getCorrTestXvtResults();
522  errorTotal += testClass.initTest();
523  errorTotal += testClass.initGlobalTest();
524  errorTotal += testClass.initNBTest();
525 
526  std::cout << "Total Failures for " << __FILE__ << ": " << errorTotal
527  << std::endl;
528 
529  return errorTotal;
530 }
TestTropCorrector::getCorr
bool getCorr(const gnsstk::Position &rxPos, const gnsstk::Position &svPos, const gnsstk::SatID &sat, const gnsstk::ObsID &obs, const gnsstk::CommonTime &when, gnsstk::NavType nav, double &corrOut) override
Definition: GroupPathCorr_T.cpp:111
TestISCorrector2
Definition: GroupPathCorr_T.cpp:82
gnsstk::MetReader::wx
gnsstk::WxObsData wx
The storage for all weather data read.
Definition: MetReader.hpp:73
gnsstk::GroupPathCorr::initNB
bool initNB(NavLibrary &navLib, const std::string &rinMetFile="")
Definition: GroupPathCorr.cpp:89
gnsstk::BCIonoCorrector
Definition: BCIonoCorrector.hpp:56
TUCATCH
#define TUCATCH(STATEMENT)
Definition: TestUtil.hpp:193
gnsstk::GroupPathCorr::init
bool init(NavLibrary &navLib)
Definition: GroupPathCorr.cpp:48
GroupPathCorr_T::initGlobalTest
unsigned initGlobalTest()
Definition: GroupPathCorr_T.cpp:465
GroupPathCorr_T::getCorrTestXvtDouble
unsigned getCorrTestXvtDouble()
Definition: GroupPathCorr_T.cpp:230
gnsstk::CorrectorType
CorrectorType
Identify different sources of pseudorange bias.
Definition: CorrectorType.hpp:52
gnsstk::CorrectorType::Trop
@ Trop
Troposphere (weather) corrector.
TestISCorrector1::TestISCorrector1
TestISCorrector1()
Definition: GroupPathCorr_T.cpp:61
gnsstk::ObservationType::Phase
@ Phase
accumulated phase, in cycles
gnsstk::BCISCorrector::navLib
NavLibrary & navLib
Reference to the nav library from which we will get ISC data.
Definition: BCISCorrector.hpp:75
TUASSERTE
#define TUASSERTE(TYPE, EXP, GOT)
Definition: TestUtil.hpp:81
TestISCorrector1::getCorr
bool getCorr(const gnsstk::Position &rxPos, const gnsstk::Xvt &svPos, const gnsstk::SatID &sat, const gnsstk::ObsID &obs, const gnsstk::CommonTime &when, gnsstk::NavType nav, double &corrOut) override
Definition: GroupPathCorr_T.cpp:71
TestISCorrector2::getCorr
bool getCorr(const gnsstk::Position &rxPos, const gnsstk::Position &svPos, const gnsstk::SatID &sat, const gnsstk::ObsID &obs, const gnsstk::CommonTime &when, gnsstk::NavType nav, double &corrOut) override
Definition: GroupPathCorr_T.cpp:87
GroupPathCorr_T::dataPath
std::string dataPath
Definition: GroupPathCorr_T.cpp:167
GroupPathCorr_T
Definition: GroupPathCorr_T.cpp:155
example5.oid
oid
Definition: example5.py:29
GroupPathCorr_T::getCorrTestXvtResults
unsigned getCorrTestXvtResults()
Definition: GroupPathCorr_T.cpp:358
TestISCorrector1
Definition: GroupPathCorr_T.cpp:58
gnsstk::SatID
Definition: SatID.hpp:89
gnsstk::TimeSystem::Any
@ Any
wildcard; allows comparison with any other type
TestIonoCorrector::getCorr
bool getCorr(const gnsstk::Position &rxPos, const gnsstk::Xvt &svPos, const gnsstk::SatID &sat, const gnsstk::ObsID &obs, const gnsstk::CommonTime &when, gnsstk::NavType nav, double &corrOut) override
Definition: GroupPathCorr_T.cpp:143
gnsstk::StringUtils::asString
std::string asString(IonexStoreStrategy e)
Convert a IonexStoreStrategy to a whitespace-free string name.
Definition: IonexStoreStrategy.cpp:46
gnsstk::BCIonoCorrector::navLib
NavLibrary & navLib
Reference to the nav library from which we will get iono data.
Definition: BCIonoCorrector.hpp:74
gnsstk::GroupPathCorr::initGlobal
bool initGlobal(NavLibrary &navLib, const std::string &rinMetFile="")
Definition: GroupPathCorr.cpp:65
gnsstk::CorrDupHandling::UseFirst
@ UseFirst
Sum includes first valid correction of type, all computed.
gnsstk::CorrectionResults::getCorrSum
double getCorrSum(CorrDupHandling dups) const
Definition: CorrectionResults.cpp:59
gnsstk::Xvt::v
Triple v
satellite velocity in ECEF Cartesian, meters/second
Definition: Xvt.hpp:152
GroupPathCorr_T::initNBTest
unsigned initNBTest()
Definition: GroupPathCorr_T.cpp:489
gnsstk::Triple
Definition: Triple.hpp:68
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::NavType::GPSLNAV
@ GPSLNAV
gnsstk::Xvt::relcorr
double relcorr
relativity correction (standard 2R.V/c^2 term), seconds
Definition: Xvt.hpp:155
gnsstk::NavDataFactoryPtr
std::shared_ptr< NavDataFactory > NavDataFactoryPtr
Managed pointer to NavDataFactory.
Definition: NavDataFactory.hpp:398
gnsstk::SatelliteSystem::GPS
@ GPS
gnsstk::TrackingCode::CA
@ CA
Legacy GPS civil code.
TestTropCorrector::TestTropCorrector
TestTropCorrector()
Definition: GroupPathCorr_T.cpp:109
GroupPathCorr_T::constructorTest
unsigned constructorTest()
Definition: GroupPathCorr_T.cpp:179
gnsstk::Xvt::x
Triple x
Sat position ECEF Cartesian (X,Y,Z) meters.
Definition: Xvt.hpp:151
gnsstk::CorrDupHandling::ComputeLast
@ ComputeLast
Sum includes last valid correction of a type.
TUASSERT
#define TUASSERT(EXPR)
Definition: TestUtil.hpp:63
TestTropCorrector::getCorr
bool getCorr(const gnsstk::Position &rxPos, const gnsstk::Xvt &svPos, const gnsstk::SatID &sat, const gnsstk::ObsID &obs, const gnsstk::CommonTime &when, gnsstk::NavType nav, double &corrOut) override
Definition: GroupPathCorr_T.cpp:119
TestUtil.hpp
NavLibrary.hpp
TestIonoCorrector::TestIonoCorrector
TestIonoCorrector()
Definition: GroupPathCorr_T.cpp:133
TURETURN
#define TURETURN()
Definition: TestUtil.hpp:232
gnsstk::NavLibrary
Definition: NavLibrary.hpp:944
GroupPathCorr_T::GroupPathCorr_T
GroupPathCorr_T()
Definition: GroupPathCorr_T.cpp:172
MultiFormatNavDataFactory.hpp
TestIonoCorrector
Definition: GroupPathCorr_T.cpp:130
gnsstk::ObsID
Definition: ObsID.hpp:82
TropCorrector.hpp
gnsstk::operator<<
std::ostream & operator<<(std::ostream &s, const ObsEpoch &oe) noexcept
Definition: ObsEpochMap.cpp:54
gnsstk::CorrDupHandling::ComputeFirst
@ ComputeFirst
Sum includes first valid correction, no duplication.
gnsstk::MultiFormatNavDataFactory
Definition: MultiFormatNavDataFactory.hpp:74
gnsstk::CommonTime
Definition: CommonTime.hpp:84
gnsstk::Xvt::clkdrift
double clkdrift
satellite clock drift in seconds/second
Definition: Xvt.hpp:154
gnsstk::BCISCorrector
Definition: BCISCorrector.hpp:57
gnsstk::WxObsData::obs
WxObsMap obs
The actual data.
Definition: WxObsMap.hpp:133
gnsstk::TropCorrector
Definition: TropCorrector.hpp:90
gnsstk::CorrectionResults::getResults
const CorrectionResultList & getResults() const
Get the ordered list of results.
Definition: CorrectionResults.cpp:52
gnsstk::CarrierBand::L1
@ L1
GPS L1, Galileo E1, SBAS L1, QZSS L1, BeiDou L1.
gnsstk::Xvt
Definition: Xvt.hpp:60
CivilTime.hpp
BCIonoCorrector.hpp
gnsstk::GroupPathCorr
Definition: GroupPathCorr.hpp:91
TestIonoCorrector::getCorr
bool getCorr(const gnsstk::Position &rxPos, const gnsstk::Position &svPos, const gnsstk::SatID &sat, const gnsstk::ObsID &obs, const gnsstk::CommonTime &when, gnsstk::NavType nav, double &corrOut) override
Definition: GroupPathCorr_T.cpp:135
GroupPathCorr.hpp
TUDEF
#define TUDEF(CLASS, METHOD)
Definition: TestUtil.hpp:56
gnsstk::CorrectorType::ISC
@ ISC
Inter-signal bias corrector.
TestISCorrector2::getCorr
bool getCorr(const gnsstk::Position &rxPos, const gnsstk::Xvt &svPos, const gnsstk::SatID &sat, const gnsstk::ObsID &obs, const gnsstk::CommonTime &when, gnsstk::NavType nav, double &corrOut) override
Definition: GroupPathCorr_T.cpp:95
GroupPathCorr_T::getCorrTestPositionDouble
unsigned getCorrTestPositionDouble()
Definition: GroupPathCorr_T.cpp:189
GroupPathCorr_T::getCorrTestPositionResults
unsigned getCorrTestPositionResults()
Definition: GroupPathCorr_T.cpp:278
gnsstk::CivilTime
Definition: CivilTime.hpp:55
main
int main()
Definition: GroupPathCorr_T.cpp:512
gnsstk::GroupPathCorr::calcs
GroupPathCorrectorList calcs
The list of GroupPathCorrector objects to use in the calculation.
Definition: GroupPathCorr.hpp:172
gnsstk::CorrectionResults
Definition: CorrectionResults.hpp:52
TestISCorrector2::TestISCorrector2
TestISCorrector2()
Definition: GroupPathCorr_T.cpp:85
gnsstk::GroupPathCorr::getCorr
bool getCorr(const Position &rxPos, const Position &svPos, const SatID &sat, const ObsID &obs, const CommonTime &when, NavType nav, CorrectionResults &corrOut, CorrDupHandling dups=CorrDupHandling::ComputeFirst)
Definition: GroupPathCorr.cpp:113
gnsstk::NavLibrary::addFactory
void addFactory(NavDataFactoryPtr &fact)
Definition: NavLibrary.cpp:470
gnsstk::TropCorrector::wxData
MetReader wxData
Read and store weather data for look-up (single site)
Definition: TropCorrector.hpp:114
TUASSERTFE
#define TUASSERTFE(EXP, GOT)
Definition: TestUtil.hpp:103
gnsstk::Position
Definition: Position.hpp:136
TestTropCorrector
Definition: GroupPathCorr_T.cpp:106
gnsstk::CorrectionResultList
std::list< CorrectionResult > CorrectionResultList
Just an ordered list of group path correction results.
Definition: CorrectionResult.hpp:73
gnsstk::Xvt::clkbias
double clkbias
Sat clock correction in seconds.
Definition: Xvt.hpp:153
BCISCorrector.hpp
GroupPathCorr_T::initTest
unsigned initTest()
Definition: GroupPathCorr_T.cpp:445
gnsstk::TropCorrector::loadFile
virtual bool loadFile(const std::string &fn)
Load RINEX MET data into wxData, uses Model.
Definition: TropCorrector.hpp:216
gnsstk::NavType
NavType
Supported navigation types.
Definition: NavType.hpp:58
gnsstk::CorrectorType::Iono
@ Iono
Ionospheric corrector.
gnsstk::GroupPathCorrector::corrType
CorrectorType corrType
Set by child classes, indicates what type of bias is computed.
Definition: GroupPathCorrector.hpp:87
gnsstk::GroupPathCorrectorPtr
std::shared_ptr< GroupPathCorrector > GroupPathCorrectorPtr
Short-hand for shared_ptr.
Definition: GroupPathCorrector.hpp:91
gnsstk::GroupPathCorrector
Definition: GroupPathCorrector.hpp:61
TestISCorrector1::getCorr
bool getCorr(const gnsstk::Position &rxPos, const gnsstk::Position &svPos, const gnsstk::SatID &sat, const gnsstk::ObsID &obs, const gnsstk::CommonTime &when, gnsstk::NavType nav, double &corrOut) override
Definition: GroupPathCorr_T.cpp:63
gnsstk::MultiFormatNavDataFactory::addDataSource
bool addDataSource(const std::string &source) override
Definition: MultiFormatNavDataFactory.cpp:441


gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:39