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.
Definition at line 80 of file IonexStore.hpp.
#include <IonexStore.hpp>
Public Member Functions | |
void | addMap (const IonexData &iod) |
Insert a new IonexData object into the store. More... | |
void | clear () |
Remove all data. More... | |
void | dump (std::ostream &s=std::cout, short detail=0) const |
double | findDCB (const SatID &sat, const CommonTime &time) const |
CommonTime | getFinalTime () const |
CommonTime | getInitialTime () const |
Triple | getIonexValue (const CommonTime &t, const Position &RX, IonexStoreStrategy strategy=IonexStoreStrategy::ConsRot) const |
double | getIono (double elevation, double tecval, double freq, const std::string &ionoMapType) const |
double | getIonoL1 (double elevation, double tecval, const std::string &ionoMapType) const |
double | getIonoL2 (double elevation, double tecval, const std::string &ionoMapType) const |
double | getIonoL5 (double elevation, double tecval, const std::string &ionoMapType) const |
double | getIonoL6 (double elevation, double tecval, const std::string &ionoMapType) const |
double | getIonoL7 (double elevation, double tecval, const std::string &ionoMapType) const |
double | getIonoL8 (double elevation, double tecval, const std::string &ionoMapType) const |
double | getSTEC (double elevation, double tecval, const std::string &ionoMapType) const |
IonexStore () | |
Default constructor. More... | |
double | ionoMappingFunction (double elevation, const std::string &ionoMapType) const |
virtual void | loadFile (const std::string &filename) |
virtual | ~IonexStore () |
destructor More... | |
![]() | |
void | addFile (const std::string &fn, IonexHeader &header) |
void | clear () noexcept |
Clear the contents of the (filename, header) map. More... | |
void | dump (std::ostream &os=std::cout, short detail=0) const noexcept |
dump a list of file names More... | |
FileStore () noexcept | |
Constructor. More... | |
std::vector< std::string > | getFileNames () const |
Get a list of all the file names in the store, as a vector<string> More... | |
const IonexHeader & | getHeader (const std::string &fn) const |
unsigned | nfiles () const noexcept |
unsigned | size () const noexcept |
Return the size of the (filename,header) map. More... | |
~FileStore () | |
destructor More... | |
Private Types | |
typedef std::map< CommonTime, IonexHeader::SatDCBMap > | IonexDCBMap |
The key of this map is the time (first epoch as in IonexHeader) More... | |
typedef std::map< CommonTime, IonexValTypeMap > | IonexMap |
The key to this map is the time. More... | |
typedef std::map< IonexData::IonexValType, IonexData > | IonexValTypeMap |
The key to this map is IonexValType. More... | |
Private Attributes | |
CommonTime | finalTime |
CommonTime | initialTime |
IonexDCBMap | inxDCBMap |
Map of DCB values (IonexHeader.firstEpoch, IonexHeader.svsmap) More... | |
IonexMap | inxMaps |
Map of IONEX maps. More... | |
|
private |
The key of this map is the time (first epoch as in IonexHeader)
Definition at line 321 of file IonexStore.hpp.
|
private |
The key to this map is the time.
Definition at line 315 of file IonexStore.hpp.
|
private |
The key to this map is IonexValType.
Definition at line 312 of file IonexStore.hpp.
gnsstk::IonexStore::IonexStore | ( | ) |
Default constructor.
Definition at line 60 of file IonexStore.cpp.
|
virtual |
destructor
Definition at line 68 of file IonexStore.cpp.
Insert a new IonexData object into the store.
Definition at line 124 of file IonexStore.cpp.
void gnsstk::IonexStore::clear | ( | ) |
Remove all data.
Definition at line 225 of file IonexStore.cpp.
void gnsstk::IonexStore::dump | ( | std::ostream & | s = std::cout , |
short | detail = 0 |
||
) | const |
Dump the store to the provided std::ostream (std::cout by default).
[in,out] | s | std::ostream object to dump the data to. |
[in] | 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 146 of file IonexStore.cpp.
double gnsstk::IonexStore::findDCB | ( | const SatID & | sat, |
const CommonTime & | time | ||
) | const |
Find a DCB value
[in] | sat | SatID of satellite of interest |
[in] | time | Time to search for DCB |
InvalidRequest | object thrown when no DCB value is found |
Definition at line 499 of file IonexStore.cpp.
|
inline |
Determine the latest time for which this object can successfully determine the TEC values, and implicitly, the ionospheric delay for any object.
InvalidRequest | This is thrown if the object has no data. |
Definition at line 287 of file IonexStore.hpp.
|
inline |
Determine the earliest time for which this object can successfully determine the TEC values, and implicitly, the ionospheric delay for any object.
InvalidRequest | This is thrown if the object has no data. |
Definition at line 276 of file IonexStore.hpp.
Triple gnsstk::IonexStore::getIonexValue | ( | const CommonTime & | t, |
const Position & | RX, | ||
IonexStoreStrategy | strategy = IonexStoreStrategy::ConsRot |
||
) | const |
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()
[in] | t | Time tag of signal (CommonTime object) |
[in] | RX | Receiver position in ECEF cartesian coordinates (meters). |
[in] | strategy | Interpolation strategy. |
InvalidRequest |
Definition at line 236 of file IonexStore.cpp.
double gnsstk::IonexStore::getIono | ( | double | elevation, |
double | tecval, | ||
double | freq, | ||
const std::string & | ionoMapType | ||
) | const |
Get ionospheric slant delay for a given frequency
[in] | elevation | Time tag of signal (CommonTime object) |
[in] | tecval | TEC value as derived from IONEX file (TECU) |
[in] | freq | Frequency value, in Hz |
[in] | ionoMapType | Type of ionosphere mapping function (string) |
InvalidParameter |
Definition at line 415 of file IonexStore.cpp.
|
inline |
Get ionospheric slant delay for L1 frequency
[in] | elevation | Time tag of signal (CommonTime object) |
[in] | tecval | TEC value as derived from IONEX file (TECU) |
[in] | ionoMapType | Type of ionosphere mapping function (string) |
InvalidParameter |
Definition at line 176 of file IonexStore.hpp.
|
inline |
Get ionospheric slant delay for L2 frequency
[in] | elevation | Time tag of signal (CommonTime object) |
[in] | tecval | TEC value as derived from IONEX file (TECU) |
[in] | ionoMapType | Type of ionosphere mapping function (string) |
InvalidParameter |
Definition at line 190 of file IonexStore.hpp.
|
inline |
Get ionospheric slant delay for L5 frequency
[in] | elevation | Time tag of signal (CommonTime object) |
[in] | tecval | TEC value as derived from IONEX file (TECU) |
[in] | ionoMapType | Type of ionosphere mapping function (string) |
InvalidParameter |
Definition at line 204 of file IonexStore.hpp.
|
inline |
Get ionospheric slant delay for L6 frequency
[in] | elevation | Time tag of signal (CommonTime object) |
[in] | tecval | TEC value as derived from IONEX file (TECU) |
[in] | ionoMapType | Type of ionosphere mapping function (string) |
InvalidParameter |
Definition at line 218 of file IonexStore.hpp.
|
inline |
Get ionospheric slant delay for L7 frequency
[in] | elevation | Time tag of signal (CommonTime object) |
[in] | tecval | TEC value as derived from IONEX file (TECU) |
[in] | ionoMapType | Type of ionosphere mapping function (string) |
InvalidParameter |
Definition at line 232 of file IonexStore.hpp.
|
inline |
Get ionospheric slant delay for L8 frequency
[in] | elevation | Time tag of signal (CommonTime object) |
[in] | tecval | TEC value as derived from IONEX file (TECU) |
[in] | ionoMapType | Type of ionosphere mapping function (string) |
InvalidParameter |
Definition at line 246 of file IonexStore.hpp.
double gnsstk::IonexStore::getSTEC | ( | double | elevation, |
double | tecval, | ||
const std::string & | ionoMapType | ||
) | const |
Get slant total electron content (STEC) in TECU
[in] | elevation | Time tag of signal (CommonTime object) |
[in] | tecval | TEC value as derived from IONEX file (TECU) |
[in] | ionoMapType | Type of ionosphere mapping function (string) |
InvalidParameter |
Definition at line 386 of file IonexStore.cpp.
double gnsstk::IonexStore::ionoMappingFunction | ( | double | elevation, |
const std::string & | ionoMapType | ||
) | const |
Ionosphere mapping function
[in] | elevation | Elevation of satellite as seen at receiver (degrees). |
[in] | 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
Definition at line 446 of file IonexStore.cpp.
|
virtual |
Load the given IONEX file
FileMissingException |
Definition at line 75 of file IonexStore.cpp.
|
private |
Definition at line 309 of file IonexStore.hpp.
|
private |
These fields set the overall span of time for which this object contains data.
Definition at line 309 of file IonexStore.hpp.
|
private |
Map of DCB values (IonexHeader.firstEpoch, IonexHeader.svsmap)
Definition at line 324 of file IonexStore.hpp.
|
private |
Map of IONEX maps.
Definition at line 318 of file IonexStore.hpp.