IonexStore Class Reference
[IONEX format file I/O]

#include <IonexStore.hpp>

Inheritance diagram for IonexStore:

Inheritance graph
[legend]
Collaboration diagram for IonexStore:

Collaboration graph
[legend]
List of all members.

Detailed Description

This class reads and stores Ionosphere maps.

It computes TEC and RMS values with respect to time and receiver position. Based on extracted TEC values, it calculates the ionospheric delay.

See also:
test ionex store.cpp for an example
Warning:
The first IONEX map refers to 00:00 UT, the last map to 24:00 UT. The time spacing of the maps (snapshots) is 2 hours. When two consecutive files are loaded the previuous map for 24:00 UT is overwritten by the new 00:00 UT. This might affect the interpolation strategy.

Definition at line 66 of file IonexStore.hpp.

Public Member Functions

 IonexStore () throw ()
 Default constructor.
virtual ~IonexStore ()
 destructor
virtual void loadFile (const std::string &filename) throw (FileMissingException)
 Load the given IONEX file.
void addMap (const IonexData &iod) throw ()
 Insert a new IonexData object into the store.
void dump (std::ostream &s=std::cout, short detail=0) const throw ()
 Dump the store to the provided std::ostream (std::cout by default).
void clear () throw ()
 Remove all data.
Triple getIonexValue (const DayTime &t, const Position &RX, int strategy=3) const throw (InvalidRequest)
 Get IONEX TEC, RMS and ionosphere height values as a function of epoch and receiver's position.
double getSTEC (const double &elevation, const double &tecval, const std::string &ionoMapType) const throw (InvalidParameter)
 Get slant total electron content (STEC) in TECU.
double getIono (const double &elevation, const double &tecval, const double &freq, const std::string &ionoMapType) const throw (InvalidParameter)
 Get ionospheric slant delay for a given frequency.
double getIonoL1 (const double &elevation, const double &tecval, const std::string &ionoMapType) const throw (InvalidParameter)
 Get ionospheric slant delay for L1 frequency.
double getIonoL2 (const double &elevation, const double &tecval, const std::string &ionoMapType) const throw (InvalidParameter)
 Get ionospheric slant delay for L2 frequency.
double getIonoL5 (const double &elevation, const double &tecval, const std::string &ionoMapType) const throw (InvalidParameter)
 Get ionospheric slant delay for L5 frequency.
double getIonoL6 (const double &elevation, const double &tecval, const std::string &ionoMapType) const throw (InvalidParameter)
 Get ionospheric slant delay for L6 frequency.
double getIonoL7 (const double &elevation, const double &tecval, const std::string &ionoMapType) const throw (InvalidParameter)
 Get ionospheric slant delay for L7 frequency.
double getIonoL8 (const double &elevation, const double &tecval, const std::string &ionoMapType) const throw (InvalidParameter)
 Get ionospheric slant delay for L8 frequency.
double iono_mapping_function (const double &elevation, const std::string &ionoMapType) const
 Ionosphere mapping function.
DayTime getInitialTime () const throw (InvalidRequest)
 Determine the earliest time for which this object can successfully determine the TEC values, and implicitly, the ionospheric delay for any object.
DayTime getFinalTime () const throw (InvalidRequest)
 Determine the latest time for which this object can successfully determine the TEC values, and implicitly, the ionospheric delay for any object.
double findDCB (const SatID sat, const DayTime &time) const throw (InvalidRequest)
 Find a DCB value.


Constructor & Destructor Documentation

IonexStore  )  throw () [inline]
 

Default constructor.

Definition at line 72 of file IonexStore.hpp.

virtual ~IonexStore  )  [inline, virtual]
 

destructor

Definition at line 80 of file IonexStore.hpp.


Member Function Documentation

void addMap const IonexData iod  )  throw ()
 

Insert a new IonexData object into the store.

Definition at line 105 of file IonexStore.cpp.

void clear  )  throw ()
 

Remove all data.

