BrcKeplerOrbit.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 
47 #ifndef GNSSTK_BRCKEPLERORBIT_HPP
48 #define GNSSTK_BRCKEPLERORBIT_HPP
49 
50 #include <string>
51 #include "Xvt.hpp"
52 #include "ObsID.hpp"
53 #include "EngNav.hpp"
54 #include "Exception.hpp"
55 #include "CommonTime.hpp"
56 #include "StringUtils.hpp"
57 #include "GNSSconstants.hpp"
58 #include "GPSEllipsoid.hpp"
59 #include "MathBase.hpp"
60 #include "TimeSystem.hpp"
61 #include "GPSWeekSecond.hpp"
62 #include "YDSTime.hpp"
63 #include "CivilTime.hpp"
64 #include "GPS_URA.hpp"
65 
66 class BrcKeplerOrbit_T;
67 
68 namespace gnsstk
69 {
71 
72 
81  class BrcKeplerOrbit : public EngNav
82  {
83  public:
86  BrcKeplerOrbit( ) noexcept;
87 
94  BrcKeplerOrbit( const std::string satSysArg, const ObsID obsIDArg,
96  const short PRNIDArg, const CommonTime beginFitArg,
97  const CommonTime endFitArg, const CommonTime ToeArg,
98  const short URAoeArg,
99  const bool healthyArg, const double CucArg,
100  const double CusArg, const double CrcArg,
101  const double CrsArg, const double CicArg,
102  const double CisArg, const double M0Arg,
103  const double dnArg, const double dndotArg,
104  const double eccArg, const double AArg,
105  const double AhalfArg, const double AdotArg,
106  const double OMEGA0Arg, const double i0Arg,
107  const double wArg, const double OMEGAdotARg,
108  const double idotArg );
109 
111  BrcKeplerOrbit( const ObsID obsIDArg,
112  const short PRNID,
113  const short fullweeknum,
114  const long subframe1[10],
115  const long subframe2[10],
116  const long subframe3[10] );
117 
118  // Add other constructors for other navigation message formats here...
119 
121  virtual ~BrcKeplerOrbit() {}
122 
123  bool operator==(const BrcKeplerOrbit& right) const noexcept;
124  bool operator!=(const BrcKeplerOrbit& right) const noexcept
125  { return !(operator==(right)); }
126 
128  void loadData(const std::string satSysArg, const ObsID obsIDArg,
129  const short PRNIDArg, const CommonTime beginFitArg,
130  const CommonTime endFitArg, const CommonTime ToeArg,
131  const short URAoeArg, const bool healthyArg,
132  const double CucArg,
133  const double CusArg, const double CrcArg,
134  const double CrsArg, const double CicArg,
135  const double CisArg, const double M0Arg,
136  const double dnArg, const double dndotArg,
137  const double eccArg, const double AArg,
138  const double AhalfArg, const double AdotArg,
139  const double OMEGA0Arg, const double i0Arg,
140  const double wArg, const double OMEGAdotARg,
141  const double idotArg );
142 
146  void loadData( const ObsID obsIDArg,
147  const short PRNID,
148  const short fullweeknum,
149  const long subframe1[10],
150  const long subframe2[10],
151  const long subframe3[10] );
152 
158  CommonTime getOrbitEpoch() const;
159 
164 
169 
171  bool hasData( ) const;
172 
174  //@note Determine if this function is needed, as it is never used
175  //std::string getSatSystem() const;
176 
178  //@note Determine if this function is needed, as it is never used
179  //std::string getSignal() const;
180 
184  short getPRNID() const;
185 
189  ObsID getObsID() const;
190 
194  bool isHealthy() const;
195 
199  bool withinFitInterval(const CommonTime) const;
200 
205  short getFullWeek() const;
206 
212  double getAccuracy() const;
213 
214 
218  void setAccuracy(const double& acc);
219 
223  short getURAoe() const;
224 
229  double getCus() const;
230 
235  double getCrs() const;
236 
241  double getCis() const;
242 
247  double getCrc() const;
248 
253  double getCuc() const;
254 
259  double getCic() const;
260 
265  double getToe() const;
266 
271  double getM0() const;
272 
277  double getDn() const;
278 
283  double getDnDot() const;
284 
288  double getEcc() const;
289 
294  double getA() const;
295 
300  double getAhalf() const;
301 
306  double getAdot() const;
307 
312  double getOmega0() const;
313 
318  double getI0() const;
319 
324  double getW() const;
325 
330  double getOmegaDot() const;
331 
336  double getIDot() const;
337 
342  Xvt svXvt(const CommonTime& t) const;
343 
347  double svRelativity(const CommonTime& t) const;
348 
350  void dump(std::ostream& s = std::cout) const noexcept;
351 
352  protected:
354 
355  bool dataLoaded;
356  std::string satSys;
358  short PRNID;
360  short URAoe;
361  bool healthy;
363 
365 
366  double Cuc;
367  double Cus;
368  double Crc;
369  double Crs;
370  double Cic;
371  double Cis;
373 
375 
376  double M0;
377  double dn;
378  double dndot;
379  double ecc;
380  double A;
381  double Ahalf;
382  double Adot;
383  double OMEGA0;
384  double i0;
385  double w;
386  double OMEGAdot;
387  double idot;
389 
391 
395 
396  friend class ::BrcKeplerOrbit_T;
397  friend std::ostream& operator<<(std::ostream& s,
398  const BrcKeplerOrbit& eph);
399 
400  }; // class BrcKeplerOrbit
401 
403 
404 } // namespace
405 
406 #endif
gnsstk::BrcKeplerOrbit::getI0
double getI0() const
Definition: BrcKeplerOrbit.cpp:715
TimeSystem.hpp
gnsstk::BrcKeplerOrbit::M0
double M0
Definition: BrcKeplerOrbit.hpp:376
gnsstk::BrcKeplerOrbit::getW
double getW() const
Definition: BrcKeplerOrbit.cpp:725
gnsstk::BrcKeplerOrbit::URAoe
short URAoe
Definition: BrcKeplerOrbit.hpp:360
gnsstk::BrcKeplerOrbit::operator!=
bool operator!=(const BrcKeplerOrbit &right) const noexcept
Definition: BrcKeplerOrbit.hpp:124
YDSTime.hpp
gnsstk::BrcKeplerOrbit::getURAoe
short getURAoe() const
Definition: BrcKeplerOrbit.cpp:554
gnsstk::BrcKeplerOrbit::getOmega0
double getOmega0() const
Definition: BrcKeplerOrbit.cpp:705
gnsstk::BrcKeplerOrbit::getBeginningOfFitInterval
CommonTime getBeginningOfFitInterval() const
Definition: BrcKeplerOrbit.cpp:482
Xvt.hpp
gnsstk::BrcKeplerOrbit::OMEGA0
double OMEGA0
Definition: BrcKeplerOrbit.hpp:383
gnsstk::BrcKeplerOrbit
Definition: BrcKeplerOrbit.hpp:81
gnsstk::BrcKeplerOrbit::hasData
bool hasData() const
Definition: BrcKeplerOrbit.cpp:279
gnsstk::BrcKeplerOrbit::Crc
double Crc
Definition: BrcKeplerOrbit.hpp:368
gnsstk::BrcKeplerOrbit::Cuc
double Cuc
Definition: BrcKeplerOrbit.hpp:366
StringUtils.hpp
gnsstk::BrcKeplerOrbit::endFit
CommonTime endFit
Definition: BrcKeplerOrbit.hpp:393
GPS_URA.hpp
gnsstk::BrcKeplerOrbit::getIDot
double getIDot() const
Definition: BrcKeplerOrbit.cpp:745
gnsstk::BrcKeplerOrbit::beginFit
CommonTime beginFit
Definition: BrcKeplerOrbit.hpp:392
gnsstk::BrcKeplerOrbit::setAccuracy
void setAccuracy(const double &acc)
Definition: BrcKeplerOrbit.cpp:544
gnsstk::BrcKeplerOrbit::idot
double idot
Definition: BrcKeplerOrbit.hpp:387
gnsstk::BrcKeplerOrbit::Cis
double Cis
Definition: BrcKeplerOrbit.hpp:371
gnsstk::EngNav
Definition: EngNav.hpp:69
GNSSconstants.hpp
gnsstk::BrcKeplerOrbit::obsID
ObsID obsID
Definition: BrcKeplerOrbit.hpp:357
gnsstk::BrcKeplerOrbit::BrcKeplerOrbit
BrcKeplerOrbit() noexcept
Definition: BrcKeplerOrbit.cpp:52
gnsstk::BrcKeplerOrbit::getObsID
ObsID getObsID() const
Definition: BrcKeplerOrbit.cpp:512
gnsstk::BrcKeplerOrbit::Cus
double Cus
Definition: BrcKeplerOrbit.hpp:367
gnsstk::BrcKeplerOrbit::Crs
double Crs
Definition: BrcKeplerOrbit.hpp:369
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
gnsstk::BrcKeplerOrbit::getM0
double getM0() const
Definition: BrcKeplerOrbit.cpp:635
gnsstk::BrcKeplerOrbit::svXvt
Xvt svXvt(const CommonTime &t) const
Definition: BrcKeplerOrbit.cpp:305
gnsstk::BrcKeplerOrbit::getAdot
double getAdot() const
Definition: BrcKeplerOrbit.cpp:685
gnsstk::BrcKeplerOrbit::dn
double dn
Definition: BrcKeplerOrbit.hpp:377
gnsstk::BrcKeplerOrbit::getPRNID
short getPRNID() const
Definition: BrcKeplerOrbit.cpp:502
gnsstk::BrcKeplerOrbit::getDnDot
double getDnDot() const
Definition: BrcKeplerOrbit.cpp:695
gnsstk::BrcKeplerOrbit::getToe
double getToe() const
Definition: BrcKeplerOrbit.cpp:624
gnsstk::BrcKeplerOrbit::A
double A
Definition: BrcKeplerOrbit.hpp:380
gnsstk::BrcKeplerOrbit::getOmegaDot
double getOmegaDot() const
Definition: BrcKeplerOrbit.cpp:735
gnsstk::BrcKeplerOrbit::operator<<
friend std::ostream & operator<<(std::ostream &s, const BrcKeplerOrbit &eph)
gnsstk::ObsID
Definition: ObsID.hpp:82
gnsstk::BrcKeplerOrbit::PRNID
short PRNID
Definition: BrcKeplerOrbit.hpp:358
gnsstk::BrcKeplerOrbit::dump
void dump(std::ostream &s=std::cout) const noexcept
Definition: BrcKeplerOrbit.cpp:814
gnsstk::BrcKeplerOrbit::getAhalf
double getAhalf() const
Definition: BrcKeplerOrbit.cpp:675
gnsstk::CommonTime
Definition: CommonTime.hpp:84
gnsstk::BrcKeplerOrbit::operator==
bool operator==(const BrcKeplerOrbit &right) const noexcept
Definition: BrcKeplerOrbit.cpp:104
gnsstk::BrcKeplerOrbit::dndot
double dndot
Definition: BrcKeplerOrbit.hpp:378
gnsstk::BrcKeplerOrbit::getCus
double getCus() const
Definition: BrcKeplerOrbit.cpp:564
gnsstk::BrcKeplerOrbit::Toe
CommonTime Toe
Definition: BrcKeplerOrbit.hpp:359
gnsstk::Xvt
Definition: Xvt.hpp:60
CivilTime.hpp
gnsstk::BrcKeplerOrbit::withinFitInterval
bool withinFitInterval(const CommonTime) const
Definition: BrcKeplerOrbit.cpp:294
gnsstk::BrcKeplerOrbit::getCic
double getCic() const
Definition: BrcKeplerOrbit.cpp:614
gnsstk::BrcKeplerOrbit::getFullWeek
short getFullWeek() const
Definition: BrcKeplerOrbit.cpp:522
gnsstk::BrcKeplerOrbit::OMEGAdot
double OMEGAdot
Definition: BrcKeplerOrbit.hpp:386
gnsstk::BrcKeplerOrbit::Adot
double Adot
Definition: BrcKeplerOrbit.hpp:382
gnsstk::BrcKeplerOrbit::getAccuracy
double getAccuracy() const
Definition: BrcKeplerOrbit.cpp:533
GPSEllipsoid.hpp
gnsstk::BrcKeplerOrbit::Cic
double Cic
Definition: BrcKeplerOrbit.hpp:370
gnsstk::BrcKeplerOrbit::getCrs
double getCrs() const
Definition: BrcKeplerOrbit.cpp:574
gnsstk::BrcKeplerOrbit::satSys
std::string satSys
Definition: BrcKeplerOrbit.hpp:356
GPSWeekSecond.hpp
ObsID.hpp
Exception.hpp
gnsstk::BrcKeplerOrbit::getCrc
double getCrc() const
Definition: BrcKeplerOrbit.cpp:594
gnsstk::BrcKeplerOrbit::dataLoaded
bool dataLoaded
Definition: BrcKeplerOrbit.hpp:355
CommonTime.hpp
gnsstk::BrcKeplerOrbit::getEcc
double getEcc() const
Definition: BrcKeplerOrbit.cpp:655
gnsstk::BrcKeplerOrbit::svRelativity
double svRelativity(const CommonTime &t) const
Definition: BrcKeplerOrbit.cpp:452
gnsstk::BrcKeplerOrbit::~BrcKeplerOrbit
virtual ~BrcKeplerOrbit()
Destructor.
Definition: BrcKeplerOrbit.hpp:121
gnsstk::BrcKeplerOrbit::getDn
double getDn() const
Definition: BrcKeplerOrbit.cpp:645
gnsstk::BrcKeplerOrbit::isHealthy
bool isHealthy() const
Definition: BrcKeplerOrbit.cpp:284
BrcKeplerOrbit_T
Definition: BrcKeplerOrbit_T.cpp:58
gnsstk::BrcKeplerOrbit::loadData
void loadData(const std::string satSysArg, const ObsID obsIDArg, const short PRNIDArg, const CommonTime beginFitArg, const CommonTime endFitArg, const CommonTime ToeArg, const short URAoeArg, const bool healthyArg, const double CucArg, const double CusArg, const double CrcArg, const double CrsArg, const double CicArg, const double CisArg, const double M0Arg, const double dnArg, const double dndotArg, const double eccArg, const double AArg, const double AhalfArg, const double AdotArg, const double OMEGA0Arg, const double i0Arg, const double wArg, const double OMEGAdotARg, const double idotArg)
General purpose means to load data into object.
Definition: BrcKeplerOrbit.cpp:136
gnsstk::BrcKeplerOrbit::getEndOfFitInterval
CommonTime getEndOfFitInterval() const
Definition: BrcKeplerOrbit.cpp:492
gnsstk::BrcKeplerOrbit::getCuc
double getCuc() const
Definition: BrcKeplerOrbit.cpp:604
gnsstk::BrcKeplerOrbit::Ahalf
double Ahalf
Definition: BrcKeplerOrbit.hpp:381
gnsstk::BrcKeplerOrbit::getA
double getA() const
Definition: BrcKeplerOrbit.cpp:665
MathBase.hpp
gnsstk::BrcKeplerOrbit::healthy
bool healthy
Definition: BrcKeplerOrbit.hpp:361
gnsstk::BrcKeplerOrbit::getCis
double getCis() const
Definition: BrcKeplerOrbit.cpp:584
gnsstk::BrcKeplerOrbit::getOrbitEpoch
CommonTime getOrbitEpoch() const
Definition: BrcKeplerOrbit.cpp:477
gnsstk::BrcKeplerOrbit::w
double w
Definition: BrcKeplerOrbit.hpp:385
gnsstk::BrcKeplerOrbit::ecc
double ecc
Definition: BrcKeplerOrbit.hpp:379
gnsstk::BrcKeplerOrbit::i0
double i0
Definition: BrcKeplerOrbit.hpp:384
EngNav.hpp


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