Public Member Functions | Static Public Member Functions | Public Attributes | Private Member Functions | Friends | List of all members
gnsstk::NeQuickIonoNavData::ModelParameters Class Reference

Detailed Description

Aggregate the model parameters as defined in section 2.5.5.

Definition at line 154 of file NeQuickIonoNavData.hpp.

#include <NeQuickIonoNavData.hpp>

Public Member Functions

double electronDensity (const Position &pos)
 
double electronDensityBottom (const Position &pos)
 
double electronDensityTop (const Position &pos)
 
void exosphereAdjust (unsigned month)
 
void height ()
 
void legendre (double modip_u, const Position &pos)
 
 ModelParameters (double modip_u, const Position &pos, double az, CCIR &ccirData, const CivilTime &when)
 
void peakAmplitudes ()
 
void thickness ()
 

Static Public Member Functions

static Angle effSolarZenithAngle (const Position &pos, const CivilTime &when)
 
static double epstein (double x, double y, double z, double w)
 
static AngleReduced solarDeclination (const CivilTime &when)
 
static double solarGetLongitude (const CivilTime &when)
 
static Angle solarZenithAngle (const Position &pos, const CivilTime &when)
 

Public Attributes

CCIRccir
 Reference to iono model data. More...
 
double fA [3]
 F2, F1, E layer peak amplitudes. More...
 
double fAzr
 Effective sunspot number. More...
 
double fB1bot
 F1 layer bottom-side thickness parameter in km. More...
 
double fB1top
 F1 layer top-side thickness parameter in km. More...
 
double fB2bot
 F2 layer bottom-side thickness parameter in km. More...
 
double fBEtop
 E layer top-side thickness parameter in km. More...
 
double ffoE
 E layer critical frequency in MHz. More...
 
double ffoF1
 F1 layer critical frequency in MHz. More...
 
double ffoF2
 F2 layer critical frequency in MHz. More...
 
double fH0
 Top-side thickness parameter in km. More...
 
double fhmF1
 F1 layer maximum density height in km. More...
 
double fhmF2
 F2 layer maximum density height in km. More...
 
double fM3000F2
 F2 layer transmission factor. More...
 
double fNmE
 E layer maximum electron density in el m**-2. More...
 
double fNmF1
 F1 layer maximum electron density in el m**-2. More...
 
double fNmF2
 F2 layer maximum electron density in el m**-2. More...
 
Angle fXeff
 Effective solar zenith angle. More...
 

Private Member Functions

 ModelParameters (CCIR &ccirData)
 Constructor for testing only. More...
 

Friends

class ::NeQuickIonoNavData_T
 

Constructor & Destructor Documentation

◆ ModelParameters() [1/2]

gnsstk::NeQuickIonoNavData::ModelParameters::ModelParameters ( double  modip_u,
const Position pos,
double  az,
CCIR ccirData,
const CivilTime when 
)

Compute the various NeQuickG model parameters.

Parameters
[in]modip_uModified dip latitude in degrees.
[in]posThe geodetic position of the observer.
[in]azThe effective ionization level in solar flux units (NOT azimuth).
[in]ccirDataA CCIR object to be used for looking up ionospheric model data.
[in]whenThe time of the observation being modeled (month and hour of day are used).
Postcondition
fAzr, ffoE, fNmE, ffoF1, fNmF1, fNmF2 are set.
Todo:
figure out what is meant by "too close to foF2" in eq.37

Definition at line 337 of file NeQuickIonoNavData.cpp.

◆ ModelParameters() [2/2]

gnsstk::NeQuickIonoNavData::ModelParameters::ModelParameters ( CCIR ccirData)
private

Constructor for testing only.

Definition at line 425 of file NeQuickIonoNavData.cpp.

Member Function Documentation

◆ effSolarZenithAngle()

Angle gnsstk::NeQuickIonoNavData::ModelParameters::effSolarZenithAngle ( const Position pos,
const CivilTime when 
)
static

Compute the effective solar zenith angle.

Parameters
[in]posThe geodetic position of the observer.
[in]whenThe time at which to compute the solar zenith.
Returns
The effective solar zenith angle.

Definition at line 490 of file NeQuickIonoNavData.cpp.

◆ electronDensity()

double gnsstk::NeQuickIonoNavData::ModelParameters::electronDensity ( const Position pos)

Compute electron density.

Precondition
fhmF2, fH0, fNmF2, fBEtop, fhmF1, fB1top, fB1bot, fB2bot, fA must be set.
Parameters
[in]posThe position at which to compute electron density.
Returns
The electron density in TECU.

Definition at line 724 of file NeQuickIonoNavData.cpp.

◆ electronDensityBottom()

double gnsstk::NeQuickIonoNavData::ModelParameters::electronDensityBottom ( const Position pos)

Compute the bottomside electron density.

Precondition
fBEtop, fhmF1, fB1top, fB1bot, fhmF2, fB2bot, fA must be set.
Parameters
[in]posThe position at which to compute electron density.
Returns
The electron density in TECU.

Definition at line 766 of file NeQuickIonoNavData.cpp.

◆ electronDensityTop()

double gnsstk::NeQuickIonoNavData::ModelParameters::electronDensityTop ( const Position pos)

Compute the topside electron density.

Precondition
fhmF2, fH0, fNmF2 must be set.
Parameters
[in]posThe position at which to compute electron density.
Returns
The electron density in TECU.

Definition at line 743 of file NeQuickIonoNavData.cpp.

◆ epstein()

double gnsstk::NeQuickIonoNavData::ModelParameters::epstein ( double  x,
double  y,
double  z,
double  w 
)
inlinestatic

Epstein function per 2.5.1.

Parameters
[in]xpeak amplitude.
[in]ypeak height.
[in]zthickness around the peak.
[in]wheight-dependent variable.
Returns
The results of the Epstein single-layer topside analytical description of the ionospheric model.

Definition at line 404 of file NeQuickIonoNavData.hpp.

◆ exosphereAdjust()

void gnsstk::NeQuickIonoNavData::ModelParameters::exosphereAdjust ( unsigned  month)

Compute the top-side thickness parameter.

Precondition
fAzr, fhmF2, fB2bot, fNmF2 must be set.
Parameters
[in]monthMonth 1-12 for ionospheric model.
Postcondition
fH0 is set.

Definition at line 636 of file NeQuickIonoNavData.cpp.

◆ height()

void gnsstk::NeQuickIonoNavData::ModelParameters::height ( )

Compute hmF2 and hmF1 (maximum density height).

Precondition
ffoE, ffoF2, fM3000F2 must be set.
Postcondition
fhmF2 and fhmF1 are set.

Definition at line 603 of file NeQuickIonoNavData.cpp.

◆ legendre()

void gnsstk::NeQuickIonoNavData::ModelParameters::legendre ( double  modip_u,
const Position pos 
)

Compute foF2 and M(3000)F2 by Legendre calculation.

Parameters
[in]modip_uModified dip latitude in degrees.
[in]posThe geodetic position of the observer.
Postcondition
ffoF2, fM3000F2 are set.

Definition at line 503 of file NeQuickIonoNavData.cpp.

◆ peakAmplitudes()

void gnsstk::NeQuickIonoNavData::ModelParameters::peakAmplitudes ( )

Compute peak amplitudes.

Precondition
fNmE, fNmF1, fhmF1, fNmF2, fhmF2, fBEtop, fB1bot, fB2bot, ffoF1 must be set.
Postcondition
fA1, fA2, fA3 are set.

Definition at line 682 of file NeQuickIonoNavData.cpp.

◆ solarDeclination()

AngleReduced gnsstk::NeQuickIonoNavData::ModelParameters::solarDeclination ( const CivilTime when)
static

Compute the sine and cosine of the solar declination. (sec 2.5.4.6)

Parameters
[in]whenThe time at which to compute the solar declination.
Returns
The sine and cosine of the solar declination.

Definition at line 452 of file NeQuickIonoNavData.cpp.

◆ solarGetLongitude()

double gnsstk::NeQuickIonoNavData::ModelParameters::solarGetLongitude ( const CivilTime when)
inlinestatic

Using a formula akin to Eq.4, return a longitude from the given time.

Note
This function is implemented to match the NeQuickG C library, though its use in Eq.59 and Eq.60 is not well documented (One is likely to infer that the lambda in galileo:iono refers to the current integration position). It's not entirely clear what this is, but at a guess I'd say it's a rough longitude of the overhead sun.
Parameters
[in]whenThe time at which to derive a longitude.
Returns
the solar longitude in radians.

Definition at line 418 of file NeQuickIonoNavData.hpp.

◆ solarZenithAngle()

Angle gnsstk::NeQuickIonoNavData::ModelParameters::solarZenithAngle ( const Position pos,
const CivilTime when 
)
static

Compute the solar zenith angle.

Parameters
[in]posThe geodetic position of the observer.
[in]whenThe time at which to compute the solar zenith.
Returns
The solar zenith angle.

Definition at line 474 of file NeQuickIonoNavData.cpp.

◆ thickness()

void gnsstk::NeQuickIonoNavData::ModelParameters::thickness ( )

Compute thickness parameters.

Precondition
fNmF2, ffoF2, fM3000F2, fhmF1, fhmF2 must be set.
Postcondition
fB2bot, fB1top, fB1bot, fBEtop are set.

Definition at line 622 of file NeQuickIonoNavData.cpp.

Friends And Related Function Documentation

◆ ::NeQuickIonoNavData_T

friend class ::NeQuickIonoNavData_T
friend

Definition at line 287 of file NeQuickIonoNavData.hpp.

Member Data Documentation

◆ ccir

CCIR& gnsstk::NeQuickIonoNavData::ModelParameters::ccir

Reference to iono model data.

Definition at line 263 of file NeQuickIonoNavData.hpp.

◆ fA

double gnsstk::NeQuickIonoNavData::ModelParameters::fA[3]

F2, F1, E layer peak amplitudes.

Definition at line 268 of file NeQuickIonoNavData.hpp.

◆ fAzr

double gnsstk::NeQuickIonoNavData::ModelParameters::fAzr

Effective sunspot number.

Definition at line 264 of file NeQuickIonoNavData.hpp.

◆ fB1bot

double gnsstk::NeQuickIonoNavData::ModelParameters::fB1bot

F1 layer bottom-side thickness parameter in km.

Definition at line 274 of file NeQuickIonoNavData.hpp.

◆ fB1top

double gnsstk::NeQuickIonoNavData::ModelParameters::fB1top

F1 layer top-side thickness parameter in km.

Definition at line 273 of file NeQuickIonoNavData.hpp.

◆ fB2bot

double gnsstk::NeQuickIonoNavData::ModelParameters::fB2bot

F2 layer bottom-side thickness parameter in km.

Definition at line 278 of file NeQuickIonoNavData.hpp.

◆ fBEtop

double gnsstk::NeQuickIonoNavData::ModelParameters::fBEtop

E layer top-side thickness parameter in km.

Definition at line 267 of file NeQuickIonoNavData.hpp.

◆ ffoE

double gnsstk::NeQuickIonoNavData::ModelParameters::ffoE

E layer critical frequency in MHz.

Definition at line 265 of file NeQuickIonoNavData.hpp.

◆ ffoF1

double gnsstk::NeQuickIonoNavData::ModelParameters::ffoF1

F1 layer critical frequency in MHz.

Definition at line 270 of file NeQuickIonoNavData.hpp.

◆ ffoF2

double gnsstk::NeQuickIonoNavData::ModelParameters::ffoF2

F2 layer critical frequency in MHz.

Definition at line 275 of file NeQuickIonoNavData.hpp.

◆ fH0

double gnsstk::NeQuickIonoNavData::ModelParameters::fH0

Top-side thickness parameter in km.

Definition at line 280 of file NeQuickIonoNavData.hpp.

◆ fhmF1

double gnsstk::NeQuickIonoNavData::ModelParameters::fhmF1

F1 layer maximum density height in km.

Definition at line 272 of file NeQuickIonoNavData.hpp.

◆ fhmF2

double gnsstk::NeQuickIonoNavData::ModelParameters::fhmF2

F2 layer maximum density height in km.

Definition at line 277 of file NeQuickIonoNavData.hpp.

◆ fM3000F2

double gnsstk::NeQuickIonoNavData::ModelParameters::fM3000F2

F2 layer transmission factor.

Definition at line 279 of file NeQuickIonoNavData.hpp.

◆ fNmE

double gnsstk::NeQuickIonoNavData::ModelParameters::fNmE

E layer maximum electron density in el m**-2.

Definition at line 266 of file NeQuickIonoNavData.hpp.

◆ fNmF1

double gnsstk::NeQuickIonoNavData::ModelParameters::fNmF1

F1 layer maximum electron density in el m**-2.

Definition at line 271 of file NeQuickIonoNavData.hpp.

◆ fNmF2

double gnsstk::NeQuickIonoNavData::ModelParameters::fNmF2

F2 layer maximum electron density in el m**-2.

Definition at line 276 of file NeQuickIonoNavData.hpp.

◆ fXeff

Angle gnsstk::NeQuickIonoNavData::ModelParameters::fXeff

Effective solar zenith angle.

Definition at line 281 of file NeQuickIonoNavData.hpp.


The documentation for this class was generated from the following files:


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