Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
gnsstk::NavLibrary Class Reference

Detailed Description

Provide a high-level interface for finding navigation data. It is recommended that you use MultiFormatNavDataFactory when the intent of the program is to process navigation data from files, as this provides support for a wide variety of input file formats and GNSSes with no additional effort on your part.

Simplified example:

NavLibrary navLib;
NavDataFactoryPtr ndfp(std::make_shared<MultiFormatNavDataFactory>());
navLib.addFactory(ndfp);
if (!ndfp->addDataSource(filename))
die("could not load " + filename);
NavSatelliteID sat(...);
CommonTime when(...);
Xvt xvt;
if (navLib.getXvt(sat,when,xvt))
doSomething(xvt);

Definition at line 944 of file NavLibrary.hpp.

#include <NavLibrary.hpp>

Public Member Functions

void addFactory (NavDataFactoryPtr &fact)
 
void addTypeFilter (NavMessageType nmt)
 
void clear ()
 Remove all data from the library's factories. More...
 
void clearTypeFilter ()
 
void dump (std::ostream &s, DumpDetail dl) const
 
void edit (const CommonTime &fromTime, const CommonTime &toTime)
 
void edit (const CommonTime &fromTime, const CommonTime &toTime, const NavSatelliteID &satID)
 
void edit (const CommonTime &fromTime, const CommonTime &toTime, const NavSignalID &signal)
 
bool find (const NavMessageID &nmid, const CommonTime &when, NavDataPtr &navOut, SVHealth xmitHealth, NavValidityType valid, NavSearchOrder order)
 
NavMessageIDSet getAvailableMsgs (const CommonTime &fromTime, const CommonTime &toTime) const
 
NavSatelliteIDSet getAvailableSats (const CommonTime &fromTime, const CommonTime &toTime) const
 
NavSatelliteIDSet getAvailableSats (NavMessageType nmt, const CommonTime &fromTime, const CommonTime &toTime) const
 
std::string getFactoryFormats () const
 Return a comma-separated list of formats supported by the factories. More...
 
CommonTime getFinalTime () const
 
bool getHealth (const NavSatelliteID &sat, const CommonTime &when, SVHealth &healthOut, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly, NavSearchOrder order=NavSearchOrder::User)
 
std::set< SatIDgetIndexSet (const CommonTime &fromTime, const CommonTime &toTime) const
 
std::set< SatIDgetIndexSet (NavMessageType nmt, const CommonTime &fromTime, const CommonTime &toTime) const
 
CommonTime getInitialTime () const
 
bool getIonoCorr (const SatID &sat, const CommonTime &when, const Position &rxgeo, CarrierBand band, double &corrOut, NavType nt=NavType::Any, int freqOffs=0, bool freqOffsWild=true)
 
bool getIonoCorr (SatelliteSystem sys, const CommonTime &when, const Position &rxgeo, const Position &svgeo, CarrierBand band, double &corrOut, NavType nt=NavType::Any)
 
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)
 
bool getOffset (TimeSystem fromSys, TimeSystem toSys, const CommonTime &when, double &offset, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly)
 
bool getOffset (TimeSystem fromSys, TimeSystem toSys, const CommonTime &when, NavDataPtr &navOut, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly)
 
bool getXvt (const NavSatelliteID &sat, const CommonTime &when, Xvt &xvt, bool useAlm, const ObsID &oid, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly, NavSearchOrder order=NavSearchOrder::User)
 
bool getXvt (const NavSatelliteID &sat, const CommonTime &when, Xvt &xvt, bool useAlm, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly, NavSearchOrder order=NavSearchOrder::User)
 
bool getXvt (const NavSatelliteID &sat, const CommonTime &when, Xvt &xvt, const ObsID &oid, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly, NavSearchOrder order=NavSearchOrder::User)
 
bool getXvt (const NavSatelliteID &sat, const CommonTime &when, Xvt &xvt, SVHealth xmitHealth=SVHealth::Any, NavValidityType valid=NavValidityType::ValidOnly, NavSearchOrder order=NavSearchOrder::User)
 
bool isPresent (const NavMessageID &nmid, const CommonTime &fromTime, const CommonTime &toTime)
 