Definition at line 229 of file IonexStore.cpp.

References IonexHeader::clear().

Referenced by ComputeIonoModel::setIonosphereMap().

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

Dump the store to the provided std::ostream (std::cout by default).

Parameters:
s std::ostream object to dump the data to.
detail Determines how much detail to include in the output: 0 list of filenames with their start and stop times. 1 list of filenames with their start, stop times, type of data and for how many epochs.

Definition at line 138 of file IonexStore.cpp.

double findDCB const SatID  sat,
const DayTime time
const throw (InvalidRequest)
 

Find a DCB value.

Parameters:
sat SatID of satellite of interest
t Time to search for DCB
Returns:
DCB value found (nanoseconds).
Exceptions:
InvalidRequest object thrown when no DCB value is found

Definition at line 613 of file IonexStore.cpp.

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

DayTime getFinalTime  )  const throw (InvalidRequest) [inline]
 

Determine the latest time for which this object can successfully determine the TEC values, and implicitly, the ionospheric delay for any object.

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

Definition at line 311 of file IonexStore.hpp.

DayTime getInitialTime  )  const throw (InvalidRequest) [inline]
 

Determine the earliest time for which this object can successfully determine the TEC values, and implicitly, the ionospheric delay for any object.

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

Definition at line 298 of file IonexStore.hpp.

Triple getIonexValue const DayTime t,
const Position RX,
int  strategy = 3
const throw (InvalidRequest)
 

Get IONEX TEC, RMS and ionosphere height values as a function of epoch and receiver's position.

