Rinex3NavData.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 
41 
42 #ifndef GNSSTK_RINEX3NAVDATA_HPP
43 #define GNSSTK_RINEX3NAVDATA_HPP
44 
45 #include <list>
46 #include <string>
47 
48 #include "StringUtils.hpp"
49 #include "CommonTime.hpp"
50 #include "FFStream.hpp"
51 #include "Rinex3NavBase.hpp"
52 #include "Rinex3NavStream.hpp"
53 #include "EngEphemeris.hpp" // GPS only, deprecated
54 #include "RinexSatID.hpp"
55 #include "RinexNavData.hpp"
56 
57 namespace gnsstk
58 {
60 
61 
70  {
71  public:
76  Rinex3NavData();
77 
79  Rinex3NavData(const RinexNavData& rnd);
80 
83  Rinex3NavData(const EngEphemeris& ee);
84 
86  virtual ~Rinex3NavData() {}
87 
89  virtual bool isData() const {return true;}
90 
92  std::string dumpString() const;
93 
96  virtual void dump(std::ostream& s) const;
97 
100  operator EngEphemeris() const noexcept;
101 
104  std::list<double> toList() const;
105 
107  bool operator<(const Rinex3NavData& right) const
108  {
109  CommonTime t(time),r(right.time);
110  t.setTimeSystem(TimeSystem::Any);
112  if(t == r) return (sat < right.sat);
113  return (t < r);
114  }
115 
116  static long fixSF1xmitSOW(unsigned long sow)
117  { return sow - (sow % 30); }
118 
119 
123  std::string satSys;
124  short PRNID;
126  long xmitTime;
127  short weeknum;
131  short health;
132 
133 
136  short codeflgs;
137  short L2Pdata;
140 
141 
146  double MFTraw;
147  long MFtime;
148  short freqNum;
150 
151 
154  short datasources;
156 
157 
162 
164 
167  double Toc;
173 
174 
183 
184 
198 
200 
206 
207 
208 
209  private:
210 
216  void getPRNEpoch(Rinex3NavStream& strm);
217 
218 
226  void getRecord(const int& n, Rinex3NavStream& strm);
227 
232  void putPRNEpoch(Rinex3NavStream& strm) const;
233 
234 
243  void putRecord(const int& n, Rinex3NavStream& strm) const;
244 
245  protected:
246 
257  virtual void reallyGetRecord(FFStream& s);
258 
259 
265  virtual void reallyPutRecord(FFStream& s) const;
266 
267  }; // End of class 'Rinex3NavData'
268 
270 
271 } // End of namespace gnsstk
272 
273 #endif // GNSSTK_RINEX3NAVDATA_HPP
gnsstk::RNDouble
Definition: RNDouble.hpp:50
gnsstk::Rinex3NavData::fitint
RNDouble fitint
Fit interval.
Definition: Rinex3NavData.hpp:197
gnsstk::Rinex3NavData::Ahalf
RNDouble Ahalf
SQRT of semi-major axis (m**1/2)
Definition: Rinex3NavData.hpp:191
gnsstk::Rinex3NavData::vz
RNDouble vz
SV velocity.
Definition: Rinex3NavData.hpp:204
gnsstk::Rinex3NavData::py
RNDouble py
Definition: Rinex3NavData.hpp:203
gnsstk::Rinex3NavData::Toc
double Toc
Time of clock (sec of week)
Definition: Rinex3NavData.hpp:167
gnsstk::Rinex3NavData::Cuc
RNDouble Cuc
Cosine latitude (rad)
Definition: Rinex3NavData.hpp:177
gnsstk::Rinex3NavData::Tgd2
RNDouble Tgd2
Group delay differential (sec) (BDS:B2/B3 GAL:E5b/E1)
Definition: Rinex3NavData.hpp:172
gnsstk::Rinex3NavStream
Definition: Rinex3NavStream.hpp:62
gnsstk::FFStream
Definition: FFStream.hpp:119
gnsstk::Rinex3NavData
Definition: Rinex3NavData.hpp:69
gnsstk::Rinex3NavData::time
CommonTime time
Time according to the sat/epoch record (TOC)
Definition: Rinex3NavData.hpp:122
const
#define const
Definition: getopt.c:43
StringUtils.hpp
gnsstk::Rinex3NavData::Cic
RNDouble Cic
Cosine inclination (rad)
Definition: Rinex3NavData.hpp:181
gnsstk::Rinex3NavData::IODN
RNDouble IODN
Definition: Rinex3NavData.hpp:161
gnsstk::Rinex3NavData::satSys
std::string satSys
Satellite system of Epoch: G,R,E,S,C.
Definition: Rinex3NavData.hpp:123
gnsstk::Rinex3NavData::ax
RNDouble ax
Definition: Rinex3NavData.hpp:205
gnsstk::Rinex3NavData::Toe
RNDouble Toe
Ephemeris epoch (sec of week)
Definition: Rinex3NavData.hpp:187
gnsstk::Rinex3NavData::ecc
RNDouble ecc
Eccentricity.
Definition: Rinex3NavData.hpp:190
gnsstk::Rinex3NavData::IODC
RNDouble IODC
Index of data-clock.
Definition: Rinex3NavData.hpp:138
gnsstk::Rinex3NavData::af2
RNDouble af2
SV clock drift rate (sec/sec**2)
Definition: Rinex3NavData.hpp:170
gnsstk::Rinex3NavData::health
short health
SV health.
Definition: Rinex3NavData.hpp:131
gnsstk::Rinex3NavData::i0
RNDouble i0
Inclination (rad)
Definition: Rinex3NavData.hpp:193
gnsstk::TimeSystem::Any
@ Any
wildcard; allows comparison with any other type
gnsstk::Rinex3NavData::OMEGA0
RNDouble OMEGA0
Rt ascension of ascending node (rad)
Definition: Rinex3NavData.hpp:192
gnsstk::Rinex3NavData::putPRNEpoch
void putPRNEpoch(Rinex3NavStream &strm) const
Definition: Rinex3NavData.cpp:547
gnsstk::CommonTime::setTimeSystem
CommonTime & setTimeSystem(TimeSystem timeSystem)
Definition: CommonTime.hpp:195
gnsstk::Rinex3NavData::Crs
RNDouble Crs
Sine radius (m)
Definition: Rinex3NavData.hpp:180
gnsstk::Rinex3NavData::toList
std::list< double > toList() const
Definition: Rinex3NavData.cpp:502
gnsstk::Rinex3NavData::OMEGAdot
RNDouble OMEGAdot
Rate of Rt ascension (rad/sec)
Definition: Rinex3NavData.hpp:195
gnsstk::Rinex3NavData::IODE
RNDouble IODE
Index of data-eph.
Definition: Rinex3NavData.hpp:139
gnsstk::Rinex3NavData::dn
RNDouble dn
Correction to mean motion (rad/sec)
Definition: Rinex3NavData.hpp:189
gnsstk
For Sinex::InputHistory.
Definition: BasicFramework.cpp:50
Rinex3NavStream.hpp
gnsstk::RinexNavData
Definition: RinexNavData.hpp:67
Rinex3NavBase.hpp
gnsstk::Rinex3NavData::Crc
RNDouble Crc
Cosine radius (m)
Definition: Rinex3NavData.hpp:179
gnsstk::Rinex3NavData::ageOfInfo
RNDouble ageOfInfo
Age of oper. information (days)
Definition: Rinex3NavData.hpp:149
gnsstk::Rinex3NavBase
Definition: Rinex3NavBase.hpp:59
gnsstk::Rinex3NavData::putRecord
void putRecord(const int &n, Rinex3NavStream &strm) const
Definition: Rinex3NavData.cpp:583
gnsstk::EngEphemeris
Definition: EngEphemeris.hpp:86
gnsstk::Rinex3NavData::PRNID
short PRNID
SV PRN ID.
Definition: Rinex3NavData.hpp:124
gnsstk::Rinex3NavData::datasources
short datasources
Data sources.
Definition: Rinex3NavData.hpp:154
gnsstk::Rinex3NavData::vx
RNDouble vx
Definition: Rinex3NavData.hpp:204
gnsstk::Rinex3NavData::dump
virtual void dump(std::ostream &s) const
Definition: Rinex3NavData.cpp:300
gnsstk::Rinex3NavData::codeflgs
short codeflgs
L2 codes.
Definition: Rinex3NavData.hpp:136
gnsstk::Rinex3NavData::freqNum
short freqNum
Frequency number (-7..+12)
Definition: Rinex3NavData.hpp:148
gnsstk::Rinex3NavData::getRecord
void getRecord(const int &n, Rinex3NavStream &strm)
Definition: Rinex3NavData.cpp:873
gnsstk::Rinex3NavData::px
RNDouble px
Definition: Rinex3NavData.hpp:203
EngEphemeris.hpp
gnsstk::Rinex3NavData::MFtime
long MFtime
Message frame time (sec of UTC week) as long.
Definition: Rinex3NavData.hpp:147
gnsstk::Rinex3NavData::af1
RNDouble af1
SV clock drift (sec/sec)
Definition: Rinex3NavData.hpp:169
gnsstk::CommonTime
Definition: CommonTime.hpp:84
gnsstk::Rinex3NavData::L2Pdata
short L2Pdata
L2 P data flag.
Definition: Rinex3NavData.hpp:137
gnsstk::Rinex3NavData::Tgd
RNDouble Tgd
Group delay diff. (sec) (GPS, BDS:B1/B3 GAL:E5a/E1)
Definition: Rinex3NavData.hpp:171
gnsstk::Rinex3NavData::accuracy
RNDouble accuracy
SV accuracy (m)
Definition: Rinex3NavData.hpp:130
gnsstk::Rinex3NavData::isData
virtual bool isData() const
Rinex3NavData is "data" so this function always returns true.
Definition: Rinex3NavData.hpp:89
gnsstk::Rinex3NavData::pz
RNDouble pz
SV position.
Definition: Rinex3NavData.hpp:203
gnsstk::Rinex3NavData::reallyPutRecord
virtual void reallyPutRecord(FFStream &s) const
Definition: Rinex3NavData.cpp:253
gnsstk::Rinex3NavData::weeknum
short weeknum
Definition: Rinex3NavData.hpp:127
gnsstk::Rinex3NavData::TauN
RNDouble TauN
SV clock bias (sec)
Definition: Rinex3NavData.hpp:144
gnsstk::Rinex3NavData::IODnav
RNDouble IODnav
Index of data-eph.
Definition: Rinex3NavData.hpp:155
gnsstk::Rinex3NavData::ay
RNDouble ay
Definition: Rinex3NavData.hpp:205
gnsstk::Rinex3NavData::af0
RNDouble af0
SV clock error (sec)
Definition: Rinex3NavData.hpp:168
gnsstk::Rinex3NavData::w
RNDouble w
Argument of perigee (rad)
Definition: Rinex3NavData.hpp:194
gnsstk::Rinex3NavData::accCode
RNDouble accCode
Accuracy code (URA, meters)
Definition: Rinex3NavData.hpp:160
gnsstk::Rinex3NavData::Rinex3NavData
Rinex3NavData()
Definition: Rinex3NavData.cpp:59
gnsstk::RinexSatID
Definition: RinexSatID.hpp:63
gnsstk::Rinex3NavData::Cus
RNDouble Cus
Sine latitude (rad)
Definition: Rinex3NavData.hpp:178
CommonTime.hpp
std
Definition: Angle.hpp:142
gnsstk::Rinex3NavData::dumpString
std::string dumpString() const
Write selected info (system dependent) as a single line.
Definition: Rinex3NavData.cpp:334
gnsstk::Rinex3NavData::MFTraw
double MFTraw
Message frame time (sec of UTC week) as double.
Definition: Rinex3NavData.hpp:146
gnsstk::Rinex3NavData::fixSF1xmitSOW
static long fixSF1xmitSOW(unsigned long sow)
Definition: Rinex3NavData.hpp:116
gnsstk::Rinex3NavData::az
RNDouble az
SV acceleration.
Definition: Rinex3NavData.hpp:205
gnsstk::Rinex3NavData::reallyGetRecord
virtual void reallyGetRecord(FFStream &s)
Definition: Rinex3NavData.cpp:190
gnsstk::Rinex3NavData::vy
RNDouble vy
Definition: Rinex3NavData.hpp:204
RinexSatID.hpp
FFStream.hpp
RinexNavData.hpp
gnsstk::Rinex3NavData::Cis
RNDouble Cis
Sine inclination (rad)
Definition: Rinex3NavData.hpp:182
gnsstk::Rinex3NavData::sat
RinexSatID sat
RinexSatID (from PRNID & satSys)
Definition: Rinex3NavData.hpp:125
gnsstk::Rinex3NavData::xmitTime
long xmitTime
Time of subframe 1-3 (sec of week)
Definition: Rinex3NavData.hpp:126
gnsstk::Rinex3NavData::GammaN
RNDouble GammaN
SV relative frequency bias.
Definition: Rinex3NavData.hpp:145
gnsstk::Rinex3NavData::idot
RNDouble idot
Rate of inclination angle (rad/sec)
Definition: Rinex3NavData.hpp:196
gnsstk::Rinex3NavData::~Rinex3NavData
virtual ~Rinex3NavData()
Destructor.
Definition: Rinex3NavData.hpp:86
gnsstk::Rinex3NavData::M0
RNDouble M0
Mean anomaly (rad)
Definition: Rinex3NavData.hpp:188
gnsstk::Rinex3NavData::getPRNEpoch
void getPRNEpoch(Rinex3NavStream &strm)
Definition: Rinex3NavData.cpp:744


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