bool isTypePresent (NavMessageType nmt, const NavSatelliteID &satID, const CommonTime &fromTime, const CommonTime &toTime)
 
void setTypeFilter (const NavMessageTypeSet &nmts)
 
void setValidityFilter (NavValidityType nvt)
 

Static Public Member Functions

static std::list< NavMessageIDgetISCNMID (const SatID &sat, const ObsID &oid)
 

Protected Attributes

NavDataFactoryMap factories
 

Member Function Documentation

◆ addFactory()

void gnsstk::NavLibrary::addFactory ( NavDataFactoryPtr fact)

Add a new factory to the library.

Parameters
[in]factThe NavDataFactory object to add to the library.

Definition at line 470 of file NavLibrary.cpp.

◆ addTypeFilter()

void gnsstk::NavLibrary::addTypeFilter ( NavMessageType  nmt)

Add a NavMessageType to be processed to each of the factories. This should be used prior to loading data and as an alternate approach to setTypeFilter().

Parameters
[in]nmtThe NavMessageType to be processed on the next load.

Definition at line 459 of file NavLibrary.cpp.

◆ clear()

void gnsstk::NavLibrary::clear ( )

Remove all data from the library's factories.

Definition at line 530 of file NavLibrary.cpp.

◆ clearTypeFilter()

void gnsstk::NavLibrary::clearTypeFilter ( )

Clear the type filters of each of the factories. This should be used prior to loading data, and prior to using addTypeFilter(), if that API is going to be used instead of setTypeFilter().

Definition at line 448 of file NavLibrary.cpp.

◆ dump()

void gnsstk::NavLibrary::dump ( std::ostream &  s,
DumpDetail  dl 
) const

Print the contents of all factories in a human-readable format.

Parameters
[in,out]sThe stream to write the data to.
[in]dlThe level of detail the output should contain.

Definition at line 483 of file NavLibrary.cpp.

◆ edit() [1/3]

void gnsstk::NavLibrary::edit ( const CommonTime fromTime,
const CommonTime toTime 
)

Remove all data from the library's factories in the time span [fromTime,toTime).

Parameters
[in]fromTimeThe earliest time to be removed.
[in]toTimeThe earliest time that will NOT be removed.

Definition at line 495 of file NavLibrary.cpp.

◆ edit() [2/3]

void gnsstk::NavLibrary::edit ( const CommonTime fromTime,
const CommonTime toTime,
const NavSatelliteID satID 
)

Remove data for a specific satellite signal from the library's factories in the time span [fromTime,toTime).

Parameters
[in]fromTimeThe earliest time to be removed.
[in]toTimeThe earliest time that will NOT be removed.
[in]satIDThe complete signal specification for the data to be removed (subject satellite, transmit satellite, system, carrier, code, nav).

Definition at line 506 of file NavLibrary.cpp.

◆ edit() [3/3]

void gnsstk::NavLibrary::edit ( const CommonTime fromTime,
const CommonTime toTime,
const NavSignalID signal 
)

Remove data for all satellites matching a specific signal from the library's factories in the time span [fromTime,toTime).

Parameters
[in]fromTimeThe earliest time to be removed.
[in]toTimeThe earliest time that will NOT be removed.
[in]signalThe signal for the data to be removed (system, carrier, code, nav).

Definition at line 518 of file NavLibrary.cpp.

◆ find()

bool gnsstk::NavLibrary::find ( const NavMessageID nmid,
const CommonTime when,
NavDataPtr navOut,
SVHealth  xmitHealth,
NavValidityType  valid,
NavSearchOrder  order 
)

Search factories to find the navigation message that meets the specified criteria.

Note
returns the first successful match from factories.
Parameters
[in]nmidSpecify the message type, satellite and codes to match.
[in]whenThe time of interest to search for data.
[out]navOutThe resulting navigation message.
[in]xmitHealthThe desired health status of the transmitting satellite.
[in]validSpecify whether to search only for valid or invalid messages, or both.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
Returns
true if successful. If false, navData will be untouched.

Definition at line 390 of file NavLibrary.cpp.

◆ getAvailableMsgs()

NavMessageIDSet gnsstk::NavLibrary::getAvailableMsgs ( const CommonTime fromTime,
const CommonTime toTime 
) const

