TabularEphemerisStore Class Reference
[Ephemstore]

#include <TabularEphemerisStore.hpp>

Inheritance diagram for TabularEphemerisStore:

Inheritance graph
[legend]
Collaboration diagram for TabularEphemerisStore:

Collaboration graph
[legend]
List of all members.

Detailed Description

Store a tabular list of Xvt data (such as a table of precise ephemeris data in an SP3 file) and compute Xvt from this table.

A Lagrange interpolation is used to compute the Xvt for times that are not in the table but do have sufficient data.

Definition at line 67 of file TabularEphemerisStore.hpp.

Public Member Functions

 TabularEphemerisStore () throw ()
 Default constructor.
virtual ~TabularEphemerisStore ()
 Destructor.
virtual Xvt getXvt (const SatID id, const DayTime &t) const throw (InvalidRequest)
 Returns the position, velocity, and clock offset of the indicated object in ECEF coordinates (meters) at the indicated time.
virtual Triple getAccel (const SatID id, const DayTime &t) const throw (InvalidRequest)
 Returns the acceleration of the indicated object in ECEF coordinates (meters) at the indicated time.
virtual void dump (std::ostream &s=std::cout, short detail=0) const throw ()
 A debugging function that outputs in human readable form, all data stored in this object.
virtual void edit (const DayTime &tmin, const DayTime &tmax=DayTime(DayTime::END_OF_TIME)) throw ()
 Edit the dataset, removing data outside the indicated time interval.
virtual DayTime getInitialTime () const throw (InvalidRequest)
 Determine the earliest time for which this object can successfully determine the Xvt for any object.
virtual DayTime getFinalTime () const throw (InvalidRequest)
 Determine the latest time for which this object can successfully determine the Xvt for any object.
virtual bool velocityIsPresent () const throw ()
 Check if this ephemeris contains velocity information in all datasets loaded.
virtual bool clockIsPresent () const throw ()
 Check if this ephemeris contains clock information.
int nsats (void) throw ()
 Get number of satellite maps.
int neph (void) throw ()
 Get total number of ephemerides, all sats.
void addEphemeris (const SP3Data &data) throw ()
 Insert a new SP3Data object into the store.
void clear () throw ()
 Remove all data.
void enableDataGapCheck (void)
 Enable checking of data gaps.
void disableDataGapCheck (void)
 Disable checking of data gaps.
double getGapInterval (void)
 Get current gap interval.
void setGapInterval (double interval)
 Set gap interval.
void enableIntervalCheck (void)
 Enable checking of maximum interval.
void disableIntervalCheck (void)
 Disable checking of maximum interval.
double getMaxInterval (void)
 Get current maximum interval.
void setMaxInterval (double interval)
 Set maximum interval.

Protected Types

typedef std::map< DayTime,
Xvt
SvEphMap
 The key to this map is the time.
typedef std::map< SatID, SvEphMapEphMap
 The key to this map is the svid of the satellite (usually the prn).

Protected Attributes

bool haveVelocity
 Flag indicating that velocity data present in all datasets loaded.
EphMap pe
 the map of SVs and XVTs
DayTime initialTime
 These give the overall span of time for which this object contains data.
DayTime finalTime
 These give the overall span of time for which this object contains data.
bool checkDataGap
 Flag to check for data gaps.
double gapInterval
 Maximum interval of time (in seconds) to declare a data gap.
bool checkInterval
 Flag to check for interpolation interval.
double maxInterval
 Maximum interval of time (in seconds) allowed to carry out the interpolation process.


Member Typedef Documentation

typedef std::map<SatID, SvEphMap> EphMap [protected]
 

The key to this map is the svid of the satellite (usually the prn).

Definition at line 260 of file TabularEphemerisStore.hpp.

typedef std::map<DayTime, Xvt> SvEphMap [protected]
 

The key to this map is the time.

Definition at line 256 of file TabularEphemerisStore.hpp.


Constructor & Destructor Documentation

TabularEphemerisStore  )  throw () [inline]
 

Default constructor.

Definition at line 72 of file TabularEphemerisStore.hpp.

