GPSCNavRedAlm.cpp
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 #include "GPSCNavRedAlm.hpp"
40 
41 using namespace std;
42 
43 namespace gnsstk
44 {
45  GPSCNavRedAlm ::
46  GPSCNavRedAlm()
47  : deltaA(0),
48  phi0(0)
49  {
50  }
51 
52 
53  bool GPSCNavRedAlm ::
54  validate() const
55  {
56  return GPSCNavAlm::validate();
57  }
58 
59 
60  void GPSCNavRedAlm ::
62  {
64  {
65  M0 = phi0;
66  w = refwQZSS;
67  ecc = refEccQZSS;
68  A = refAQZSS + deltaA;
69  Ahalf = ::sqrt(A);
71  i0 = refi0QZSS + deltai;
73  }
74  else
75  {
76  // GPS
77  // IS-GPS-200 gives the PHI0 value as being the sum of
78  // M0+w, which is probably fine given the equations in
79  // that interface spec, but I'm not convinced this is the
80  // right way to handle that in the context of the
81  // OrbitDataKepler implementation. That said, table
82  // 5.5.2-9 in IS-QZSS suggests that using a 0 argument of
83  // perigee (w) is what you do for GPS.
84  M0 = phi0;
85  w = refwGPS;
86  ecc = refEccGPS;
87  A = refAGPS + deltaA;
88  Ahalf = ::sqrt(A);
90  i0 = refi0GPS + deltai;
92  }
93  }
94 }
gnsstk::OrbitDataKepler::A
double A
Semi-major axis (m)
Definition: OrbitDataKepler.hpp:186
gnsstk::GPSCNavData::refdeltaiQZSS
static const GNSSTK_EXPORT double refdeltaiQZSS
Definition: GPSCNavData.hpp:88
gnsstk::OrbitDataKepler::ecc
double ecc
Eccentricity.
Definition: OrbitDataKepler.hpp:185
gnsstk::GPSCNavData::refOMEGAdotRedAlmQZSS
static const GNSSTK_EXPORT double refOMEGAdotRedAlmQZSS
Reduced almanac OMEGA dot reference value for QZSS (radians).
Definition: GPSCNavData.hpp:82
gnsstk::GPSCNavRedAlm::phi0
double phi0
Argument of latitude at reference time (M0+w).
Definition: GPSCNavRedAlm.hpp:75
gnsstk::OrbitDataKepler::OMEGAdot
double OMEGAdot
Rate of Rt ascension (rad/sec)
Definition: OrbitDataKepler.hpp:192
gnsstk::GPSCNavData::refAQZSS
static const GNSSTK_EXPORT double refAQZSS
Definition: GPSCNavData.hpp:78
gnsstk::GPSCNavData::refi0QZSS
static const GNSSTK_EXPORT double refi0QZSS
Definition: GPSCNavData.hpp:85
gnsstk::OrbitDataKepler::w
double w
Argument of perigee (rad)
Definition: OrbitDataKepler.hpp:191
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::GPSCNavRedAlm::fixValues
void fixValues()
Definition: GPSCNavRedAlm.cpp:61
gnsstk::GPSCNavData::refwQZSS
static const GNSSTK_EXPORT double refwQZSS
Argument of perigee reference value in IS-QZSS (radians).
Definition: GPSCNavData.hpp:90
gnsstk::OrbitDataKepler::M0
double M0
Mean anomaly (rad)
Definition: OrbitDataKepler.hpp:182
gnsstk::GPSCNavData::refdeltaiGPS
static const GNSSTK_EXPORT double refdeltaiGPS
Definition: GPSCNavData.hpp:69
gnsstk::GPSCNavAlm::deltai
double deltai
Inclination in rad relative to 0.3*pi rad.
Definition: GPSCNavAlm.hpp:88
gnsstk::GPSCNavRedAlm::deltaA
double deltaA
Semi-major axis relative to reference value.
Definition: GPSCNavRedAlm.hpp:74
gnsstk::OrbitDataKepler::Ahalf
double Ahalf
Square Root of semi-major axis (m**.5)
Definition: OrbitDataKepler.hpp:187
gnsstk::NavSatelliteID::sat
SatID sat
ID of satellite to which the nav data applies.
Definition: NavSatelliteID.hpp:169
GPSCNavRedAlm.hpp
gnsstk::GPSCNavData::refOMEGAdotRedAlmGPS
static const GNSSTK_EXPORT double refOMEGAdotRedAlmGPS
Definition: GPSCNavData.hpp:63
gnsstk::GPSCNavData::refi0GPS
static const GNSSTK_EXPORT double refi0GPS
Definition: GPSCNavData.hpp:66
gnsstk::SatID::system
SatelliteSystem system
System for this satellite.
Definition: SatID.hpp:156
gnsstk::OrbitDataKepler::i0
double i0
Inclination (rad)
Definition: OrbitDataKepler.hpp:190
gnsstk::GPSCNavAlm::validate
bool validate() const override
Definition: GPSCNavAlm.cpp:59
gnsstk::GPSCNavData::refEccQZSS
static const GNSSTK_EXPORT double refEccQZSS
Definition: GPSCNavData.hpp:93
gnsstk::GPSCNavData::refwGPS
static const GNSSTK_EXPORT double refwGPS
Argument of perigee reference value (radians, guessed at).
Definition: GPSCNavData.hpp:71
std
Definition: Angle.hpp:142
gnsstk::GPSCNavData::refEccGPS
static const GNSSTK_EXPORT double refEccGPS
Definition: GPSCNavData.hpp:74
gnsstk::GPSCNavData::refAGPS
static const GNSSTK_EXPORT double refAGPS
Definition: GPSCNavData.hpp:57
gnsstk::SatelliteSystem::QZSS
@ QZSS
gnsstk::GPSCNavRedAlm::validate
bool validate() const override
Definition: GPSCNavRedAlm.cpp:54


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