Wrap the coefficients for the foF2 and M(3000)F2 models recommended by the Comite' Consultatif International des Radiocommunications (CCIR).
#include <CCIR.hpp>
Public Types | |
enum | CCIRConsts { LowSolarActIdx = 0, HighSolarActIdx = 1, F2SolarActCond = 2, F2MaxDegree = 76, F2MaxOrder = 13, FM3MaxDegree = 49, FM3MaxOrder = 9 } |
Public Member Functions | |
CCIR () | |
void | fourier (const CommonTime &when, double effSunSpots) |
double | getCF2 (unsigned degree) const |
double | getCM3 (unsigned degree) const |
Private Member Functions | |
double | ccir11F2 (int cond, int deg, int ord) |
double | ccir11Fm3 (int cond, int deg, int ord) |
double | ccir12F2 (int cond, int deg, int ord) |
double | ccir12Fm3 (int cond, int deg, int ord) |
double | ccir13F2 (int cond, int deg, int ord) |
double | ccir13Fm3 (int cond, int deg, int ord) |
double | ccir14F2 (int cond, int deg, int ord) |
double | ccir14Fm3 (int cond, int deg, int ord) |
double | ccir15F2 (int cond, int deg, int ord) |
double | ccir15Fm3 (int cond, int deg, int ord) |
double | ccir16F2 (int cond, int deg, int ord) |
double | ccir16Fm3 (int cond, int deg, int ord) |
double | ccir17F2 (int cond, int deg, int ord) |
double | ccir17Fm3 (int cond, int deg, int ord) |
double | ccir18F2 (int cond, int deg, int ord) |
double | ccir18Fm3 (int cond, int deg, int ord) |
double | ccir19F2 (int cond, int deg, int ord) |
double | ccir19Fm3 (int cond, int deg, int ord) |
double | ccir20F2 (int cond, int deg, int ord) |
double | ccir20Fm3 (int cond, int deg, int ord) |
double | ccir21F2 (int cond, int deg, int ord) |
double | ccir21Fm3 (int cond, int deg, int ord) |
double | ccir22F2 (int cond, int deg, int ord) |
double | ccir22Fm3 (int cond, int deg, int ord) |
double | ccirF2 (unsigned month, int cond, int deg, int ord) |
double | ccirFm3 (unsigned month, int cond, int deg, int ord) |
void | interpolate (const CommonTime &when, double effSunSpots) |
void | interpolateF2 (const CommonTime &when, double effSunSpots) |
void | interpolateFm3 (const CommonTime &when, double effSunSpots) |
void | validateCache (const CommonTime &when, double effSunSpots) |
Private Attributes | |
std::vector< double > | cacheCF2 |
Cached interpolated CF2 coefficients. More... | |
std::vector< double > | cacheCM3 |
Cached interpolated Cm3 coefficients. More... | |
std::vector< double > | cacheF2 |
Cached interpolated F2 coefficients (AF2). More... | |
std::vector< double > | cacheFM3 |
Cached interpolated FM3 coefficients (Am3). More... | |
bool | cacheFourierGood |
Cache state information for Fourier data. More... | |
bool | cacheGood |
Cache state information for interpolated (non-Fourier) data. More... | |
double | cacheHour |
unsigned | cacheMonth |
double | cacheSunSpots |
Friends | |
class | ::CCIR_T |
Define constants using enums, which avoids the complications of using precompilter macros and also avoids the use of memory that a static const elicits.
gnsstk::CCIR::CCIR | ( | ) |
|
private |
Get month-specific grid data. Method name uses 10+month number to match naming of data files and library code, e.g. ccir11F2 is F2 layer coefficients for January.
[in] | cond | The solar conditions, low activity=0, high activity=1. |
[in] | deg | The degree for the data to be retrieved (first axis of grid). |
[in] | ord | The order for the data to be retrieved (second axis of grid). |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Get a CCIR grid point for F2 layer coefficients.
[in] | month | The month of the data being retrieved. |
[in] | cond | The solar conditions, low activity=0, high activity=1. |
[in] | deg | The degree for the data to be retrieved (first axis of grid). |
[in] | ord | The order for the data to be retrieved (second axis of grid). |
|
private |
Get a CCIR grid point for transmission factor coefficients.
[in] | month | The month of the data being retrieved. |
[in] | cond | The solar conditions, low activity=0, high activity=1. |
[in] | deg | The degree for the data to be retrieved (first axis of grid). |
[in] | ord | The order for the data to be retrieved (second axis of grid). |
void gnsstk::CCIR::fourier | ( | const CommonTime & | when, |
double | effSunSpots | ||
) |
Compute Fourier time series for foF2 and M(3000)F2, per section 2.5.5.3.3.
[in] | when | The time at which to interpolate the F2 layer coefficients. |
[in] | effSunSpots | Effective sun spot number, aka Azr. |
|
inline |
Get the F2 layer Fourier coefficients used in Legendre expansion, as generated by fourier().
[in] | degree | The coefficient index. |
|
inline |
Get the transmission factor M(3000)F2 Fourier coefficients used in Legendre expansion, as generated by fourier().
[in] | degree | The coefficient index. |
|
private |
|
private |
|
private |
|
private |
Check to see if the currently cached Fourier coefficients match the specified time and sun spot number.
[in] | when | The time at which F2 layer coefficients are to be interpolated. |
[in] | effSunSpots | Effective sun spot number, aka Azr. |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |