ObsRngDev_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 "ObsRngDev.hpp"
40 #include "TestUtil.hpp"
41 #include <iostream>
42 
43 #include "NavLibrary.hpp"
44 #include "RinexNavDataFactory.hpp"
45 
46 #include "EphemerisRange.hpp"
47 #include "SimpleTropModel.hpp"
48 
49 //=====================================================================================
50 // Test Structure
51 // Begin with generating ObsRngDev objects using every constructor and test the basic
52 // initialization of these objects. Then verify that each of the objects constructed have
53 // calculated the ORD correctly, in addition to the elevation and azimuth. By testing
54 // the value of the ORD, the different calculations such as generating Tropospheric models
55 // and calculating ionospheric and tropospheric delays are tested implicitly. These tests
56 // are entirely dependent on the Ephemeris Range class calculating the range correctly.
57 //======================================================================================
58 
59 gnsstk::IonoModelStore ionoModelStoreGen(std::vector<gnsstk::CommonTime>& cTimeVec)
60 {
61  double a[] = {1,2,3,4}; double b[] = {4,3,2,1};
62 
64 
65  for (int i=0; i < cTimeVec.size(); i++)
66  ims.addIonoModel(cTimeVec[i], gnsstk::IonoModel(a,b));
67 
68  return ims;
69 }
70 
72 {
73 public:
75  {
76  receiverPos.setGeodetic(30.387577, -97.727607, 240);
77 
78  prange.push_back(21665483.747f);
79  prange.push_back(21662553.318f);
80  prange.push_back(21659650.826f);
81  prange2.push_back(21665487.640f);
82  prange2.push_back(21662557.419f);
83  prange2.push_back(21659655.019f);
84 
85  id.id = 1;
86  id.system = gnsstk::SatelliteSystem::GPS;
87 
91  cTimeVec.push_back(ct1);
92  cTimeVec.push_back(ct2);
93  cTimeVec.push_back(ct3);
94 
95  std::string path = gnsstk::getPathData() + "/test_input_rinex_nav_ephemerisData.031";
96  ndfp = std::make_shared<gnsstk::RinexNavDataFactory>();
97  GNSSTK_ASSERT(ndfp->addDataSource(path));
99  };
100 
102 
104  {
105  TUDEF("ObsRngDev", "BasicConstructor");
106 
107  try
108  {
109  for (int i=0; i < cTimeVec.size(); i++)
110  {
112  ordVec.push_back(ord);
113  }
114  }
115  catch(gnsstk::Exception e)
116  {
117  TUFAIL("unexpected exception");
118  }
119 
120  failCount = 0;
121  for (int i=0; i < ordVec.size(); i++)
122  if(!(ordVec[i].obstime == cTimeVec[i]))
123  failCount++;
124  TUASSERT(failCount == 0);
125  TUASSERT(ordVec.size() == 3);
126 
127  failCount = 0;
128  for (int i=0; i < ordVec.size(); i++)
129  if(!(ordVec[i].svid == id))
130  failCount++;
131  TUASSERT(failCount == 0);
132 
133  failCount = 0;
134  for (int i=0; i < ordVec.size(); i++)
135  if(!(ordVec[i].health.get_value() == 0))
136  failCount++;
137  TUASSERT(failCount == 0);
138 
139  TURETURN();
140  }
141 
143  {
144  TUDEF("ObsRngDev", "IonosphericConstructor");
145 
148 
149  try
150  {
151  for (int i=0; i < cTimeVec.size(); i++)
152  {
154  ephemStore, em, ims, L1);
155  ordVecIon.push_back(ord);
156  }
157  }
158  catch (gnsstk::Exception e)
159  {
160  std::cout << e << std::endl;
161  TUFAIL("unexpected exception");
162  }
163 
164  failCount = 0;
165  for (int i=0; i < ordVecIon.size(); i++)
166  if(!(ordVecIon[i].obstime == cTimeVec[i]))
167  failCount++;
168  TUASSERT(failCount == 0);
169  TUASSERT(ordVecIon.size() == 3);
170 
171  failCount = 0;
172  for (int i=0; i < ordVecIon.size(); i++)
173  if(!(ordVecIon[i].svid == id))
174  failCount++;
175  TUASSERT(failCount == 0);
176 
177  failCount = 0;
178  for (int i=0; i < ordVecIon.size(); i++)
179  if(!(ordVecIon[i].health.get_value() == 0))
180  failCount++;
181  TUASSERT(failCount == 0);
182 
183  TURETURN();
184  }
185 
187  {
188  TUDEF("ObsRngDev", "TroposphericConstructor");
189 
190  gnsstk::SimpleTropModel stm(18.8889, 1021.2176, 77.7777); // Celsius, mmBar, %humidity
191 
192  try
193  {
194  for (int i=0; i < cTimeVec.size(); i++)
195  {
196  gnsstk::ObsRngDev ord(prange[i], id, cTimeVec[i],
197  receiverPos, ephemStore, em, stm);
198  ordVecTrop.push_back(ord);
199  }
200  }
201  catch (gnsstk::Exception e)
202  {
203  TUFAIL("unexpected exception");
204  }
205 
206  failCount = 0;
207  for (int i=0; i < ordVecTrop.size(); i++)
208  //Have same timeVec for every 10 instances of ordVecTrop
209  if(!(ordVecTrop[i].obstime == cTimeVec[i]))
210  failCount++;
211  TUASSERT(failCount == 0);
212  TUASSERT(ordVecTrop.size() == 3);
213 
214  failCount = 0;
215  for (int i=0; i < ordVecTrop.size(); i++)
216  if(!(ordVecTrop[i].svid == id))
217  failCount++;
218  TUASSERT(failCount == 0);
219 
220  failCount = 0;
221  for (int i=0; i < ordVecTrop.size(); i++)
222  if(!(ordVecTrop[i].health.get_value() == 0))
223  failCount++;
224  TUASSERT(failCount == 0);
225 
226  TURETURN();
227  }
228 
230  {
231  TUDEF("ObsRngDev", "IonosphericTroposphericConstructor");
232 
233  gnsstk::SimpleTropModel stm(18.8889, 1021.2176, 77.7777);
236 
237  try
238  {
239  for (int i=0; i < cTimeVec.size(); i++)
240  {
242  ephemStore, em, stm, ims, L1);
243  ordVecTropIon.push_back(ord);
244  }
245  }
246  catch (gnsstk::Exception e)
247  {
248  TUFAIL("unexpected exception");
249  }
250 
251  failCount = 0;
252  for (int i=0; i < ordVecTropIon.size(); i++)
253  if(!(ordVecTropIon[i].obstime == cTimeVec[i]))
254  failCount++;
255  TUASSERT(failCount == 0);
256  TUASSERT(ordVecTropIon.size() == 3);
257 
258  failCount = 0;
259  for (int i=0; i < ordVecTropIon.size(); i++)
260  if(!(ordVecTropIon[i].svid == id))
261  failCount++;
262  TUASSERT(failCount == 0);
263 
264  failCount = 0;
265  for (int i=0; i < ordVecTropIon.size(); i++)
266  if(!(ordVecTropIon[i].health.get_value() == 0))
267  failCount++;
268  TUASSERT(failCount == 0);
269 
270  TURETURN();
271  }
272 
274  {
275  TUDEF("ObsRngDev", "GammaConstructor");
276 
277  try
278  {
279  for (int i=0; i < cTimeVec.size(); i++)
280  {
281  gnsstk::ObsRngDev ord(prange[i], prange2[i], id, cTimeVec[i],
283  ordVecGamma.push_back(ord);
284  }
285  }
286  catch (gnsstk::Exception e)
287  {
288  TUFAIL("unexpected exception");
289  }
290 
291  failCount = 0;
292  for (int i=0; i < ordVecGamma.size(); i++)
293  if(!(ordVecGamma[i].obstime == cTimeVec[i]))
294  failCount++;
295  TUASSERT(failCount == 0);
296  TUASSERT(ordVecGamma.size() == 3);
297 
298  failCount = 0;
299  for (int i=0; i < ordVecGamma.size(); i++)
300  if(!(ordVecGamma[i].svid == id))
301  failCount++;
302  TUASSERT(failCount == 0);
303 
304  failCount = 0;
305  for (int i=0; i < ordVecGamma.size(); i++)
306  if(!(ordVecGamma[i].health.get_value() == 0))
307  failCount++;
308  TUASSERT(failCount == 0);
309 
310  TURETURN();
311  }
312 
314  {
315  TUDEF("ObsRngDev", "GammaTroposphericConstructor");
316 
317  gnsstk::SimpleTropModel stm(18.8889, 1021.2176, 77.7777);
318  try
319  {
320  for (int i=0; i < cTimeVec.size(); i++)
321  {
322  gnsstk::ObsRngDev ord(prange[i], prange2[i], id, cTimeVec[i],
323  receiverPos, ephemStore, em, stm);
324  ordVecTropGamma.push_back(ord);
325  }
326  }
327  catch (gnsstk::Exception e)
328  {
329  TUFAIL("unexpected exception");
330  }
331 
332  failCount = 0;
333  for (int i=0; i < ordVecTropGamma.size(); i++)
334  if(!(ordVecTropGamma[i].obstime == cTimeVec[i]))
335  failCount++;
336  TUASSERT(failCount == 0);
337  TUASSERT(ordVecTropGamma.size() == 3);
338 
339  failCount = 0;
340  for (int i=0; i < ordVecTropGamma.size(); i++)
341  if(!(ordVecTropGamma[i].svid == id))
342  failCount++;
343  TUASSERT(failCount == 0);
344 
345  failCount = 0;
346  for (int i=0; i < ordVecTropGamma.size(); i++)
347  if(!(ordVecTropGamma[i].health.get_value() == 0))
348  failCount++;
349  TUASSERT(failCount == 0);
350 
351  TURETURN();
352  }
353 
354 //===================================================================================
355 // Begin Get Functions Test
356 //===================================================================================
357 
359  {
360  TUDEF("ObsRngDev", "Get Methods");
361 
362  TUASSERT(ordVec.size() > 0);
363 
364  failCount = 0;
365  for(int i=0; i<ordVec.size(); i++)
366  if (!(ordVec[i].getTime() == ordVec[i].obstime))
367  failCount++;
368  TUASSERT(failCount == 0);
369 
370  failCount = 0;
371  for(int i=0; i<ordVec.size(); i++)
372  if (!(ordVec[i].getSvID() == ordVec[i].svid))
373  failCount++;
374  TUASSERT(failCount == 0);
375 
376  failCount = 0;
377  for(int i=0; i<ordVec.size(); i++)
378  if (!(ordVec[i].getAzimuth().get_value() == ordVec[i].azimuth.get_value()))
379  failCount++;
380  TUASSERT(failCount == 0);
381 
382  failCount = 0;
383  for(int i=0; i<ordVec.size(); i++)
384  if (!(ordVec[i].getElevation().get_value() == ordVec[i].elevation.get_value()))
385  failCount++;
386  TUASSERT(failCount == 0);
387 
388  failCount = 0;
389  for(int i=0; i<ordVec.size(); i++)
390  if (!(ordVec[i].getHealth().get_value() == ordVec[i].health.get_value()))
391  failCount++;
392  TUASSERT(failCount == 0);
393 
394  failCount = 0;
395  for(int i=0; i<ordVec.size(); i++)
396  if (!(ordVec[i].getIODC().get_value() == ordVec[i].iodc.get_value()))
397  failCount++;
398  TUASSERT(failCount == 0);
399 
400  failCount = 0;
401  for(int i=0; i<ordVec.size(); i++)
402  if (!(ordVec[i].getORD() == ordVec[i].ord))
403  failCount++;
404  TUASSERT(failCount == 0);
405 
406  failCount = 0;
407  for(int i=0; i<ordVec.size(); i++)
408  if (!(ordVec[i].getIono().get_value() == ordVec[i].iono.get_value()))
409  failCount++;
410  TUASSERT(failCount == 0);
411 
412  failCount = 0;
413  for(int i=0; i<ordVec.size(); i++)
414  if (!(ordVec[i].getTrop().get_value() == ordVec[i].trop.get_value()))
415  failCount++;
416  TUASSERT(failCount == 0);
417 
418  TURETURN();
419  }
420 
422  {
423  TUDEF("ObsRngDev", "BasicCalculation");
424  TUASSERT(ordVec.size() > 0);
425 
426  for (int i=0; i < ordVec.size(); i++)
427  {
429  double rho = cer.ComputeAtTransmitTime(ordVec[i].obstime, prange[i], receiverPos, ordVec[i].svid, ephemStore);
430  TUASSERTFE(prange[i] - rho - ordVec[i].trop, ordVec[i].ord);
431  TUASSERTFE(ordVec[i].rho, rho);
432  TUASSERTE(int, ordVec[i].azimuth, cer.azimuth);
433  TUASSERTE(int, ordVec[i].elevation, cer.elevation);
434  }
435 
436  TURETURN();
437  }
438 
440  {
441  TUDEF("ObsRngDev", "IonosphericCalculation");
442  TUASSERT(ordVecIon.size() > 0);
443 
444  for (int i=0; i < ordVecIon.size(); i++)
445  {
447  double rho = cer.ComputeAtTransmitTime(ordVecIon[i].obstime, prange[i], receiverPos, ordVecIon[i].svid, ephemStore);
448  TUASSERTFEPS(prange[i] - rho - ordVecIon[i].trop - ordVecIon[i].iono, ordVecIon[i].ord, 1e-6);
449  TUASSERTFE(ordVecIon[i].rho, rho);
450  TUASSERTE(int, ordVecIon[i].azimuth, cer.azimuth);
451  TUASSERTE(int, ordVecIon[i].elevation, cer.elevation);
452  }
453 
454  TURETURN();
455  }
456 
458  {
459  TUDEF("ObsRngDev", "TroposphericCalculation");
460  TUASSERT(ordVecTrop.size() > 0);
461 
462  for (int i=0; i < ordVecTrop.size(); i++)
463  {
465  double rho = cer.ComputeAtTransmitTime(ordVecTrop[i].obstime, prange[i], receiverPos, ordVecTrop[i].svid, ephemStore);
466  double CompareOrd = prange[i] - rho - ordVec[i].trop;
467  TUASSERTFEPS(prange[i] - rho - ordVecTrop[i].trop, ordVecTrop[i].ord, 1e-6);
468  TUASSERTFE(ordVecTrop[i].rho, rho);
469  TUASSERTE(int, ordVecTrop[i].azimuth, cer.azimuth);
470  TUASSERTE(int, ordVecTrop[i].elevation, cer.elevation);
471  }
472 
473  TURETURN();
474  }
475 
477  {
478  TUDEF("ObsRngDev", "IonosphericTroposphericCalculation");
479  TUASSERT(ordVecTropIon.size() > 0);
480 
481  for (int i=0; i < ordVecTropIon.size(); i++)
482  {
484  double rho = cer.ComputeAtTransmitTime(ordVecTropIon[i].obstime, prange[i], receiverPos, ordVecTropIon[i].svid, ephemStore);
485  TUASSERTFEPS(prange[i] - rho - ordVecTropIon[i].trop - ordVecTropIon[i].iono, ordVecTropIon[i].ord, 1e-6);
486  TUASSERTFE(ordVecTropIon[i].rho, rho);
487  TUASSERTE(int, ordVecTropIon[i].azimuth, cer.azimuth);
488  TUASSERTE(int, ordVecTropIon[i].elevation, cer.elevation);
489  }
490 
491  TURETURN();
492  }
493 
495  {
496  TUDEF("ObsRngDev", "GammaCalculation");
497  TUASSERT(ordVecGamma.size() > 0);
498 
499  for (int i=0; i < ordVecGamma.size(); i++)
500  {
502  double rho = cer.ComputeAtTransmitTime(ordVecGamma[i].obstime, prange[i], receiverPos, ordVecGamma[i].svid, ephemStore);
503  TUASSERTFEPS(prange[i] - rho - ordVecGamma[i].trop - ordVecGamma[i].iono, ordVecGamma[i].ord, 1e-4);
504  TUASSERTFEPS(ordVecGamma[i].rho, rho, 1e-4);
505  TUASSERTE(int, ordVecGamma[i].azimuth, cer.azimuth);
506  TUASSERTE(int, ordVecGamma[i].elevation, cer.elevation);
507  }
508 
509  TURETURN();
510  }
511 
513  {
514  TUDEF("ObsRngDev", "TroposphericGammaCalculation");
515  TUASSERT(ordVecTropGamma.size() > 0);
516 
517  for (int i=0; i < ordVecTropGamma.size(); i++)
518  {
521  TUASSERTFEPS(prange[i] - rho - ordVecTropGamma[i].trop - ordVecTropGamma[i].iono, ordVecTropGamma[i].ord, 1e-4);
522  TUASSERTFEPS(ordVecTropGamma[i].rho, rho, 1e-4);
523  TUASSERTE(int, ordVecTropGamma[i].azimuth, cer.azimuth);
524  TUASSERTE(int, ordVecTropGamma[i].elevation, cer.elevation);
525  }
526 
527  TURETURN();
528  }
529 
530 private:
533  std::vector<float> prange;
534  std::vector<float> prange2;
535 
536  char *buff;
537 
538  std::vector<gnsstk::ObsRngDev> ordVec;
539  std::vector<gnsstk::ObsRngDev> ordVecIon;
540  std::vector<gnsstk::ObsRngDev> ordVecTrop;
541  std::vector<gnsstk::ObsRngDev> ordVecTropIon;
542  std::vector<gnsstk::ObsRngDev> ordVecGamma;
543  std::vector<gnsstk::ObsRngDev> ordVecTropGamma;
544 
545  std::vector< std::map<int, float> > prnPrange;
546  std::vector<gnsstk::CommonTime> cTimeVec;
553 };
554 
555 
556 int main() //Main function to initialize and run all tests above
557 {
558  int errorCounter = 0;
559  ObsRngDev_T testClass;
560 
561  errorCounter += testClass.BasicConstructorTest();
562  errorCounter += testClass.IonosphericConstructorTest();
563  errorCounter += testClass.TroposphericConstructorTest();
564  errorCounter += testClass.IonosphericTroposphericConstructorTest();
565  errorCounter += testClass.GammaConstructorTest();
566  errorCounter += testClass.GammaTroposphericConstructorTest();
567  errorCounter += testClass.getFunctionsTest();
568  errorCounter += testClass.BasicCalculationTest();
569  errorCounter += testClass.IonosphericCalculationTest();
570  errorCounter += testClass.TroposphericCalculationTest();
571  errorCounter += testClass.IonosphericTroposphericCalculationTest();
572  errorCounter += testClass.GammaCalculationTest();
573  errorCounter += testClass.TroposphericGammaCalculationTest();
574 
575  std::cout << "Total Failures for " << __FILE__ << ": " << errorCounter << std::endl;
576 
577  return errorCounter;
578 }
example3.svid
svid
Definition: example3.py:19
ObsRngDev_T::prange
std::vector< float > prange
Definition: ObsRngDev_T.cpp:533
ObsRngDev_T::receiverPos
gnsstk::Position receiverPos
Definition: ObsRngDev_T.cpp:547
ObsRngDev_T::ordVec
std::vector< gnsstk::ObsRngDev > ordVec
Definition: ObsRngDev_T.cpp:538
ObsRngDev_T::getFunctionsTest
int getFunctionsTest(void)
Definition: ObsRngDev_T.cpp:358
ObsRngDev_T::ordVecTrop
std::vector< gnsstk::ObsRngDev > ordVecTrop
Definition: ObsRngDev_T.cpp:540
L1
gnsstk::Matrix< double > L1
Definition: Matrix_LUDecomp_T.cpp:46
ObsRngDev_T::ordVecTropIon
std::vector< gnsstk::ObsRngDev > ordVecTropIon
Definition: ObsRngDev_T.cpp:541
ObsRngDev_T::TroposphericGammaCalculationTest
int TroposphericGammaCalculationTest(void)
Definition: ObsRngDev_T.cpp:512
TUASSERTE
#define TUASSERTE(TYPE, EXP, GOT)
Definition: TestUtil.hpp:81
gnsstk::CarrierBand
CarrierBand
Definition: CarrierBand.hpp:54
TUFAIL
#define TUFAIL(MSG)
Definition: TestUtil.hpp:228
gnsstk::SatID
Definition: SatID.hpp:89
main
int main()
Definition: ObsRngDev_T.cpp:556
ObsRngDev_T::BasicConstructorTest
int BasicConstructorTest(void)
Definition: ObsRngDev_T.cpp:103
ObsRngDev_T::ordVecTropGamma
std::vector< gnsstk::ObsRngDev > ordVecTropGamma
Definition: ObsRngDev_T.cpp:543
gnsstk::ObsRngDev
Definition: ObsRngDev.hpp:73
gnsstk::NavDataFactoryPtr
std::shared_ptr< NavDataFactory > NavDataFactoryPtr
Managed pointer to NavDataFactory.
Definition: NavDataFactory.hpp:398
gnsstk::WGS84Ellipsoid
Definition: WGS84Ellipsoid.hpp:56
ObsRngDev_T::ordVecGamma
std::vector< gnsstk::ObsRngDev > ordVecGamma
Definition: ObsRngDev_T.cpp:542
ObsRngDev_T::GammaTroposphericConstructorTest
int GammaTroposphericConstructorTest(void)
Definition: ObsRngDev_T.cpp:313
ObsRngDev_T::BasicCalculationTest
int BasicCalculationTest(void)
Definition: ObsRngDev_T.cpp:421
gnsstk::Exception
Definition: Exception.hpp:151
gnsstk::SatelliteSystem::GPS
@ GPS
EphemerisRange.hpp
TUASSERT
#define TUASSERT(EXPR)
Definition: TestUtil.hpp:63
ObsRngDev_T::IonosphericConstructorTest
int IonosphericConstructorTest(void)
Definition: ObsRngDev_T.cpp:142
ObsRngDev_T::ephemStore
gnsstk::NavLibrary ephemStore
High level nav store interface.
Definition: ObsRngDev_T.cpp:549
TestUtil.hpp
gnsstk::CivilTime::convertToCommonTime
virtual CommonTime convertToCommonTime() const
Definition: CivilTime.cpp:75
gnsstk::IonoModelStore
Definition: IonoModelStore.hpp:62
NavLibrary.hpp
TURETURN
#define TURETURN()
Definition: TestUtil.hpp:232
gnsstk::NavLibrary
Definition: NavLibrary.hpp:944
gnsstk::IonoModelStore::addIonoModel
bool addIonoModel(const CommonTime &mt, const IonoModel &im) noexcept
Definition: IonoModelStore.cpp:88
ObsRngDev_T::prange2
std::vector< float > prange2
Definition: ObsRngDev_T.cpp:534
ObsRngDev.hpp
gnsstk::CommonTime
Definition: CommonTime.hpp:84
ObsRngDev_T::buff
char * buff
Definition: ObsRngDev_T.cpp:536
ObsRngDev_T::ordVecIon
std::vector< gnsstk::ObsRngDev > ordVecIon
Definition: ObsRngDev_T.cpp:539
ObsRngDev_T::GammaCalculationTest
int GammaCalculationTest(void)
Definition: ObsRngDev_T.cpp:494
TUASSERTFEPS
#define TUASSERTFEPS(EXP, GOT, EPS)
Definition: TestUtil.hpp:126
gnsstk::CarrierBand::L1
@ L1
GPS L1, Galileo E1, SBAS L1, QZSS L1, BeiDou L1.
ObsRngDev_T::IonosphericTroposphericConstructorTest
int IonosphericTroposphericConstructorTest(void)
Definition: ObsRngDev_T.cpp:229
ObsRngDev_T::cTimeVec
std::vector< gnsstk::CommonTime > cTimeVec
Definition: ObsRngDev_T.cpp:546
gnsstk::CorrectedEphemerisRange::ComputeAtTransmitTime
double ComputeAtTransmitTime(const CommonTime &trNom, const double &pr, const Position &rx, const SatID sat, NavLibrary &navLib, NavSearchOrder order=NavSearchOrder::User, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly, const EllipsoidModel &ellipsoid=GPSEllipsoid())
Definition: EphemerisRange.cpp:102
TUDEF
#define TUDEF(CLASS, METHOD)
Definition: TestUtil.hpp:56
SimpleTropModel.hpp
ObsRngDev_T
Definition: ObsRngDev_T.cpp:71
ObsRngDev_T::ObsRngDev_T
ObsRngDev_T()
Definition: ObsRngDev_T.cpp:74
gnsstk::CivilTime
Definition: CivilTime.hpp:55
ObsRngDev_T::IonosphericTroposphericCalculationTest
int IonosphericTroposphericCalculationTest(void)
Definition: ObsRngDev_T.cpp:476
GNSSTK_ASSERT
#define GNSSTK_ASSERT(CONDITION)
Provide an "ASSERT" type macro.
Definition: Exception.hpp:373
ObsRngDev_T::IonosphericCalculationTest
int IonosphericCalculationTest(void)
Definition: ObsRngDev_T.cpp:439
gnsstk::TimeSystem::GPS
@ GPS
GPS system time.
gnsstk::IonoModel
Definition: IonoModel.hpp:70
ObsRngDev_T::ndfp
gnsstk::NavDataFactoryPtr ndfp
nav data file reader
Definition: ObsRngDev_T.cpp:551
gnsstk::CorrectedEphemerisRange::elevation
double elevation
Definition: EphemerisRange.hpp:263
ObsRngDev_T::TroposphericCalculationTest
int TroposphericCalculationTest(void)
Definition: ObsRngDev_T.cpp:457
gnsstk::NavLibrary::addFactory
void addFactory(NavDataFactoryPtr &fact)
Definition: NavLibrary.cpp:470
ObsRngDev_T::id
gnsstk::SatID id
Definition: ObsRngDev_T.cpp:532
TUASSERTFE
#define TUASSERTFE(EXP, GOT)
Definition: TestUtil.hpp:103
gnsstk::Position
Definition: Position.hpp:136
ObsRngDev_T::em
gnsstk::WGS84Ellipsoid em
Definition: ObsRngDev_T.cpp:552
gnsstk::SimpleTropModel
A simple Black model of the troposphere. temp is in Kelvin.
Definition: SimpleTropModel.hpp:48
ObsRngDev_T::~ObsRngDev_T
~ObsRngDev_T()
Definition: ObsRngDev_T.cpp:101
gnsstk::Position::setGeodetic
Position & setGeodetic(const double lat, const double lon, const double ht, const EllipsoidModel *ell=nullptr)
Definition: Position.cpp:495
ObsRngDev_T::failCount
int failCount
Definition: ObsRngDev_T.cpp:531
gnsstk::CorrectedEphemerisRange
Definition: EphemerisRange.hpp:84
gnsstk::CorrectedEphemerisRange::azimuth
double azimuth
Definition: EphemerisRange.hpp:266
ObsRngDev_T::prnPrange
std::vector< std::map< int, float > > prnPrange
Definition: ObsRngDev_T.cpp:545
ionoModelStoreGen
gnsstk::IonoModelStore ionoModelStoreGen(std::vector< gnsstk::CommonTime > &cTimeVec)
Definition: ObsRngDev_T.cpp:59
ObsRngDev_T::TroposphericConstructorTest
int TroposphericConstructorTest(void)
Definition: ObsRngDev_T.cpp:186
RinexNavDataFactory.hpp
ObsRngDev_T::GammaConstructorTest
int GammaConstructorTest(void)
Definition: ObsRngDev_T.cpp:273


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