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 |