Class containing data elements unique to NeQuick ionospheric model. Design criteria:
References: [galileo:iono] [itur:iono]
Definition at line 81 of file NeQuickIonoNavData.hpp.
#include <NeQuickIonoNavData.hpp>
Classes | |
class | IntegrationParameters |
Class to contain data used when integrating TEC. More... | |
class | ModelParameters |
Aggregate the model parameters as defined in section 2.5.5. More... | |
Public Member Functions | |
void | dump (std::ostream &s, DumpDetail dl) const override |
double | getIonoCorr (const CommonTime &when, const Position &rxgeo, const Position &svgeo, CarrierBand band) const override |
double | getTEC (const CommonTime &when, const Position &rxgeo, const Position &svgeo) const |
NeQuickIonoNavData () | |
Initialize internal data. More... | |
bool | validate () const override |
![]() | |
std::list< std::string > | compare (const NavDataPtr &right) const override |
IonoNavData () | |
Set the messageType. More... | |
bool | isSameData (const NavDataPtr &right) const override |
virtual | ~IonoNavData () |
Obligatory virtual destructor. More... | |
![]() | |
virtual NavDataPtr | clone () const =0 |
Create a deep copy of this object, whatever it truly is. More... | |
virtual std::string | getClassName () const |
std::string | getDumpTime (DumpDetail dl, const CommonTime &t) const |
std::string | getDumpTimeHdr (DumpDetail dl) const |
virtual CommonTime | getNearTime () const |
std::string | getSignalString () const |
bool | getSVN (const SatID &sat, const gnsstk::CommonTime &when, std::string &svn) const |
virtual CommonTime | getUserTime () const |
NavData () | |
Initialize internal data fields. More... | |
Static Public Member Functions | |
static double | neExp (double x) |
![]() | |
static gnsstk::SatMetaDataStore * | getSatMetaDataStore () |
Accessor for python. More... | |
static void | setSatMetaDataStore (gnsstk::SatMetaDataStore *smds) |
Accessor for python. More... | |
Public Attributes | |
double | ai [3] |
bool | idf [5] |
Ionospheric disturbance flag for regions 1-5 (0-4). More... | |
![]() | |
NavMessageID | signal |
Source signal identification for this navigation message data. More... | |
CommonTime | timeStamp |
std::string | weekFmt |
Protected Member Functions | |
double | getEffIonoLevel (double modip_u) const |
double | getSED (double dist, const Position &rxgeo, const Position &svgeo, const MODIP &modip, CCIR &ccirData, const CivilTime &when, double azu) const |
double | getVED (double dist, const Position &rxgeo, const Position &svgeo, double modip_u, CCIR &ccirData, const CivilTime &when, double azu) const |
double | integrateGaussKronrod (double heightPt1, double heightPt2, const Position &rxgeo, const Position &svgeo, const MODIP &modip, double modipSta, CCIR &ccirData, const CivilTime &when, double azu, double tolerance, bool vertical, unsigned recursionLevel=0) const |
Protected Attributes | |
GalileoIonoEllipsoid | elModel |
![]() | |
double | msgLenSec |
Static Private Attributes | |
static constexpr double | DEGREE_PER_HOUR = 15.0 |
Number of degrees longitude per hour. More... | |
Friends | |
class | ::NeQuickIonoNavData_T |
Additional Inherited Members | |
![]() | |
static const GNSSTK_EXPORT std::string | dumpTimeFmt |
Time format used for the dump method (Full). More... | |
static const GNSSTK_EXPORT std::string | dumpTimeFmtBrief |
Time format used for the dump method (Brief). More... | |
static GNSSTK_EXPORT gnsstk::SatMetaDataStore * | satMetaDataStore = nullptr |
Set this to a valid store to get PRN->SVN translations in dump(). More... | |
gnsstk::NeQuickIonoNavData::NeQuickIonoNavData | ( | ) |
Initialize internal data.
Definition at line 121 of file NeQuickIonoNavData.cpp.
|
overridevirtual |
Print the contents of this NeQuickIonoNavData object in a human-readable format.
[in,out] | s | The stream to write the data to. |
[in] | dl | The level of detail the output should contain. |
Reimplemented from gnsstk::NavData.
Definition at line 129 of file NeQuickIonoNavData.cpp.
|
protected |
[in] | modip_u | Modified dip latitude of observer. |
Definition at line 263 of file NeQuickIonoNavData.cpp.
|
overridevirtual |
Get the ionospheric correction in meters.
[in] | when | The time of the observation to correct. |
[in] | rxgeo | The receiver's geodetic position. |
[in] | svgeo | The observed satellite's geodetic position. |
[in] | band | The carrier band of the signal being corrected. |
Implements gnsstk::IonoNavData.
Definition at line 183 of file NeQuickIonoNavData.cpp.
|
protected |
Get the electron density at a distance along a path where svgeo is not directly overhead rxgeo.
[in] | dist | The height above the ellipsoid in km at which to get the electron density. |
[in] | rxgeo | The position of the GNSS receiver's antenna. |
[in] | svgeo | The position of the transmitting satellite. |
[in] | modip | A pre-constructed MODIP object to use. |
[in] | ccirData | A pre-constructed CCIR object to use. |
[in] | when | The time when the RF signal was received. |
[in] | azu | Effective ionization level, in solar flux units, at the modified dip latitude of the receiver. |
Definition at line 285 of file NeQuickIonoNavData.cpp.
double gnsstk::NeQuickIonoNavData::getTEC | ( | const CommonTime & | when, |
const Position & | rxgeo, | ||
const Position & | svgeo | ||
) | const |
Get the total electron content between rxgeo and svgeo at the given time.
[in] | when | The time when the RF signal was received. |
[in] | rxgeo | The position of the GNSS receiver's antenna. |
[in] | svgeo | The position of the transmitting satellite. |
Definition at line 198 of file NeQuickIonoNavData.cpp.
|
protected |
Get the electron density at a distance along a path where svgeo is directly overhead rxgeo.
[in] | dist | The height above the ellipsoid in km at which to get the electron density. |
[in] | rxgeo | The position of the GNSS receiver's antenna. |
[in] | svgeo | The position of the transmitting satellite. |
[in] | modip_u | The modified dip latitude in degrees for rxgeo. |
[in] | ccirData | A pre-constructed CCIR object to use. |
[in] | when | The time when the RF signal was received. |
[in] | azu | Effective ionization level, in solar flux units, at the modified dip latitude of the receiver. |
Definition at line 304 of file NeQuickIonoNavData.cpp.
|
protected |
Perform Gauss-Kronrod integration of the TEC along the ray between rxgeo and svgeo from heightPt1 to heightPt2.
[in] | heightPt1 | The height above the ellipsoid at which integration should start. |
[in] | heightPt2 | The height above the ellipsoid at which integration should end. |
[in] | rxgeo | The position of the GNSS receiver's antenna. |
[in] | svgeo | The position of the transmitting satellite. |
[in] | modip | A pre-constructed MODIP object to use. |
[in] | modipSta | The modified dip latitude in degrees for rxgeo. |
[in] | ccirData | A pre-constructed CCIR object to use. |
[in] | when | The time when the RF signal was received. |
[in] | azu | Effective ionization level, in solar flux units, at the modified dip latitude of the receiver. |
[in] | tolerance | If the delta between K15 and G7 integration results is less than this number, integration will complete. |
[in] | vertical | If true, svgeo is directly overhead rxgeo and integration is simplified. |
[in] | recursionLevel | integrateGaussKronrod will recurse if the results are not within tolerance, up to RecursionMax (defined in cpp file) times. |
Definition at line 913 of file NeQuickIonoNavData.cpp.
|
static |
Similar to standard exp() function, but with the exponent clipped to +/- 80, per F2.1.2.3 [galileo:iono]
[in] | x | The exponent to raise e to. |
Definition at line 322 of file NeQuickIonoNavData.cpp.
|
inlineoverridevirtual |
Checks the contents of this message against known validity rules as defined in the appropriate ICD.
Implements gnsstk::NavData.
Definition at line 92 of file NeQuickIonoNavData.hpp.
|
friend |
Definition at line 400 of file NeQuickIonoNavData.hpp.
double gnsstk::NeQuickIonoNavData::ai[3] |
ai terms of NeQuick model in solar flux units, solar flux units/degree, solar flux units/degree2. Refer to Galileo-OS-SIS-ICD.
Definition at line 125 of file NeQuickIonoNavData.hpp.
|
staticconstexprprivate |
Number of degrees longitude per hour.
Definition at line 398 of file NeQuickIonoNavData.hpp.
|
protected |
Galileo ellipsoid model for ionospheric modeling. This is as defined in galileo:iono.
Definition at line 394 of file NeQuickIonoNavData.hpp.
bool gnsstk::NeQuickIonoNavData::idf[5] |
Ionospheric disturbance flag for regions 1-5 (0-4).
Definition at line 132 of file NeQuickIonoNavData.hpp.