virtual ~TabularEphemerisStore  )  [inline, virtual]
 

Destructor.

Definition at line 81 of file TabularEphemerisStore.hpp.


Member Function Documentation

void addEphemeris const SP3Data data  )  throw ()
 

Insert a new SP3Data object into the store.

Definition at line 470 of file TabularEphemerisStore.cpp.

References Xvt::ddtime, Xvt::dtime, Xvt::v, and Xvt::x.

void clear  )  throw ()
 

Remove all data.

Definition at line 154 of file TabularEphemerisStore.cpp.

References TabularEphemerisStore::finalTime, TabularEphemerisStore::initialTime, and TabularEphemerisStore::pe.

virtual bool clockIsPresent  )  const throw () [inline, virtual]
 

Check if this ephemeris contains clock information.

Implements XvtStore< SatID >.

Definition at line 173 of file TabularEphemerisStore.hpp.

void disableDataGapCheck void   )  [inline]
 

Disable checking of data gaps.

Definition at line 211 of file TabularEphemerisStore.hpp.

void disableIntervalCheck void   )  [inline]
 

Disable checking of maximum interval.

Definition at line 231 of file TabularEphemerisStore.hpp.

void dump std::ostream &  s = std::cout,
short  detail = 0
const throw () [virtual]
 

A debugging function that outputs in human readable form, all data stored in this object.

Parameters:
[in] s the stream to receive the output; defaults to cout
[in] detail the level of detail to provide

Reimplemented from XvtStore< SatID >.

Reimplemented in SP3EphemerisStore.

Definition at line 64 of file TabularEphemerisStore.cpp.

void edit const DayTime tmin,
const DayTime tmax = DayTime(DayTime::END_OF_TIME)
throw () [virtual]
 

Edit the dataset, removing data outside the indicated time interval.

Parameters:
[in] tmin defines the beginning of the time interval
[in] tmax defines the end of the time interval

Implements XvtStore< SatID >.

Definition at line 120 of file TabularEphemerisStore.cpp.

void enableDataGapCheck void   )  [inline]
 

Enable checking of data gaps.

Definition at line 206 of file TabularEphemerisStore.hpp.

void enableIntervalCheck void   )  [inline]
 

Enable checking of maximum interval.

Definition at line 226 of file TabularEphemerisStore.hpp.

Triple getAccel const SatID  id,
const DayTime t
const throw (InvalidRequest) [virtual]
 

Returns the acceleration of the indicated object in ECEF coordinates (meters) at the indicated time.

Parameters:
[in] id the object's identifier
[in] t the time to look up
Returns:
the Triple holding the acceleration of the object at the indicated time
Exceptions:
InvalidRequest If the request can not be completed for any reason, this is thrown. The text may have additional information as to why the request failed.

Definition at line 353 of file TabularEphemerisStore.cpp.

References gpstk::abs(), gpstk::StringUtils::asString(), GPSTK_THROW, and gpstk::LagrangeInterpolating2ndDerivative().

virtual DayTime getFinalTime  )  const throw (InvalidRequest) [inline, virtual]
 

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

Returns:
The final time
Exceptions:
InvalidRequest This is thrown if the object has no data.

Implements XvtStore< SatID >.

Definition at line 160 of file TabularEphemerisStore.hpp.

double getGapInterval void   )  [inline]
 

Get current gap interval.

Definition at line 216 of file TabularEphemerisStore.hpp.

virtual DayTime getInitialTime  )  const throw (InvalidRequest) [inline, virtual]
 

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

Returns:
The initial time
Exceptions:
InvalidRequest This is thrown if the object has no data.

Implements XvtStore< SatID >.

Definition at line 148 of file TabularEphemerisStore.hpp.

double getMaxInterval void   )  [inline]
 

Get current maximum interval.

Definition at line 236 of file TabularEphemerisStore.hpp.

Xvt getXvt const SatID  id,
const DayTime t
const throw (InvalidRequest) [virtual]
 

Returns the position, velocity, and clock offset of the indicated object in ECEF coordinates (meters) at the indicated time.