Obtain a set of satellites+message types for which we have data in the given time span.

Parameters
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of NavMessageID objects for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Definition at line 637 of file NavLibrary.cpp.

◆ getAvailableSats() [1/2]

NavSatelliteIDSet gnsstk::NavLibrary::getAvailableSats ( const CommonTime fromTime,
const CommonTime toTime 
) const

Obtain a set of satellites for which we have data in the given time span.

Parameters
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of satellites for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Definition at line 568 of file NavLibrary.cpp.

◆ getAvailableSats() [2/2]

NavSatelliteIDSet gnsstk::NavLibrary::getAvailableSats ( NavMessageType  nmt,
const CommonTime fromTime,
const CommonTime toTime 
) const

Obtain a set of satellites for which we have data of a specific message type in the given time span.

Parameters
[in]nmtThe navigation message type you're looking for.
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of satellites for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Definition at line 586 of file NavLibrary.cpp.

◆ getFactoryFormats()

std::string gnsstk::NavLibrary::getFactoryFormats ( ) const

Return a comma-separated list of formats supported by the factories.

Definition at line 671 of file NavLibrary.cpp.

◆ getFinalTime()

CommonTime gnsstk::NavLibrary::getFinalTime ( ) const

Determine the latest time for which this object can successfully determine the Xvt for any object.

Returns
The initial time, or CommonTime::BEGINNING_OF_TIME if no data is available.

Definition at line 555 of file NavLibrary.cpp.

◆ getHealth()

bool gnsstk::NavLibrary::getHealth ( const NavSatelliteID sat,
const CommonTime when,
SVHealth healthOut,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly,
NavSearchOrder  order = NavSearchOrder::User 
)

Get the health status of a satellite at a specific time.

Parameters
[in]satSatellite to get the health status for.
[in]whenThe time that the health should be retrieved.
[out]healthOutThe health status at when.
[in]xmitHealthThe desired health status of the transmitting satellite.
[in]validSpecify whether to search only for valid or invalid messages, or both.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
Returns
true if successful, false if no nav data was found containing health status.

Definition at line 112 of file NavLibrary.cpp.

◆ getIndexSet() [1/2]

std::set< SatID > gnsstk::NavLibrary::getIndexSet ( const CommonTime fromTime,
const CommonTime toTime 
) const

Similar to getAvailableSats() except it only returns the basic subject satellite ID, making no further distinction between codes.

Parameters
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of satellites for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Definition at line 606 of file NavLibrary.cpp.

◆ getIndexSet() [2/2]

std::set< SatID > gnsstk::NavLibrary::getIndexSet ( NavMessageType  nmt,
const CommonTime fromTime,
const CommonTime toTime 
) const

Similar to getAvailableSats() except it only returns the basic subject satellite ID, making no further distinction between codes.

Parameters
[in]nmtThe navigation message type you're looking for.
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
a set of satellites for which data is available from [fromTime,toTime).
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Definition at line 621 of file NavLibrary.cpp.

◆ getInitialTime()

CommonTime gnsstk::NavLibrary::getInitialTime ( ) const

Determine the earliest time for which this object can successfully determine the Xvt for any object.

Returns
The initial time, or CommonTime::END_OF_TIME if no data is available.

Definition at line 541 of file NavLibrary.cpp.

◆ getIonoCorr() [1/2]

bool gnsstk::NavLibrary::getIonoCorr ( const SatID sat,
const CommonTime when,
const Position rxgeo,
CarrierBand  band,
double &  corrOut,
NavType  nt = NavType::Any,
int  freqOffs = 0,
bool  freqOffsWild = true 
)

Get ionospheric corrections to be applied for in a single-frequency situation (i.e. when processing observation data from only one carrier frequency). Use this if you haven't already looked up the satellite's position/Xvt or ephemeris for other purposes. This method will look-up the ephemeris or almanac for the specified satellite and generate the Xvt, incurring additional overhead.