Four interpolation strategies are suported (see also Ionex manual: http://igscb.jpl.nasa.gov/igscb/data/format/ionex1.pdf )

A simple 4-point formula is applied to interpolate between the grid points. See more at IonexData::getValue()

Parameters:
t Time tag of signal (DayTime object)
RX Receiver position in ECEF cartesian coordinates (meters).
strategy Interpolation strategy (1) take neareast map, (2) interpolate between two consecutive maps, (3) interpolate between two consecutive rotated maps or, (4) take neareast rotated map.
Returns:
values TEC, RMS and ionosphere height values (Triple object with: TEC and RMS in TECU and the ionosphere height in meters)

Definition at line 266 of file IonexStore.cpp.

References Position::getSystemName(), IonexData::getValue(), GPSTK_THROW, and Triple::theArray.

double getIono const double &  elevation,
const double &  tecval,
const double &  freq,
const std::string &  ionoMapType
const throw (InvalidParameter)
 

Get ionospheric slant delay for a given frequency.

Parameters:
elevation Time tag of signal (DayTime object)
tecval TEC value as derived from IONEX file (TECU)
freq Frequency value, in Hz
ionoMapType Type of ionosphere mapping function (string)
See also:
IonexStore::iono_mapping_function
Returns:
Ionosphere slant delay (meters)

Definition at line 491 of file IonexStore.cpp.

References GPSTK_THROW.

double getIonoL1 const double &  elevation,
const double &  tecval,
const std::string &  ionoMapType
const throw (InvalidParameter) [inline]
 

Get ionospheric slant delay for L1 frequency.

Parameters:
elevation Time tag of signal (DayTime object)
tecval TEC value as derived from IONEX file (TECU)
ionoMapType Type of ionosphere mapping function (string)
See also:
IonexStore::iono_mapping_function
Returns:
Ionosphere slant delay (meters)

Definition at line 185 of file IonexStore.hpp.

References gpstk::L1_FREQ.

double getIonoL2 const double &  elevation,
const double &  tecval,
const std::string &  ionoMapType
const throw (InvalidParameter) [inline]
 

Get ionospheric slant delay for L2 frequency.

Parameters:
elevation Time tag of signal (DayTime object)
tecval TEC value as derived from IONEX file (TECU)
ionoMapType Type of ionosphere mapping function (string)
See also:
IonexStore::iono_mapping_function
Returns:
Ionosphere slant delay (meters)

Definition at line 201 of file IonexStore.hpp.

References gpstk::L2_FREQ.

double getIonoL5 const double &  elevation,
const double &  tecval,
const std::string &  ionoMapType
const throw (InvalidParameter) [inline]
 

Get ionospheric slant delay for L5 frequency.

Parameters:
elevation Time tag of signal (DayTime object)
tecval TEC value as derived from IONEX file (TECU)
ionoMapType Type of ionosphere mapping function (string)
See also:
IonexStore::iono_mapping_function
Returns:
Ionosphere slant delay (meters)

Definition at line 217 of file IonexStore.hpp.

References gpstk::L5_FREQ.

double getIonoL6 const double &  elevation,
const double &  tecval,
const std::string &  ionoMapType
const throw (InvalidParameter) [inline]
 

Get ionospheric slant delay for L6 frequency.

Parameters:
elevation Time tag of signal (DayTime object)
tecval TEC value as derived from IONEX file (TECU)
ionoMapType Type of ionosphere mapping function (string)
See also:
IonexStore::iono_mapping_function
Returns:
Ionosphere slant delay (meters)

Definition at line 233 of file IonexStore.hpp.

References gpstk::L6_FREQ.

double getIonoL7 const double &  elevation,
const double &  tecval,
const std::string &  ionoMapType
const throw (InvalidParameter) [inline]
 

Get ionospheric slant delay for L7 frequency.

Parameters:
elevation Time tag of signal (DayTime object)
tecval TEC value as derived from IONEX file (TECU)
ionoMapType Type of ionosphere mapping function (string)
See also:
IonexStore::iono_mapping_function
Returns:
Ionosphere slant delay (meters)

Definition at line 249 of file IonexStore.hpp.

References gpstk::L7_FREQ.

double getIonoL8 const double &  elevation,
const double &  tecval,
const std::string &  ionoMapType
const throw (InvalidParameter) [inline]
 

Get ionospheric slant delay for L8 frequency.

Parameters:
elevation Time tag of signal (DayTime object)
tecval TEC value as derived from IONEX file (TECU)
ionoMapType Type of ionosphere mapping function (string)
See also:
IonexStore::iono_mapping_function
Returns:
Ionosphere slant delay (meters)

Definition at line 265 of file IonexStore.hpp.

References gpstk::L8_FREQ.

double getSTEC const double &  elevation,
const double &  tecval,
const std::string &  ionoMapType
const throw (InvalidParameter)
 

Get slant total electron content (STEC) in TECU.

Parameters:
elevation Time tag of signal (DayTime object)
tecval TEC value as derived from IONEX file (TECU)
ionoMapType Type of ionosphere mapping function (string)
See also:
IonexStore::iono_mapping_function
Returns:
slant total electron content (TECU)

Definition at line 445 of file IonexStore.cpp.

References GPSTK_THROW.

double iono_mapping_function const double &  elevation,
const std::string &  ionoMapType
const
 

Ionosphere mapping function.

Parameters:
elevation Elevation of satellite as seen at receiver (degrees).
ionoMapType Type of ionosphere mapping function (string) (0) NONE no mapping function is applied (1) SLM Single Layer Model (IGS) (2) MSLM Modified Single Layer Model (CODE) (3) ESM Extended Slab Model (JLP)
Details at: http://aiuws.unibe.ch/ionosphere/mslm.pdf

Warning:
No implementation for JPL's mapping function.

Definition at line 543 of file IonexStore.cpp.

References gpstk::asin(), gpstk::cos(), and gpstk::sin().

void loadFile const std::string &  filename  )  throw (FileMissingException) [virtual]
 

Load the given IONEX file.

Implements FileStore< IonexHeader >.

Definition at line 48 of file IonexStore.cpp.

References GPSTK_RETHROW, GPSTK_THROW, IonexData::isValid(), and IonexHeader::svsmap.

Referenced by ComputeIonoModel::setIonosphereMap().


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