Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
gnsstk::CCIR Class Reference

Detailed Description

Wrap the coefficients for the foF2 and M(3000)F2 models recommended by the Comite' Consultatif International des Radiocommunications (CCIR).

Note
, The CCIR became the ITU-R (International Telecommunication Union Radiocommunication Sector) in 1992, but the data files from which this code was generated are named ccir, so we keep that name for consistency.

Definition at line 59 of file CCIR.hpp.

#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
 

Member Enumeration Documentation

◆ CCIRConsts

Define constants using enums, which avoids the complications of using precompilter macros and also avoids the use of memory that a static const elicits.

Enumerator
LowSolarActIdx 

Array index for low solar activity condition.

HighSolarActIdx 

Array index for low solar activity condition.

F2SolarActCond 

F2 layer solar activity conditions count.

F2MaxDegree 

F2 coefficients maximum degree.

F2MaxOrder 

F2 coefficients maximum order.

FM3MaxDegree 

FM3 coefficients maximum degree.

FM3MaxOrder 

FM3 coefficients maximum order.

Definition at line 65 of file CCIR.hpp.

Constructor & Destructor Documentation

◆ CCIR()

gnsstk::CCIR::CCIR ( )

Initialize internal data to nonsense values to clearly indicate the state of initialization.

Definition at line 57 of file CCIR.cpp.

Member Function Documentation

◆ ccir11F2()

double gnsstk::CCIR::ccir11F2 ( int  cond,
int  deg,
int  ord 
)
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.

Parameters
[in]condThe solar conditions, low activity=0, high activity=1.
[in]degThe degree for the data to be retrieved (first axis of grid).
[in]ordThe order for the data to be retrieved (second axis of grid).
Returns
The coefficient grid value at the requested coordinates.

Definition at line 284 of file CCIR.cpp.

◆ ccir11Fm3()

double gnsstk::CCIR::ccir11Fm3 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 908 of file CCIR.cpp.

◆ ccir12F2()

double gnsstk::CCIR::ccir12F2 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 1218 of file CCIR.cpp.

◆ ccir12Fm3()

double gnsstk::CCIR::ccir12Fm3 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 1842 of file CCIR.cpp.

◆ ccir13F2()

double gnsstk::CCIR::ccir13F2 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 2152 of file CCIR.cpp.

◆ ccir13Fm3()

double gnsstk::CCIR::ccir13Fm3 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 2776 of file CCIR.cpp.

◆ ccir14F2()

double gnsstk::CCIR::ccir14F2 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 3086 of file CCIR.cpp.

◆ ccir14Fm3()

double gnsstk::CCIR::ccir14Fm3 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 3710 of file CCIR.cpp.

◆ ccir15F2()

double gnsstk::CCIR::ccir15F2 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 4020 of file CCIR.cpp.

◆ ccir15Fm3()

double gnsstk::CCIR::ccir15Fm3 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 4644 of file CCIR.cpp.

◆ ccir16F2()

double gnsstk::CCIR::ccir16F2 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 4954 of file CCIR.cpp.

◆ ccir16Fm3()

double gnsstk::CCIR::ccir16Fm3 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 5578 of file CCIR.cpp.

◆ ccir17F2()

double gnsstk::CCIR::ccir17F2 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 5888 of file CCIR.cpp.

◆ ccir17Fm3()

double gnsstk::CCIR::ccir17Fm3 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 6512 of file CCIR.cpp.

◆ ccir18F2()

double gnsstk::CCIR::ccir18F2 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 6822 of file CCIR.cpp.

◆ ccir18Fm3()

double gnsstk::CCIR::ccir18Fm3 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 7446 of file CCIR.cpp.

◆ ccir19F2()

double gnsstk::CCIR::ccir19F2 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 7756 of file CCIR.cpp.

◆ ccir19Fm3()

double gnsstk::CCIR::ccir19Fm3 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 8380 of file CCIR.cpp.

◆ ccir20F2()

double gnsstk::CCIR::ccir20F2 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 8690 of file CCIR.cpp.

◆ ccir20Fm3()

double gnsstk::CCIR::ccir20Fm3 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 9314 of file CCIR.cpp.

◆ ccir21F2()

double gnsstk::CCIR::ccir21F2 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 9624 of file CCIR.cpp.

◆ ccir21Fm3()

double gnsstk::CCIR::ccir21Fm3 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 10248 of file CCIR.cpp.

◆ ccir22F2()

double gnsstk::CCIR::ccir22F2 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 10558 of file CCIR.cpp.

◆ ccir22Fm3()

double gnsstk::CCIR::ccir22Fm3 ( int  cond,
int  deg,
int  ord 
)
private

Definition at line 11182 of file CCIR.cpp.

◆ ccirF2()

double gnsstk::CCIR::ccirF2 ( unsigned  month,
int  cond,
int  deg,
int  ord 
)
private

Get a CCIR grid point for F2 layer coefficients.

Parameters
[in]monthThe month of the data being retrieved.
[in]condThe solar conditions, low activity=0, high activity=1.
[in]degThe degree for the data to be retrieved (first axis of grid).
[in]ordThe order for the data to be retrieved (second axis of grid).
Returns
The coefficient grid value at the requested coordinates.

Definition at line 236 of file CCIR.cpp.

◆ ccirFm3()