Parameters
[in]satThe satellite to be corrected. This also ensures that the correction data comes from the same system as this satellite.
[in]whenThe time of the observation being corrected. This time is also used to look up ionospheric correction data.
[in]rxgeoThe receiver's geodetic position.
[in]bandThe carrier band of the signal being corrected (must be a valid CarrierBand, i.e. not "Any" or "Unknown", etc.)
[out]corrOutThe ionospheric delay, in meters, on band.
[in]ntThe navigation message format, e.g. GPSLNAV. This may be specified in order to make sure the ionospheric correction data comes from a specific message structure, otherwise Any is used to indicate that you don't care where it comes from (as long as sys matches).
[in]freqOffsWhen using GLONASS FDMA satellites, specify the frequency offset for the channel.
[in]freqOffsWildIf false, sat is a GLONASS FDMA satellite.
Returns
true if ionospheric corrections are available from a known healthy satellite, and a position is available for the specified satellite, false if no ionospheric data is available matching the search parameters, or if no health information is available for any matching ionospheric data, or if no position can be computed for the specified satellite.
Todo:
Update the ObsID constructor to include freqOffs data

Definition at line 190 of file NavLibrary.cpp.

◆ getIonoCorr() [2/2]

bool gnsstk::NavLibrary::getIonoCorr ( SatelliteSystem  sys,
const CommonTime when,
const Position rxgeo,
const Position svgeo,
CarrierBand  band,
double &  corrOut,
NavType  nt = NavType::Any 
)

Get ionospheric corrections to be applied for in a single-frequency situation (i.e. when processing observation data from only one carrier frequency).

Parameters
[in]sysThe satellite system to be corrected. This also ensures that the correction data comes from this system.
[in]whenThe time of the observation being corrected. This time is also used to look up ionospheric correction data.
[in]rxgeoThe receiver's geodetic position.
[in]svgeoThe observed satellite's geodetic position.
[in]bandThe carrier band of the signal being corrected (must be a valid CarrierBand, i.e. not "Any" or "Unknown", etc.)
[out]corrOutThe ionospheric delay, in meters, on band.
[in]ntThe navigation message format, e.g. GPSLNAV. This may be specified in order to make sure the ionospheric correction data comes from a specific message structure, otherwise Any is used to indicate that you don't care where it comes from (as long as sys matches).
Returns
true if ionospheric corrections are available from a known healthy satellite, false if no ionospheric data is available matching the search parameters, or if no health information is available for any matching ionospheric data.

Definition at line 162 of file NavLibrary.cpp.

◆ getISC()

bool gnsstk::NavLibrary::getISC ( const SatID sat,
const ObsID oid,
const CommonTime when,
double &  corrOut,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly,
NavSearchOrder  order = NavSearchOrder::User 
)

Get inter-signal corrections.

Parameters
[in]satThe satellite whose inter-signal corrections are to be obtained.
[in]oidThe carrier band and tracking code of the signal to get the correction for.
[in]whenThe time of the observation being corrected. This time is also used to look up ISC data.
[out]corrOutThe correction in seconds for the given band/code.
[in]xmitHealthThe desired health status of the transmitting satellite.
[in]validSpecify whether to search only for valid or invalid messages, or both.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
Returns
true If band/code are valid for this object and corrOut was set according to available data.

Definition at line 225 of file NavLibrary.cpp.

◆ getISCNMID()

std::list< NavMessageID > gnsstk::NavLibrary::getISCNMID ( const SatID sat,
const ObsID oid 
)
static

Get an appropriate NavMessageID to use to perform a search for ISC data for a given SatID and ObsID.

Parameters
[in]satThe satellite whose inter-signal corrections are to be obtained.
[in]oidThe ObsID for which ISCs are desired.
Returns
A list of appropriate NavMessageID objects to use for searching. This list will be empty if oid is not a signal for which ISC data sources are known.
Todo:
Add support for other GNSSes to getISCNMID.

Definition at line 250 of file NavLibrary.cpp.

◆ getOffset() [1/2]

bool gnsstk::NavLibrary::getOffset ( TimeSystem  fromSys,
TimeSystem  toSys,
const CommonTime when,
double &  offset,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly 
)

Get the offset, in seconds, to apply to times when converting them from fromSys to toSys.

