IonoModel.hpp
Go to the documentation of this file.
1 //==============================================================================
2 //
3 // This file is part of GNSSTk, the ARL:UT GNSS Toolkit.
4 //
5 // The GNSSTk is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published
7 // by the Free Software Foundation; either version 3.0 of the License, or
8 // any later version.
9 //
10 // The GNSSTk is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public
16 // License along with GNSSTk; if not, write to the Free Software Foundation,
17 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
18 //
19 // This software was developed by Applied Research Laboratories at the
20 // University of Texas at Austin.
21 // Copyright 2004-2022, The Board of Regents of The University of Texas System
22 //
23 //==============================================================================
24 
25 //==============================================================================
26 //
27 // This software was developed by Applied Research Laboratories at the
28 // University of Texas at Austin, under contract to an agency or agencies
29 // within the U.S. Department of Defense. The U.S. Government retains all
30 // rights to use, duplicate, distribute, disclose, or release this software.
31 //
32 // Pursuant to DoD Directive 523024
33 //
34 // DISTRIBUTION STATEMENT A: This software has been approved for public
35 // release, distribution is unlimited.
36 //
37 //==============================================================================
38 
44 #ifndef GNSSTK_IONOMODEL_HPP
45 #define GNSSTK_IONOMODEL_HPP
46 
47 #include "CommonTime.hpp"
48 #include "CarrierBand.hpp"
49 #include "EngAlmanac.hpp"
50 #include "Position.hpp"
51 
52 namespace gnsstk
53 {
55 
56 
70  class IonoModel
71  {
72  public:
73 
77  NEW_EXCEPTION_CLASS(InvalidIonoModel, gnsstk::Exception);
78 
80  IonoModel() noexcept : valid(false) {}
81 
83  virtual ~IonoModel() noexcept {}
84 
97  IonoModel(const double a[4], const double b[4],
98  const bool semicircle_units = true) noexcept;
99 
104  IonoModel(const EngAlmanac& engalm) noexcept;
105 
112  void setModel(const double a[4], const double b[4],
113  const bool semicircle_units = true) noexcept;
114 
118  bool isValid() const noexcept
119  { return valid; }
120 
130  double getCorrection(const CommonTime& time,
131  const Position& rxgeo,
132  double svel,
133  double svaz,
134  CarrierBand band = CarrierBand::L1) const;
135 
137  bool operator==(const IonoModel& right) const noexcept;
138 
140  bool operator!=(const IonoModel& right) const noexcept;
141 
147  bool getModel(double a[4], double b[4]) const noexcept;
148 
152  virtual void dump(std::ostream& s=std::cout) const;
153 
154  private:
155 
156  double alpha[4];
157  double beta[4];
158 
159  bool valid;
160  };
162 
163 } // namespace gnsstk
164 
165 #endif // GNSSTK_IONOMODEL_HPP
gnsstk::IonoModel::IonoModel
IonoModel() noexcept
Default constructor, creates an invalid model for lack of parameters.
Definition: IonoModel.hpp:80
gnsstk::IonoModel::~IonoModel
virtual ~IonoModel() noexcept
Destructor.
Definition: IonoModel.hpp:83
gnsstk::IonoModel::valid
bool valid
Definition: IonoModel.hpp:159
gnsstk::IonoModel::setModel
void setModel(const double a[4], const double b[4], const bool semicircle_units=true) noexcept
Definition: IonoModel.cpp:73
const
#define const
Definition: getopt.c:43
gnsstk::CarrierBand
CarrierBand
Definition: CarrierBand.hpp:54
EngAlmanac.hpp
gnsstk::IonoModel::NEW_EXCEPTION_CLASS
NEW_EXCEPTION_CLASS(InvalidIonoModel, gnsstk::Exception)
Position.hpp
gnsstk::IonoModel::alpha
double alpha[4]
Definition: IonoModel.hpp:156
gnsstk::IonoModel::beta
double beta[4]
Definition: IonoModel.hpp:157
gnsstk::IonoModel::operator==
bool operator==(const IonoModel &right) const noexcept
Equality operator.
Definition: IonoModel.cpp:177
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::IonoModel::operator!=
bool operator!=(const IonoModel &right) const noexcept
Inequality operator.
Definition: IonoModel.cpp:188
gnsstk::Exception
Definition: Exception.hpp:151
CarrierBand.hpp
gnsstk::EngAlmanac
Definition: EngAlmanac.hpp:71
gnsstk::IonoModel::getCorrection
double getCorrection(const CommonTime &time, const Position &rxgeo, double svel, double svaz, CarrierBand band=CarrierBand::L1) const
Definition: IonoModel.cpp:96
example4.time
time
Definition: example4.py:103
gnsstk::IonoModel::dump
virtual void dump(std::ostream &s=std::cout) const
Definition: IonoModel.cpp:209
gnsstk::CommonTime
Definition: CommonTime.hpp:84
gnsstk::CarrierBand::L1
@ L1
GPS L1, Galileo E1, SBAS L1, QZSS L1, BeiDou L1.
gnsstk::IonoModel::isValid
bool isValid() const noexcept
Definition: IonoModel.hpp:118
gnsstk::IonoModel
Definition: IonoModel.hpp:70
CommonTime.hpp
gnsstk::Position
Definition: Position.hpp:136
gnsstk::IonoModel::getModel
bool getModel(double a[4], double b[4]) const noexcept
Definition: IonoModel.cpp:194


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