double gnsstk::CCIR::ccirFm3 ( unsigned  month,
int  cond,
int  deg,
int  ord 
)
private

Get a CCIR grid point for transmission factor coefficients.

Parameters
[in]monthThe month of the data being retrieved.
[in]condThe solar conditions, low activity=0, high activity=1.
[in]degThe degree for the data to be retrieved (first axis of grid).
[in]ordThe order for the data to be retrieved (second axis of grid).
Returns
The coefficient grid value at the requested coordinates.

Definition at line 260 of file CCIR.cpp.

◆ fourier()

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.

Parameters
[in]whenThe time at which to interpolate the F2 layer coefficients.
[in]effSunSpotsEffective sun spot number, aka Azr.
Postcondition
The interpolated data available via getCF2() and getCM3() is available for the given time and effective sun spot number.

Definition at line 81 of file CCIR.cpp.

◆ getCF2()

double gnsstk::CCIR::getCF2 ( unsigned  degree) const
inline

Get the F2 layer Fourier coefficients used in Legendre expansion, as generated by fourier().

Parameters
[in]degreeThe coefficient index.
Returns
The F2 layer Fourier coefficient at degree, or NaN if the Fourier coefficients have not been precomputed or degree does not match the precomputed coefficients.

Definition at line 97 of file CCIR.hpp.

◆ getCM3()

double gnsstk::CCIR::getCM3 ( unsigned  degree) const
inline

Get the transmission factor M(3000)F2 Fourier coefficients used in Legendre expansion, as generated by fourier().

Parameters
[in]degreeThe coefficient index.
Returns
The transmission factor Fourier coefficient at degree, or NaN if the Fourier coefficients have not been precomputed or degree does not match the precomputed coefficients.

Definition at line 112 of file CCIR.hpp.

◆ interpolate()

void gnsstk::CCIR::interpolate ( const CommonTime when,
double  effSunSpots 
)
private

Perform interpolation of Fourier coefficients for F2 layer as well as for the transmission factor M(3000)F2.

Parameters
[in]whenThe time at which to interpolate the F2 layer coefficients.
[in]effSunSpotsEffective sun spot number, aka Azr.

Definition at line 68 of file CCIR.cpp.

◆ interpolateF2()

void gnsstk::CCIR::interpolateF2 ( const CommonTime when,
double  effSunSpots 
)
private

Perform interpolation of Fourier coefficients for F2 layer.

Parameters
[in]whenThe time at which to interpolate the F2 layer coefficients.
[in]effSunSpotsEffective sun spot number, aka Azr.

Definition at line 139 of file CCIR.cpp.

◆ interpolateFm3()

void gnsstk::CCIR::interpolateFm3 ( const CommonTime when,
double  effSunSpots 
)
private

Perform interpolation of Fourier coefficients for the transmission factor M(3000)F2.

Parameters
[in]whenThe time at which to interpolate the F2 layer coefficients.
[in]effSunSpotsEffective sun spot number, aka Azr.

Definition at line 161 of file CCIR.cpp.

◆ validateCache()

void gnsstk::CCIR::validateCache ( const CommonTime when,
double  effSunSpots 
)
private

Check to see if the currently cached Fourier coefficients match the specified time and sun spot number.

Parameters
[in]whenThe time at which F2 layer coefficients are to be interpolated.
[in]effSunSpotsEffective sun spot number, aka Azr.
Postcondition
cacheGood and cacheFourierGood will be set or cleared, depending on whether the cached data matches.

Definition at line 192 of file CCIR.cpp.

Friends And Related Function Documentation

◆ ::CCIR_T

friend class ::CCIR_T
friend

Definition at line 225 of file CCIR.hpp.

Member Data Documentation

◆ cacheCF2

std::vector<double> gnsstk::CCIR::cacheCF2
private

Cached interpolated CF2 coefficients.

Definition at line 217 of file CCIR.hpp.

◆ cacheCM3

std::vector<double> gnsstk::CCIR::cacheCM3
private

Cached interpolated Cm3 coefficients.

Definition at line 219 of file CCIR.hpp.

◆ cacheF2

std::vector<double> gnsstk::CCIR::cacheF2
private

Cached interpolated F2 coefficients (AF2).

Definition at line 213 of file CCIR.hpp.

◆ cacheFM3

std::vector<double> gnsstk::CCIR::cacheFM3
private

Cached interpolated FM3 coefficients (Am3).

Definition at line 215 of file CCIR.hpp.

◆ cacheFourierGood

bool gnsstk::CCIR::cacheFourierGood
private

Cache state information for Fourier data.

Definition at line 223 of file CCIR.hpp.

◆ cacheGood

bool gnsstk::CCIR::cacheGood
private

Cache state information for interpolated (non-Fourier) data.

Definition at line 221 of file CCIR.hpp.

◆ cacheHour

double gnsstk::CCIR::cacheHour
private

UT hour of the interpolated data in cacheF2 so we know when to update.

Definition at line 208 of file CCIR.hpp.

◆ cacheMonth

unsigned gnsstk::CCIR::cacheMonth
private

Month of the interpolated data in cacheF2 so we know when to update.

Definition at line 205 of file CCIR.hpp.

◆ cacheSunSpots

double gnsstk::CCIR::cacheSunSpots
private

Effective sun spots (Azr) value for data in cacheF2 so we know when to update.

Definition at line 211 of file CCIR.hpp.


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


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