OrbitDataKepler.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 //
28 // This software was developed by Applied Research Laboratories at the
29 // University of Texas at Austin, under contract to an agency or agencies
30 // within the U.S. Department of Defense. The U.S. Government retains all
31 // rights to use, duplicate, distribute, disclose, or release this software.
32 //
33 // Pursuant to DoD Directive 523024
34 //
35 // DISTRIBUTION STATEMENT A: This software has been approved for public
36 // release, distribution is unlimited.
37 //
38 //==============================================================================
39 #ifndef GNSSTK_ORBITDATAKEPLER_HPP
40 #define GNSSTK_ORBITDATAKEPLER_HPP
41 
42 #include "OrbitData.hpp"
43 #include "NavFit.hpp"
44 #include "SVHealth.hpp"
45 
46 namespace gnsstk
47 {
49 
50 
52  class OrbitDataKepler : public OrbitData, public NavFit
53  {
54  public:
56  static const size_t precision = 8;
58  static const size_t fw = 16;
59 
62 
65  CommonTime getNearTime() const override
66  { return Toe; }
67 
72  void dump(std::ostream& s, DumpDetail dl) const override;
73 
77  virtual void dumpSVStatus(std::ostream& s) const
78  {}
81  virtual void dumpClock(std::ostream& s) const;
84  virtual void dumpOrbit(std::ostream& s) const;
87  virtual void dumpHarmonics(std::ostream& s) const;
93  virtual std::string getDataType() const
94  {
96  ? "Ephemeris" : "Almanac");
97  }
98 
106  bool getXvt(const CommonTime& when, Xvt& xvt,
107  const ObsID& oid = ObsID()) override = 0;
108 
116  virtual double svRelativity(const CommonTime& when) const = 0;
117 
122  double svClockBias(const CommonTime& when) const;
123 
128  double svClockDrift(const CommonTime& when) const;
129 
139  bool getXvt(const CommonTime& when, const EllipsoidModel& ell, Xvt& xvt,
140  const ObsID& oid = ObsID());
141 
148  virtual double svRelativity(const CommonTime& when,
149  const EllipsoidModel& ell)
150  const;
151 
165  bool isSameData(const NavDataPtr& right) const override;
167  std::list<std::string> compare(const NavDataPtr& right)
168  const override;
169 
174 
175  double Cuc;
176  double Cus;
177  double Crc;
178  double Crs;
179  double Cic;
180  double Cis;
181 
182  double M0;
183  double dn;
184  double dndot;
185  double ecc;
186  double A;
187  double Ahalf;
188  double Adot;
189  double OMEGA0;
190  double i0;
191  double w;
192  double OMEGAdot;
193  double idot;
194 
195  double af0;
196  double af1;
197  double af2;
198 
203  };
204 
206 
207 }
208 
209 #endif // GNSSTK_ORBITDATAKEPLER_HPP
gnsstk::NavDataPtr
std::shared_ptr< NavData > NavDataPtr
Factories instantiate these in response to find() requests.
Definition: NavData.hpp:62
gnsstk::OrbitDataKepler::idot
double idot
Rate of inclination angle (rad/sec)
Definition: OrbitDataKepler.hpp:193
gnsstk::OrbitDataKepler::getNearTime
CommonTime getNearTime() const override
Definition: OrbitDataKepler.hpp:65
gnsstk::OrbitDataKepler::frame
RefFrameSys frame
Definition: OrbitDataKepler.hpp:202
gnsstk::OrbitDataKepler::Cis
double Cis
Sine inclination (rad)
Definition: OrbitDataKepler.hpp:180
gnsstk::OrbitDataKepler::A
double A
Semi-major axis (m)
Definition: OrbitDataKepler.hpp:186
gnsstk::OrbitDataKepler::af2
double af2
SV clock drift rate (sec/sec**2)
Definition: OrbitDataKepler.hpp:197
gnsstk::OrbitDataKepler::svRelativity
virtual double svRelativity(const CommonTime &when) const =0
gnsstk::OrbitDataKepler::ecc
double ecc
Eccentricity.
Definition: OrbitDataKepler.hpp:185
SVHealth.hpp
gnsstk::OrbitDataKepler::svClockBias
double svClockBias(const CommonTime &when) const
Definition: OrbitDataKepler.cpp:341
gnsstk::NavMessageID::messageType
NavMessageType messageType
Definition: NavMessageID.hpp:97
gnsstk::OrbitDataKepler::OMEGAdot
double OMEGAdot
Rate of Rt ascension (rad/sec)
Definition: OrbitDataKepler.hpp:192
example5.oid
oid
Definition: example5.py:29
gnsstk::OrbitDataKepler::Cuc
double Cuc
Cosine latitude (rad)
Definition: OrbitDataKepler.hpp:175
gnsstk::OrbitDataKepler::w
double w
Argument of perigee (rad)
Definition: OrbitDataKepler.hpp:191
gnsstk::OrbitDataKepler::Toe
CommonTime Toe
Orbit epoch.
Definition: OrbitDataKepler.hpp:171
gnsstk::OrbitDataKepler::Crs
double Crs
Sine radius (m)
Definition: OrbitDataKepler.hpp:178
gnsstk::SVHealth
SVHealth
Identify different types of SV health states.
Definition: SVHealth.hpp:52
gnsstk::NavData::signal
NavMessageID signal
Source signal identification for this navigation message data.
Definition: NavData.hpp:175
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::OrbitDataKepler::xmitTime
CommonTime xmitTime
Time of transmission of the start of the data.
Definition: OrbitDataKepler.hpp:170
gnsstk::OrbitDataKepler::dumpHarmonics
virtual void dumpHarmonics(std::ostream &s) const
Definition: OrbitDataKepler.cpp:152
gnsstk::OrbitDataKepler::Adot
double Adot
Rate of semi-major axis (m/sec)
Definition: OrbitDataKepler.hpp:188
gnsstk::OrbitDataKepler::M0
double M0
Mean anomaly (rad)
Definition: OrbitDataKepler.hpp:182
gnsstk::OrbitDataKepler::dndot
double dndot
Rate of correction to mean motion (rad/sec/sec)
Definition: OrbitDataKepler.hpp:184
gnsstk::OrbitDataKepler::Cus
double Cus
Sine latitude (rad)
Definition: OrbitDataKepler.hpp:176
gnsstk::OrbitDataKepler::fw
static const size_t fw
Field width of floating point numbers (precision + 8).
Definition: OrbitDataKepler.hpp:58
gnsstk::ObsID
Definition: ObsID.hpp:82
gnsstk::OrbitDataKepler::Ahalf
double Ahalf
Square Root of semi-major axis (m**.5)
Definition: OrbitDataKepler.hpp:187
gnsstk::OrbitDataKepler::precision
static const size_t precision
Precision used when printing floating point numbers.
Definition: OrbitDataKepler.hpp:56
gnsstk::OrbitDataKepler::OrbitDataKepler
OrbitDataKepler()
Initialize all data members to 0.
Definition: OrbitDataKepler.cpp:50
gnsstk::CommonTime
Definition: CommonTime.hpp:84
gnsstk::OrbitDataKepler::Toc
CommonTime Toc
Clock epoch.
Definition: OrbitDataKepler.hpp:172
gnsstk::Xvt
Definition: Xvt.hpp:60
NavFit.hpp
gnsstk::OrbitDataKepler::dumpSVStatus
virtual void dumpSVStatus(std::ostream &s) const
Definition: OrbitDataKepler.hpp:77
gnsstk::RefFrameSys
RefFrameSys
Reference frame systems. For specific realizations, see RefFrameRlz.
Definition: RefFrameSys.hpp:51
gnsstk::OrbitDataKepler::i0
double i0
Inclination (rad)
Definition: OrbitDataKepler.hpp:190
gnsstk::OrbitDataKepler::svClockDrift
double svClockDrift(const CommonTime &when) const
Definition: OrbitDataKepler.cpp:351
gnsstk::OrbitDataKepler::Cic
double Cic
Cosine inclination (rad)
Definition: OrbitDataKepler.hpp:179
gnsstk::OrbitDataKepler::getDataType
virtual std::string getDataType() const
Definition: OrbitDataKepler.hpp:93
gnsstk::OrbitDataKepler::dumpOrbit
virtual void dumpOrbit(std::ostream &s) const
Definition: OrbitDataKepler.cpp:131
gnsstk::OrbitDataKepler::Crc
double Crc
Cosine radius (m)
Definition: OrbitDataKepler.hpp:177
gnsstk::DumpDetail
DumpDetail
Specify level of detail for dump output.
Definition: DumpDetail.hpp:51
gnsstk::OrbitDataKepler
Base class for orbit information that uses Keplerian parameters.
Definition: OrbitDataKepler.hpp:52
gnsstk::OrbitDataKepler::af0
double af0
SV clock error (sec)
Definition: OrbitDataKepler.hpp:195
gnsstk::NavMessageType::Ephemeris
@ Ephemeris
Precision orbits for the transmitting SV.
OrbitData.hpp
gnsstk::OrbitDataKepler::compare
std::list< std::string > compare(const NavDataPtr &right) const override
Definition: OrbitDataKepler.cpp:398
gnsstk::NavFit
Definition: NavFit.hpp:51
gnsstk::OrbitData
Definition: OrbitData.hpp:53
gnsstk::EllipsoidModel
Definition: EllipsoidModel.hpp:56
gnsstk::OrbitDataKepler::health
SVHealth health
SV health status.
Definition: OrbitDataKepler.hpp:173
gnsstk::OrbitDataKepler::OMEGA0
double OMEGA0
Longitude of ascending node at weekly epoch (rad)
Definition: OrbitDataKepler.hpp:189
gnsstk::OrbitDataKepler::dumpClock
virtual void dumpClock(std::ostream &s) const
Definition: OrbitDataKepler.cpp:118
gnsstk::OrbitDataKepler::isSameData
bool isSameData(const NavDataPtr &right) const override
Definition: OrbitDataKepler.cpp:361
gnsstk::OrbitDataKepler::af1
double af1
SV clock drift (sec/sec)
Definition: OrbitDataKepler.hpp:196
gnsstk::OrbitDataKepler::dump
void dump(std::ostream &s, DumpDetail dl) const override
Definition: OrbitDataKepler.cpp:61
gnsstk::OrbitDataKepler::getXvt
bool getXvt(const CommonTime &when, Xvt &xvt, const ObsID &oid=ObsID()) override=0
gnsstk::OrbitDataKepler::dn
double dn
Correction to mean motion (rad/sec)
Definition: OrbitDataKepler.hpp:183


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