Precondition
If xmithHealth is set to anything other than "Any", ephemeris data must be loaded in order to obtain satellite health to match.
Parameters
[in]fromSysThe time system to convert from.
[in]toSysThe time system to convert to.
[in]whenThe time being converted, usually in the time system appropriate for a given nav message source. The details of what time system this should be in and any other restrictions will be documented in each leaf class, e.g. GPSLNavTimeOffset.
[out]offsetThe offset when converting fromSys->toSys where when(toSys)=when(fromSys)-offset.
[in]xmitHealthThe desired health status of the transmitting satellite.
[in]validSpecify whether to search only for valid or invalid messages, or both.
Returns
true if an offset is available, false if not.

Definition at line 128 of file NavLibrary.cpp.

◆ getOffset() [2/2]

bool gnsstk::NavLibrary::getOffset ( TimeSystem  fromSys,
TimeSystem  toSys,
const CommonTime when,
NavDataPtr navOut,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly 
)

Get the offset as a NavDataPtr that refers to a TimeOffset object, to apply to times when converting them from fromSys to toSys.

Precondition
If xmithHealth is set to anything other than "Any", ephemeris data must be loaded in order to obtain satellite health to match.
Parameters
[in]fromSysThe time system to convert from.
[in]toSysThe time system to convert to.
[in]whenThe time being converted, usually in the time system appropriate for a given nav message source. The details of what time system this should be in and any other restrictions will be documented in each leaf class, e.g. GPSLNavTimeOffset.
[out]navOutThe offset when converting fromSys->toSys.
[in]xmitHealthThe desired health status of the transmitting satellite.
[in]validSpecify whether to search only for valid or invalid messages, or both.
Returns
true if an offset is available, false if not.

Definition at line 144 of file NavLibrary.cpp.

◆ getXvt() [1/4]

bool gnsstk::NavLibrary::getXvt ( const NavSatelliteID sat,
const CommonTime when,
Xvt xvt,
bool  useAlm,
const ObsID oid,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly,
NavSearchOrder  order = NavSearchOrder::User 
)

Get the position and velocity of a satellite at a specific time, searching either almanac or ephemeris, as dictated by useAlm. Additionally, it allows the user to specify an ObsID to get an antenna phase center that is different from the transmitting antenna, when applicable.

Parameters
[in]satSatellite to get the position/velocity for.
[in]whenThe time that the position should be computed for.
[out]xvtThe computed position and velocity at when.
[in]useAlmIf true, search for and use almanac orbital elements. If false, search for and use ephemeris data instead.
[in]oidWhen it is possible to have different antenna phase centers on a single SV, this parameter allows you to specify a different APC than the navigation data was being transmitted from.
[in]xmitHealthThe desired health status of the transmitting satellite.
[in]validSpecify whether to search only for valid or invalid messages, or both.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
Returns
true if successful, false if no nav data was found to compute the Xvt.

Definition at line 64 of file NavLibrary.cpp.

◆ getXvt() [2/4]

bool gnsstk::NavLibrary::getXvt ( const NavSatelliteID sat,
const CommonTime when,
Xvt xvt,
bool  useAlm,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly,
NavSearchOrder  order = NavSearchOrder::User 
)

Get the position and velocity of a satellite at a specific time, searching either almanac or ephemeris, as dictated by useAlm.

Parameters
[in]satSatellite to get the position/velocity for.
[in]whenThe time that the position should be computed for.
[out]xvtThe computed position and velocity at when.
[in]useAlmIf true, search for and use almanac orbital elements. If false, search for and use ephemeris data instead.
[in]xmitHealthThe desired health status of the transmitting satellite.
[in]validSpecify whether to search only for valid or invalid messages, or both.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
Returns
true if successful, false if no nav data was found to compute the Xvt.

Definition at line 52 of file NavLibrary.cpp.

◆ getXvt() [3/4]

bool gnsstk::NavLibrary::getXvt ( const NavSatelliteID sat,
const CommonTime when,
Xvt xvt,
const ObsID oid,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly,
NavSearchOrder  order = NavSearchOrder::User 
)

Get the position and velocity of a satellite at a specific time, searching first for a matching ephemeris, and if that fails, then attempting to search for matching almanac (as opposed to one or the other). Additionally, it allows the user to specify an ObsID to get an antenna phase center that is different from the transmitting antenna, when applicable.

