NavLibrary.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 //
28 // This software was developed by Applied Research Laboratories at the
29 // University of Texas at Austin, under contract to an agency or agencies
30 // within the U.S. Department of Defense. The U.S. Government retains all
31 // rights to use, duplicate, distribute, disclose, or release this software.
32 //
33 // Pursuant to DoD Directive 523024
34 //
35 // DISTRIBUTION STATEMENT A: This software has been approved for public
36 // release, distribution is unlimited.
37 //
38 //==============================================================================
39 #include "NavLibrary.hpp"
40 #include "OrbitData.hpp"
41 #include "NavHealthData.hpp"
42 #include "TimeOffsetData.hpp"
43 #include "NDFUniqConstIterator.hpp"
44 #include "NDFUniqIterator.hpp"
45 #include "IonoNavData.hpp"
46 #include "InterSigCorr.hpp"
47 #include "DebugTrace.hpp"
48 
49 namespace gnsstk
50 {
51  bool NavLibrary ::
52  getXvt(const NavSatelliteID& sat, const CommonTime& when, Xvt& xvt,
53  bool useAlm, SVHealth xmitHealth, NavValidityType valid,
54  NavSearchOrder order)
55  {
57  // Use the standard default ObsID for standard default behavior.
58  ObsID oid;
59  return getXvt(sat, when, xvt, useAlm, oid, xmitHealth, valid, order);
60  }
61 
62 
63  bool NavLibrary ::
64  getXvt(const NavSatelliteID& sat, const CommonTime& when, Xvt& xvt,
65  bool useAlm, const ObsID& oid, SVHealth xmitHealth,
67  {
69  NavMessageID nmid(sat, useAlm ? NavMessageType::Almanac :
71  NavDataPtr ndp;
72  if (!find(nmid, when, ndp, xmitHealth, valid, order))
73  return false;
74  OrbitData *orb = dynamic_cast<OrbitData*>(ndp.get());
75  return orb->getXvt(when, xvt, oid);
76  }
77 
78 
79  bool NavLibrary ::
80  getXvt(const NavSatelliteID& sat, const CommonTime& when, Xvt& xvt,
81  SVHealth xmitHealth, NavValidityType valid, NavSearchOrder order)
82  {
84  // Use the standard default ObsID for standard default behavior.
85  ObsID oid;
86  return getXvt(sat, when, xvt, oid, xmitHealth, valid, order);
87  }
88 
89 
90  bool NavLibrary ::
91  getXvt(const NavSatelliteID& sat, const CommonTime& when, Xvt& xvt,
92  const ObsID& oid, SVHealth xmitHealth, NavValidityType valid,
93  NavSearchOrder order)
94  {
97  NavDataPtr ndp;
98  if (!find(nmid, when, ndp, xmitHealth, valid, order))
99  {
101  if (!find(nmida, when, ndp, xmitHealth, valid, order))
102  {
103  return false;
104  }
105  }
106  OrbitData *orb = dynamic_cast<OrbitData*>(ndp.get());
107  return orb->getXvt(when, xvt, oid);
108  }
109 
110 
111  bool NavLibrary ::
112  getHealth(const NavSatelliteID& sat, const CommonTime& when,
113  SVHealth& healthOut, SVHealth xmitHealth, NavValidityType valid,
114  NavSearchOrder order)
115  {
118  NavDataPtr ndp;
119  if (!find(nmid, when, ndp, xmitHealth, valid, order))
120  return false;
121  NavHealthData *healthData = dynamic_cast<NavHealthData*>(ndp.get());
122  healthOut = healthData->getHealth();
123  return true;
124  }
125 
126 
127  bool NavLibrary ::
129  const CommonTime& when, double& offset, SVHealth xmitHealth,
131  {
133  NavDataPtr timeOffset;
134  if (getOffset(fromSys, toSys, when, timeOffset, xmitHealth, valid))
135  {
136  TimeOffsetData *top = dynamic_cast<TimeOffsetData*>(timeOffset.get());
137  return top->getOffset(fromSys, toSys, when, offset);
138  }
139  return false;
140  }
141 
142 
143  bool NavLibrary ::
145  const CommonTime& when, NavDataPtr& offset, SVHealth xmitHealth,
147  {
150  {
151  if (fi.second->getOffset(fromSys, toSys, when, offset, xmitHealth,
152  valid))
153  {
154  return true;
155  }
156  }
157  return false;
158  }
159 
160 
161  bool NavLibrary ::
163  const Position& rxgeo, const Position& svgeo,
164  CarrierBand band, double& corrOut, NavType nt)
165  {
167  SatID sysOnly(sys);
168  NavMessageID nmid(
170  sysOnly, sysOnly,
174  XmitAnt::Any),
175  nt),
177  NavDataPtr navOut;
178  if (!find(nmid, when, navOut, SVHealth::Healthy,
180  {
181  return false;
182  }
183  IonoNavData *iono = dynamic_cast<IonoNavData*>(navOut.get());
184  corrOut = iono->getIonoCorr(when, rxgeo, svgeo, band);
185  return true;
186  }
187 
188 
189  bool NavLibrary ::
190  getIonoCorr(const SatID& sat, const CommonTime& when,
191  const Position& rxgeo,
192  CarrierBand band, double& corrOut, NavType nt, int freqOffs,
193  bool freqOffsWild)
194  {
196  if (sat.isWild())
197  {
198  // wildcards in sat are not allowed, we need a specific
199  // satellite's position
200  return false;
201  }
202  Xvt xvt;
203  SatID wildSat;
204  wildSat.makeWild();
206  NavSatelliteID nsid(sat, wildSat,
210  XmitAnt::Any),
211  nt);
212  if (!getXvt(nsid, when, xvt, SVHealth::Any, NavValidityType::ValidOnly,
214  {
215  // can't get a satellite position
216  return false;
217  }
218  Position svgeo(xvt.x);
220  return getIonoCorr(sat.system, when, rxgeo, svgeo, band, corrOut, nt);
221  }
222 
223 
224  bool NavLibrary ::
225  getISC(const SatID& sat, const ObsID& oid, const CommonTime& when,
226  double& corrOut, SVHealth xmitHealth, NavValidityType valid,
227  NavSearchOrder order)
228  {
230  std::list<NavMessageID> msgIDs(getISCNMID(sat, oid));
231  if (msgIDs.empty())
232  return false;
233  NavDataPtr navOut;
234  for (const auto& nmid : msgIDs)
235  {
236  if (find(nmid, when, navOut, xmitHealth, valid, order))
237  {
238  InterSigCorr *isc = dynamic_cast<InterSigCorr*>(navOut.get());
239  // This if test allows getISC to fail and the loop to
240  // continue and attempt to find another match.
241  if (isc->getISC(oid, corrOut))
242  return true;
243  }
244  }
245  return false;
246  }
247 
248 
249  std::list<NavMessageID> NavLibrary ::
250  getISCNMID(const SatID& sat, const ObsID& oid)
251  {
253  std::list<NavMessageID> rv;
254  const ObsID anyObs(ObservationType::NavMsg,
257  XmitAnt::Any);
258  if (sat.system == SatelliteSystem::GPS)
259  {
260  const SatID gpsAnySat(SatelliteSystem::GPS);
261  NavMessageID nmid(
262  NavSatelliteID(sat, gpsAnySat, anyObs,
265  switch (oid.code)
266  {
267  case TrackingCode::CA:
268  if (oid.band == CarrierBand::L1)
269  {
270  nmid.nav = NavType::GPSLNAV;
271  rv.push_back(nmid);
272  rv.push_back(
273  NavMessageID(
274  NavSatelliteID(sat, gpsAnySat, anyObs,
277  rv.push_back(
278  NavMessageID(
279  NavSatelliteID(sat, gpsAnySat, anyObs,
282  rv.push_back(
283  NavMessageID(
284  NavSatelliteID(sat, gpsAnySat, anyObs,
287  }
288  break;
289  case TrackingCode::P:
290  case TrackingCode::Y:
294  switch (oid.band)
295  {
296  case CarrierBand::L1:
297  case CarrierBand::L2:
298  rv.push_back(
299  NavMessageID(
300  NavSatelliteID(sat, gpsAnySat, anyObs,
303  break;
304  }
305  break;
306  case TrackingCode::MD:
307  case TrackingCode::MDP:
308  case TrackingCode::MP:
309  case TrackingCode::MPA:
310  case TrackingCode::MARLD:
311  case TrackingCode::MARLP:
314  switch (oid.band)
315  {
316  case CarrierBand::L1:
317  case CarrierBand::L2:
318  rv.push_back(
319  NavMessageID(
320  NavSatelliteID(sat, gpsAnySat, anyObs,
323  break;
324  }
325  break;
326  case TrackingCode::L2CM:
327  case TrackingCode::L2CL:
328  case TrackingCode::L2CML:
329  if (oid.band == CarrierBand::L2)
330  {
331  rv.push_back(
332  NavMessageID(
333  NavSatelliteID(sat, gpsAnySat, anyObs,
336  rv.push_back(
337  NavMessageID(
338  NavSatelliteID(sat, gpsAnySat, anyObs,
341  rv.push_back(
342  NavMessageID(
343  NavSatelliteID(sat, gpsAnySat, anyObs,
346  }
347  break;
348  case TrackingCode::L5I:
349  case TrackingCode::L5Q:
350  case TrackingCode::L5IQ:
351  if (oid.band == CarrierBand::L5)
352  {
353  rv.push_back(
354  NavMessageID(
355  NavSatelliteID(sat, gpsAnySat, anyObs,
358  rv.push_back(
359  NavMessageID(
360  NavSatelliteID(sat, gpsAnySat, anyObs,
363  rv.push_back(
364  NavMessageID(
365  NavSatelliteID(sat, gpsAnySat, anyObs,
368  }
369  break;
370  case TrackingCode::L1CP:
371  case TrackingCode::L1CD:
372  case TrackingCode::L1CDP:
373  if (oid.band == CarrierBand::L1)
374  {
375  rv.push_back(
376  NavMessageID(
377  NavSatelliteID(sat, gpsAnySat, anyObs,
380  }
381  break;
382  }
383  } // if (sat.system == SatelliteSystem::GPS)
385  return rv;
386  }
387 
388 
389  bool NavLibrary ::
390  find(const NavMessageID& nmid, const CommonTime& when, NavDataPtr& navOut,
391  SVHealth xmitHealth, NavValidityType valid, NavSearchOrder order)
392  {
394  // Don't use factories.equal_range(nmid), as it can result in
395  // range.first and range.second being the same iterator, in
396  // which case the loop won't process anything at all.
397  // Also don't use the unique iterator as it will result in
398  // skipping over valid factories, e.g. looking for CNAV but
399  // LNAV is first in the map, the signals don't match and the
400  // factory won't be looked at again.
401  std::set<NavDataFactory*> uniques;
402  for (auto& fi : factories)
403  {
404  // std::cerr << "fi.first = " << fi.first << " nmid = " << nmid << std::endl;
405  if ((fi.first == nmid) && (uniques.count(fi.second.get()) == 0))
406  {
407  try
408  {
409  if (fi.second->find(nmid, when, navOut, xmitHealth, valid, order))
410  {
411  return true;
412  }
413  }
414  catch (gnsstk::Exception& exc)
415  {
416  GNSSTK_RETHROW(exc);
417  }
418  uniques.insert(fi.second.get());
419  }
420  }
421  return false;
422  }
423 
424 
425  void NavLibrary ::
427  {
430  {
431  i.second->setValidityFilter(nvt);
432  }
433  }
434 
435 
436  void NavLibrary ::
438  {
441  {
442  i.second->setTypeFilter(nmts);
443  }
444  }
445 
446 
447  void NavLibrary ::
449  {
452  {
453  i.second->clearTypeFilter();
454  }
455  }
456 
457 
458  void NavLibrary ::
460  {
463  {
464  i.second->addTypeFilter(nmt);
465  }
466  }
467 
468 
469  void NavLibrary ::
471  {
473  // Yes, we do add multiple copies of the NavDataFactoryPtr to
474  // the map, it's a convenience.
475  for (const auto& si : fact->supportedSignals)
476  {
477  factories.insert(NavDataFactoryMap::value_type(si,fact));
478  }
479  }
480 
481 
482  void NavLibrary ::
483  dump(std::ostream& s, DumpDetail dl) const
484  {
486  for (const auto& fi : NDFUniqConstIterator<NavDataFactoryMap>(factories))
487  {
488  NavDataFactory *ptr = fi.second.get();
489  ptr->dump(s,dl);
490  }
491  }
492 
493 
494  void NavLibrary ::
495  edit(const CommonTime& fromTime, const CommonTime& toTime)
496  {
499  {
500  fi.second->edit(fromTime, toTime);
501  }
502  }
503 
504 
505  void NavLibrary ::
506  edit(const CommonTime& fromTime, const CommonTime& toTime,
507  const NavSatelliteID& satID)
508  {
511  {
512  fi.second->edit(fromTime, toTime, satID);
513  }
514  }
515 
516 
517  void NavLibrary ::
518  edit(const CommonTime& fromTime, const CommonTime& toTime,
519  const NavSignalID& signal)
520  {
523  {
524  fi.second->edit(fromTime, toTime, signal);
525  }
526  }
527 
528 
529  void NavLibrary ::
531  {
534  {
535  fi.second->clear();
536  }
537  }
538 
539 
542  {
545  for (const auto& fi : NDFUniqConstIterator<NavDataFactoryMap>(factories))
546  {
547  gnsstk::CommonTime t(fi.second->getInitialTime());
548  rv = std::min(rv, t);
549  }
550  return rv;
551  }
552 
553 
556  {
559  for (const auto& fi : NDFUniqConstIterator<NavDataFactoryMap>(factories))
560  {
561  rv = std::max(rv, fi.second->getFinalTime());
562  }
563  return rv;
564  }
565 
566 
568  getAvailableSats(const CommonTime& fromTime, const CommonTime& toTime)
569  const
570  {
572  NavSatelliteIDSet rv, tmp;
573  for (const auto& fi : NDFUniqConstIterator<NavDataFactoryMap>(factories))
574  {
575  tmp = fi.second->getAvailableSats(fromTime, toTime);
576  for (const auto& i : tmp)
577  {
578  rv.insert(i);
579  }
580  }
581  return rv;
582  }
583 
584 
587  const CommonTime& fromTime,
588  const CommonTime& toTime)
589  const
590  {
592  NavSatelliteIDSet rv, tmp;
593  for (const auto& fi : NDFUniqConstIterator<NavDataFactoryMap>(factories))
594  {
595  tmp = fi.second->getAvailableSats(nmt, fromTime, toTime);
596  for (const auto& i : tmp)
597  {
598  rv.insert(i);
599  }
600  }
601  return rv;
602  }
603 
604 
605  std::set<SatID> NavLibrary ::
606  getIndexSet(const CommonTime& fromTime,
607  const CommonTime& toTime) const
608  {
610  NavSatelliteIDSet fullSatSet = getAvailableSats(fromTime,toTime);
611  std::set<SatID> rv;
612  for (const auto& fssi : fullSatSet)
613  {
614  rv.insert(fssi.sat);
615  }
616  return rv;
617  }
618 
619 
620  std::set<SatID> NavLibrary ::
622  const CommonTime& fromTime,
623  const CommonTime& toTime) const
624  {
626  NavSatelliteIDSet fullSatSet = getAvailableSats(nmt,fromTime,toTime);
627  std::set<SatID> rv;
628  for (const auto& fssi : fullSatSet)
629  {
630  rv.insert(fssi.sat);
631  }
632  return rv;
633  }
634 
635 
638  const CommonTime& toTime)
639  const
640  {
642  NavMessageIDSet rv, tmp;
643  for (const auto& fi : NDFUniqConstIterator<NavDataFactoryMap>(factories))
644  {
645  tmp = fi.second->getAvailableMsgs(fromTime, toTime);
646  for (const auto& i : tmp)
647  {
648  rv.insert(i);
649  }
650  }
651  return rv;
652  }
653 
654 
655  bool NavLibrary ::
657  const CommonTime& fromTime,
658  const CommonTime& toTime)
659  {
661  for (const auto& fi : NDFUniqConstIterator<NavDataFactoryMap>(factories))
662  {
663  if (fi.second->isPresent(nmid, fromTime, toTime))
664  return true;
665  }
666  return false;
667  }
668 
669 
670  std::string NavLibrary ::
672  {
674  std::string rv;
675  for (const auto& fi : NDFUniqConstIterator<NavDataFactoryMap>(factories))
676  {
677  NavDataFactory *ptr = fi.second.get();
678  std::string ff(ptr->getFactoryFormats());
679  if (!ff.empty())
680  {
681  if (!rv.empty())
682  rv += ", ";
683  rv += ff;
684  }
685  }
686  return rv;
687  }
688 }
gnsstk::Position::Geodetic
@ Geodetic
geodetic latitude, longitude, and height above ellipsoid
Definition: Position.hpp:145
gnsstk::NavLibrary::edit
void edit(const CommonTime &fromTime, const CommonTime &toTime)
Definition: NavLibrary.cpp:495
gnsstk::NavDataPtr
std::shared_ptr< NavData > NavDataPtr
Factories instantiate these in response to find() requests.
Definition: NavData.hpp:62
gnsstk::NavSignalID::nav
NavType nav
Navigation message structure of this signal.
Definition: NavSignalID.hpp:96
gnsstk::NavMessageTypeSet
std::set< NavMessageType > NavMessageTypeSet
Set of message types, used by NavLibrary and NavDataFactory.
Definition: NavMessageType.hpp:76
gnsstk::NavMessageType::ISC
@ ISC
Inter-signal corrections.
gnsstk::IonoNavData::getIonoCorr
virtual double getIonoCorr(const CommonTime &when, const Position &rxgeo, const Position &svgeo, CarrierBand band) const =0
gnsstk::NavType::Unknown
@ Unknown
Uninitialized value.
gnsstk::NavLibrary::getAvailableMsgs
NavMessageIDSet getAvailableMsgs(const CommonTime &fromTime, const CommonTime &toTime) const
Definition: NavLibrary.cpp:637
gnsstk::NavMessageID
Class used to identify/categorize navigation message data.
Definition: NavMessageID.hpp:52
gnsstk::TrackingCode::L5IQ
@ L5IQ
Modernized GPS L5 civil I+Q combined tracking.
gnsstk::TrackingCode::YCodeless
@ YCodeless
Encrypted legacy GPS precise code, squaring codeless tracking.
gnsstk::TrackingCode::L1CD
@ L1CD
Modernized GPS L1C civil code tracking (data)
gnsstk::TrackingCode::MPA
@ MPA
gnsstk::SatID::makeWild
void makeWild()
Definition: SatID.cpp:74
gnsstk::TrackingCode::L5Q
@ L5Q
Modernized GPS L5 civil quadrature.
gnsstk::NavLibrary::setValidityFilter
void setValidityFilter(NavValidityType nvt)
Definition: NavLibrary.cpp:426
gnsstk::TrackingCode::L1CP
@ L1CP
Modernized GPS L1C civil code tracking (pilot)
gnsstk::NavType::GPSMNAV
@ GPSMNAV
gnsstk::Position::transformTo
Position & transformTo(CoordinateSystem sys) noexcept
Definition: Position.cpp:247
gnsstk::TrackingCode::L2CL
@ L2CL
Modernized GPS L2 civil L code.
NavHealthData.hpp
gnsstk::TrackingCode::MARLP
@ MARLP
gnsstk::NavLibrary::dump
void dump(std::ostream &s, DumpDetail dl) const
Definition: NavLibrary.cpp:483
gnsstk::CarrierBand
CarrierBand
Definition: CarrierBand.hpp:54
gnsstk::NavSatelliteID
Definition: NavSatelliteID.hpp:57
gnsstk::max
T max(const SparseMatrix< T > &SM)
Maximum element - return 0 if empty.
Definition: SparseMatrix.hpp:881
gnsstk::InterSigCorr::getISC
virtual bool getISC(const ObsID &oid, double &corrOut) const
Definition: InterSigCorr.cpp:107
gnsstk::SatelliteSystem
SatelliteSystem
Supported satellite systems.
Definition: SatelliteSystem.hpp:55
gnsstk::TrackingCode::Y
@ Y
Encrypted legacy GPS precise code.
gnsstk::NavSatelliteIDSet
std::set< NavSatelliteID > NavSatelliteIDSet
Definition: NavSatelliteID.hpp:174
gnsstk::OrbitData::getXvt
virtual bool getXvt(const CommonTime &when, Xvt &xvt, const ObsID &oid=ObsID())=0
gnsstk::CarrierBand::Any
@ Any
Used to match any carrier band.
gnsstk::NavLibrary::getIndexSet
std::set< SatID > getIndexSet(const CommonTime &fromTime, const CommonTime &toTime) const
Definition: NavLibrary.cpp:606
gnsstk::NavLibrary::getIonoCorr
bool getIonoCorr(SatelliteSystem sys, const CommonTime &when, const Position &rxgeo, const Position &svgeo, CarrierBand band, double &corrOut, NavType nt=NavType::Any)
Definition: NavLibrary.cpp:162
gnsstk::NavLibrary::getXvt
bool getXvt(const NavSatelliteID &sat, const CommonTime &when, Xvt &xvt, bool useAlm, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly, NavSearchOrder order=NavSearchOrder::User)
Definition: NavLibrary.cpp:52
example5.oid
oid
Definition: example5.py:29
gnsstk::IonoNavData
Definition: IonoNavData.hpp:53
gnsstk::SatID
Definition: SatID.hpp:89
gnsstk::TrackingCode::L5I
@ L5I
Modernized GPS L5 civil in-phase.
gnsstk::NavMessageType::Health
@ Health
SV health status information message.
gnsstk::TrackingCode::Mprime
@ Mprime
gnsstk::TrackingCode::MP
@ MP
gnsstk::CommonTime::BEGINNING_OF_TIME
static const GNSSTK_EXPORT CommonTime BEGINNING_OF_TIME
earliest representable CommonTime
Definition: CommonTime.hpp:102
gnsstk::SVHealth
SVHealth
Identify different types of SV health states.
Definition: SVHealth.hpp:52
gnsstk::NavValidityType
NavValidityType
Definition: NavValidityType.hpp:53
gnsstk::NavSearchOrder
NavSearchOrder
Specify the behavior of nav data searches in NavLibrary/NavDataFactory.
Definition: NavSearchOrder.hpp:51
gnsstk::TrackingCode::MDP
@ MDP
Modernized GPS military unique code.
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::NavType::GPSLNAV
@ GPSLNAV
gnsstk::CarrierBand::L2
@ L2
GPS L2, QZSS L2.
gnsstk::NavLibrary::getISC
bool getISC(const SatID &sat, const ObsID &oid, const CommonTime &when, double &corrOut, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly, NavSearchOrder order=NavSearchOrder::User)
Definition: NavLibrary.cpp:225
gnsstk::NavDataFactoryPtr
std::shared_ptr< NavDataFactory > NavDataFactoryPtr
Managed pointer to NavDataFactory.
Definition: NavDataFactory.hpp:398
gnsstk::Exception
Definition: Exception.hpp:151
gnsstk::NavLibrary::clearTypeFilter
void clearTypeFilter()
Definition: NavLibrary.cpp:448
gnsstk::ObservationType::NavMsg
@ NavMsg
Navigation Message data.
gnsstk::NavLibrary::getInitialTime
CommonTime getInitialTime() const
Definition: NavLibrary.cpp:541
gnsstk::SatelliteSystem::GPS
@ GPS
gnsstk::SVHealth::Any
@ Any
Use in searches when you don't care about the SV health.
gnsstk::TrackingCode::CA
@ CA
Legacy GPS civil code.
gnsstk::CommonTime::END_OF_TIME
static const GNSSTK_EXPORT CommonTime END_OF_TIME
latest representable CommonTime
Definition: CommonTime.hpp:104
gnsstk::TrackingCode::MD
@ MD
gnsstk::Xvt::x
Triple x
Sat position ECEF Cartesian (X,Y,Z) meters.
Definition: Xvt.hpp:151
gnsstk::TimeOffsetData::getOffset
virtual bool getOffset(TimeSystem fromSys, TimeSystem toSys, const CommonTime &when, double &offset) const =0
NDFUniqIterator.hpp
gnsstk::NavLibrary::getOffset
bool getOffset(TimeSystem fromSys, TimeSystem toSys, const CommonTime &when, NavDataPtr &navOut, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly)
Definition: NavLibrary.cpp:144
gnsstk::SVHealth::Healthy
@ Healthy
Satellite is in a healthy and useable state.
NavLibrary.hpp
NDFUniqConstIterator.hpp
gnsstk::SatID::isWild
bool isWild() const
return true if any of the fields are set to match wildcards.
Definition: SatID.cpp:81
gnsstk::NavValidityType::ValidOnly
@ ValidOnly
Only load/find nav messages that pass validity checks.
IonoNavData.hpp
gnsstk::ObsID
Definition: ObsID.hpp:82
gnsstk::TimeOffsetData
Definition: TimeOffsetData.hpp:60
gnsstk::NavType::GPSCNAVL2
@ GPSCNAVL2
gnsstk::NavMessageType::Iono
@ Iono
Ionospheric correction data.
gnsstk::CommonTime
Definition: CommonTime.hpp:84
TimeOffsetData.hpp
gnsstk::TrackingCode::L2CML
@ L2CML
Modernized GPS L2 civil M+L combined tracking.
gnsstk::TrackingCode::MprimePA
@ MprimePA
gnsstk::min
T min(const SparseMatrix< T > &SM)
Maximum element - return 0 if empty.
Definition: SparseMatrix.hpp:858
gnsstk::TrackingCode::Ztracking
@ Ztracking
Encrypted legacy GPS precise code, codeless Z tracking.
gnsstk::TimeSystem
TimeSystem
Definition of various time systems.
Definition: TimeSystem.hpp:51
example6.valid
valid
Definition: example6.py:20
gnsstk::CarrierBand::L1
@ L1
GPS L1, Galileo E1, SBAS L1, QZSS L1, BeiDou L1.
gnsstk::Xvt
Definition: Xvt.hpp:60
gnsstk::NavHealthData
Definition: NavHealthData.hpp:52
GNSSTK_RETHROW
#define GNSSTK_RETHROW(exc)
Definition: Exception.hpp:369
gnsstk::TrackingCode::P
@ P
Legacy GPS precise code.
gnsstk::SatID::system
SatelliteSystem system
System for this satellite.
Definition: SatID.hpp:156
gnsstk::NavLibrary::setTypeFilter
void setTypeFilter(const NavMessageTypeSet &nmts)
Definition: NavLibrary.cpp:437
gnsstk::InterSigCorr
Definition: InterSigCorr.hpp:106
gnsstk::NavSignalID
Class used to identify navigation data signal types.
Definition: NavSignalID.hpp:54
gnsstk::TrackingCode::L2CM
@ L2CM
Modernized GPS L2 civil M code.
gnsstk::DumpDetail
DumpDetail
Specify level of detail for dump output.
Definition: DumpDetail.hpp:51
gnsstk::NavHealthData::getHealth
virtual SVHealth getHealth() const =0
gnsstk::NavLibrary::addTypeFilter
void addTypeFilter(NavMessageType nmt)
Definition: NavLibrary.cpp:459
DebugTrace.hpp
gnsstk::NavLibrary::getHealth
bool getHealth(const NavSatelliteID &sat, const CommonTime &when, SVHealth &healthOut, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly, NavSearchOrder order=NavSearchOrder::User)
Definition: NavLibrary.cpp:112
gnsstk::TrackingCode::Semicodeless
@ Semicodeless
Encrypted legacy GPS precise code, other codeless tracking.
gnsstk::NavMessageType
NavMessageType
Identify different types of navigation message data.
Definition: NavMessageType.hpp:59
gnsstk::NavLibrary::getISCNMID
static std::list< NavMessageID > getISCNMID(const SatID &sat, const ObsID &oid)
Definition: NavLibrary.cpp:250
gnsstk::NavLibrary::getFinalTime
CommonTime getFinalTime() const
Definition: NavLibrary.cpp:555
gnsstk::NavMessageType::Ephemeris
@ Ephemeris
Precision orbits for the transmitting SV.
OrbitData.hpp
gnsstk::NavDataFactory::dump
virtual void dump(std::ostream &s, DumpDetail dl) const
Definition: NavDataFactory.hpp:181
gnsstk::NavLibrary::clear
void clear()
Remove all data from the library's factories.
Definition: NavLibrary.cpp:530
gnsstk::NavLibrary::addFactory
void addFactory(NavDataFactoryPtr &fact)
Definition: NavLibrary.cpp:470
gnsstk::NavSearchOrder::Nearest
@ Nearest
Return the message closest to the search time.
gnsstk::Position
Definition: Position.hpp:136
InterSigCorr.hpp
gnsstk::NavDataFactory
Definition: NavDataFactory.hpp:60
DEBUGTRACE_FUNCTION
#define DEBUGTRACE_FUNCTION()
Definition: DebugTrace.hpp:117
gnsstk::NavLibrary::isPresent
bool isPresent(const NavMessageID &nmid, const CommonTime &fromTime, const CommonTime &toTime)
Definition: NavLibrary.cpp:656
gnsstk::OrbitData
Definition: OrbitData.hpp:53
gnsstk::TrackingCode::L1CDP
@ L1CDP
Modernized GPS L1C civil code tracking (pilot + data)
gnsstk::NDFUniqIterator
Definition: NDFUniqIterator.hpp:60
gnsstk::NavSearchOrder::User
@ User
Return the latest message before the search time.
gnsstk::NavLibrary::getFactoryFormats
std::string getFactoryFormats() const
Return a comma-separated list of formats supported by the factories.
Definition: NavLibrary.cpp:671
gnsstk::NavType
NavType
Supported navigation types.
Definition: NavType.hpp:58
gnsstk::NavLibrary::find
bool find(const NavMessageID &nmid, const CommonTime &when, NavDataPtr &navOut, SVHealth xmitHealth, NavValidityType valid, NavSearchOrder order)
Definition: NavLibrary.cpp:390
gnsstk::XmitAnt::Any
@ Any
When making comparisons in ObsID, matches any enumeration.
gnsstk::NavMessageIDSet
std::set< NavMessageID > NavMessageIDSet
Definition: NavMessageID.hpp:101
gnsstk::NavLibrary::factories
NavDataFactoryMap factories
Definition: NavLibrary.hpp:1445
gnsstk::TrackingCode::Any
@ Any
Used to match any tracking code.
gnsstk::NavType::GPSCNAVL5
@ GPSCNAVL5
gnsstk::NavDataFactory::getFactoryFormats
virtual std::string getFactoryFormats() const =0
Return a comma-separated list of formats supported by this factory.
gnsstk::TrackingCode::MARLD
@ MARLD
gnsstk::NDFUniqConstIterator
Definition: NDFUniqConstIterator.hpp:60
gnsstk::NavMessageType::Almanac
@ Almanac
Low-precision orbits for other than the transmitting SV.
gnsstk::NavType::GPSCNAV2
@ GPSCNAV2
gnsstk::NavLibrary::getAvailableSats
NavSatelliteIDSet getAvailableSats(const CommonTime &fromTime, const CommonTime &toTime) const
Definition: NavLibrary.cpp:568
gnsstk::CarrierBand::L5
@ L5
GPS L5, Galileo E5a, SBAS L5, QZSS L5, BeiDou B2a, NavIC L5.


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