Go to the documentation of this file.
48 KlobucharIonoNavData ::
49 KlobucharIonoNavData()
65 s <<
"****************************************************************"
66 <<
"************" << endl
67 <<
"Ionospheric correction data"
76 const ios::fmtflags oldFlags = s.flags();
78 s.setf(ios::fixed, ios::floatfield);
79 s.setf(ios::right, ios::adjustfield);
80 s.setf(ios::uppercase);
84 s <<
" TIMES OF INTEREST"
89 s.setf(ios::scientific, ios::floatfield);
94 <<
" KLOBUCHAR IONO PARAMETERS" << endl
95 <<
"Parameter Value" << endl
96 <<
"alpha[0] " << setw(16) <<
alpha[0] <<
" sec" << endl
97 <<
"alpha[1] " << setw(16) <<
alpha[1] <<
" sec/semi-circle" << endl
98 <<
"alpha[2] " << setw(16) <<
alpha[2] <<
" sec/semi-circle**2"
100 <<
"alpha[3] " << setw(16) <<
alpha[3] <<
" sec/semi-circle**3"
102 <<
"beta[0] " << setw(16) <<
beta[0] <<
" sec" << endl
103 <<
"beta[1] " << setw(16) <<
beta[1] <<
" sec/semi-circle" << endl
104 <<
"beta[2] " << setw(16) <<
beta[2] <<
" sec/semi-circle**2"
106 <<
"beta[3] " << setw(16) <<
beta[3] <<
" sec/semi-circle**3"
126 double psi = (0.0137 / (el+0.11)) - 0.022;
127 double phi_i = phi_u + psi *
::cos(az *
PI);
132 double lambda_i = lambda_u + (psi *
::sin(az *
PI) /
::cos(phi_i *
PI));
133 double t = 43200 * lambda_i +
YDSTime(when).
sod;
138 double phi_m = phi_i + 0.064 *
::cos((lambda_i-1.617) *
PI);
145 double x =
TWO_PI * (t - 50400.0) / iPER;
146 double iF = 1.0 + 16.0 * (0.53 - el)*(0.53 - el)*(0.53 - el);
150 t_iono = iF * (5.0e-9 + iAMP * (1 + x*x * (-0.5 + x*x/24.0)));
154 t_iono = iF * 5.0e-9;
164 return t_iono *
C_MPS;
std::string getSignalString() const
virtual void dump(std::ostream &s, DumpDetail dl) const
void dump(std::ostream &s, DumpDetail dl) const override
std::string getDumpTime(DumpDetail dl, const CommonTime &t) const
const double TWO_PI
GPS value of PI*2.
double getIonoCorr(const CommonTime &when, const Position &rxgeo, const Position &svgeo, CarrierBand band) const override
std::string getDumpTimeHdr(DumpDetail dl) const
const double PI
GPS value of PI; also specified by GAL.
double sin(gnsstk::Angle x)
double azimuthGeodetic(const Position &Target) const
const double C_MPS
m/s, speed of light; this value defined by GPS but applies to GAL and GLO.
const double FREQ_GPS_L1
GPS L1 carrier frequency in Hz.
double getGeodeticLatitude() const noexcept
return geodetic latitude (deg N)
@ L1
GPS L1, Galileo E1, SBAS L1, QZSS L1, BeiDou L1.
double cos(gnsstk::Angle x)
double beta(double x, double y)
double beta[4]
beta terms of Klobuchar model, using semi-circles.
@ Full
Include all detailed information.
DumpDetail
Specify level of detail for dump output.
double getLongitude() const noexcept
return longitude (deg E) (either geocentric or geodetic)
double alpha[4]
alpha terms of Klobuchar model, using semi-circles.
@ OneLine
Limit output to minimal information on a single line.
double getFrequency(CarrierBand band)
double elevationGeodetic(const Position &Target) const
gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:39