Parameters
[in]satSatellite to get the position/velocity for.
[in]whenThe time that the position should be computed for.
[out]xvtThe computed position and velocity at when.
[in]oidWhen it is possible to have different antenna phase centers on a single SV, this parameter allows you to specify a different APC than the navigation data was being transmitted from.
[in]xmitHealthThe desired health status of the transmitting satellite.
[in]validSpecify whether to search only for valid or invalid messages, or both.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
Returns
true if successful, false if no nav data was found to compute the Xvt.

Definition at line 91 of file NavLibrary.cpp.

◆ getXvt() [4/4]

bool gnsstk::NavLibrary::getXvt ( const NavSatelliteID sat,
const CommonTime when,
Xvt xvt,
SVHealth  xmitHealth = SVHealth::Any,
NavValidityType  valid = NavValidityType::ValidOnly,
NavSearchOrder  order = NavSearchOrder::User 
)

Get the position and velocity of a satellite at a specific time, searching first for a matching ephemeris, and if that fails, then attempting to search for a matching almanac (as opposed to one or the other).

Parameters
[in]satSatellite to get the position/velocity for.
[in]whenThe time that the position should be computed for.
[out]xvtThe computed position and velocity at when.
[in]xmitHealthThe desired health status of the transmitting satellite.
[in]validSpecify whether to search only for valid or invalid messages, or both.
[in]orderSpecify whether to search by receiver behavior or by nearest to when in time.
Returns
true if successful, false if no nav data was found to compute the Xvt.

Definition at line 80 of file NavLibrary.cpp.

◆ isPresent()

bool gnsstk::NavLibrary::isPresent ( const NavMessageID nmid,
const CommonTime fromTime,
const CommonTime toTime 
)

Determine if a given message/satellite/signal is available in the factory.

Parameters
[in]nmidThe message/satellite/signal to search for.
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
true if the given satellite/signal is has data in the given time span.
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Definition at line 656 of file NavLibrary.cpp.

◆ isTypePresent()

bool gnsstk::NavLibrary::isTypePresent ( NavMessageType  nmt,
const NavSatelliteID satID,
const CommonTime fromTime,
const CommonTime toTime 
)
inline

Determine if a given satellite/signal is available in the factory.

Parameters
[in]nmtThe navigation message type of interest.
[in]satIDThe satellite/signal to search for.
[in]fromTimeThe earliest time for which any messages should be available.
[in]toTimeThe earliest time for which any messages should be NOT available.
Returns
true if the given satellite/signal is has data in the given time span.
Note
We specifically require the time range parameters to try to avoid making assumptions about the size of the data set (i.e. assuming the data is going to be a day's worth when it's actually several years.

Definition at line 1433 of file NavLibrary.hpp.

◆ setTypeFilter()

void gnsstk::NavLibrary::setTypeFilter ( const NavMessageTypeSet nmts)

Indicate what nav message types the factories should be loading. This should be called before the factories acquire any data.

Warning
In order to properly support SP3, if you want to include Ephemeris data, you should also include Clock data in the filter.
You MUST include Health data in the type filter if you intend to look up data by health status other than "Any" (exceptions: if you're ONLY looking up orbit data that has self-contained health status).
Parameters
[in]nmtsThe set of nav message types to be processed by the factories.

Definition at line 437 of file NavLibrary.cpp.

◆ setValidityFilter()

void gnsstk::NavLibrary::setValidityFilter ( NavValidityType  nvt)

Set the factories' handling of valid and invalid navigation data. This should be called before any find() calls.

Parameters
[in]nvtThe new nav data loading filter method.

Definition at line 426 of file NavLibrary.cpp.

Member Data Documentation

◆ factories

NavDataFactoryMap gnsstk::NavLibrary::factories
protected

Known nav data factories, organized by signal to make searches simpler and/or quicker.

Definition at line 1445 of file NavLibrary.hpp.


The documentation for this class was generated from the following files:
gnsstk::NavDataFactoryPtr
std::shared_ptr< NavDataFactory > NavDataFactoryPtr
Managed pointer to NavDataFactory.
Definition: NavDataFactory.hpp:398


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