Parameters:
[in] id the object's identifier
[in] t the time to look up
Returns:
the Xvt of the object at the indicated time
Exceptions:
InvalidRequest If the request can not be completed for any reason, this is thrown. The text may have additional information as to why the request failed.

Implements XvtStore< SatID >.

Definition at line 178 of file TabularEphemerisStore.cpp.

References gpstk::abs(), gpstk::StringUtils::asString(), Xvt::ddtime, Xvt::dtime, GPSTK_THROW, gpstk::LagrangeInterpolation(), DayTime::second(), Xvt::v, and Xvt::x.

Referenced by ComputeIURAWeights::getWeight(), and main().

int neph void   )  throw () [inline]
 

Get total number of ephemerides, all sats.

Reimplemented in SP3EphemerisStore.

Definition at line 181 of file TabularEphemerisStore.hpp.

int nsats void   )  throw () [inline]
 

Get number of satellite maps.

Reimplemented in SP3EphemerisStore.

Definition at line 178 of file TabularEphemerisStore.hpp.

void setGapInterval double  interval  )  [inline]
 

Set gap interval.

Definition at line 221 of file TabularEphemerisStore.hpp.

void setMaxInterval double  interval  )  [inline]
 

Set maximum interval.

Definition at line 241 of file TabularEphemerisStore.hpp.

virtual bool velocityIsPresent  )  const throw () [inline, virtual]
 

Check if this ephemeris contains velocity information in all datasets loaded.

Implements XvtStore< SatID >.

Definition at line 167 of file TabularEphemerisStore.hpp.


Member Data Documentation

bool checkDataGap [protected]
 

Flag to check for data gaps.

If this flag is enabled, data gaps wider than "gapInterval" will generate an "InvalidRequest" exception when using method "getXvt()".

This flag is disabled by default.

Definition at line 282 of file TabularEphemerisStore.hpp.

bool checkInterval [protected]
 

Flag to check for interpolation interval.

If this flag is enabled, interpolation intervals wider than "maxInterval" will generate an "InvalidRequest" exception when using method "getXvt()".

This flag is disabled by default.

Definition at line 305 of file TabularEphemerisStore.hpp.

DayTime finalTime [protected]
 

These give the overall span of time for which this object contains data.

NB there may be gaps in the data, i.e. the data may not be continuous.

Definition at line 272 of file TabularEphemerisStore.hpp.

Referenced by TabularEphemerisStore::clear().

double gapInterval [protected]
 

Maximum interval of time (in seconds) to declare a data gap.

Recommended value is (SP3 sample period) + 1, in seconds, which means 900 s + 1 s = 901 s for a typical 15-minutes-per-sample SP3 file.

This field is useful only if "checkDataGap" is enabled. Use method "enableDataGapCheck()" for this.

Definition at line 294 of file TabularEphemerisStore.hpp.

bool haveVelocity [protected]
 

Flag indicating that velocity data present in all datasets loaded.

Definition at line 249 of file TabularEphemerisStore.hpp.

DayTime initialTime [protected]
 

These give the overall span of time for which this object contains data.

NB there may be gaps in the data, i.e. the data may not be continuous.

Definition at line 272 of file TabularEphemerisStore.hpp.

Referenced by TabularEphemerisStore::clear().

double maxInterval [protected]
 

Maximum interval of time (in seconds) allowed to carry out the interpolation process.

Recommended value is (10 - 1) * (SP3 sample period) + 5, in seconds, which means 8100 s + 5 s = 8105 s for a typical 15-minutes-per-sample SP3 file (please note that the order of the Lagrange interpolation is usually 10).

This field is useful only if "checkInterval" is enabled. Use method "enableIntervalCheck()" for this.

Definition at line 319 of file TabularEphemerisStore.hpp.

EphMap pe [protected]
 

the map of SVs and XVTs

Definition at line 264 of file TabularEphemerisStore.hpp.

Referenced by TabularEphemerisStore::clear().


The documentation for this class was generated from the following files:
Generated on Thu Feb 9 03:31:42 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1