This repository was archived by the owner on May 29, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 188
Expand file tree
/
Copy pathORDEpoch.hpp
More file actions
116 lines (101 loc) · 3.6 KB
/
ORDEpoch.hpp
File metadata and controls
116 lines (101 loc) · 3.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
//==============================================================================
//
// This file is part of GPSTk, the GPS Toolkit.
//
// The GPSTk is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published
// by the Free Software Foundation; either version 3.0 of the License, or
// any later version.
//
// The GPSTk is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with GPSTk; if not, write to the Free Software Foundation,
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
//
// Copyright 2004-2019, The University of Texas at Austin
//
//==============================================================================
//==============================================================================
//
// This software developed by Applied Research Laboratories at the University of
// Texas at Austin, under contract to an agency or agencies within the U.S.
// Department of Defense. The U.S. Government retains all rights to use,
// duplicate, distribute, disclose, or release this software.
//
// Pursuant to DoD Directive 523024
//
// DISTRIBUTION STATEMENT A: This software has been approved for public
// release, distribution is unlimited.
//
//==============================================================================
/**
* @file ORDEpoch.hpp
* A set of observed range deviations for a single point in time from
* a single receiver.
*/
#ifndef ORDEPOCH_HPP
#define ORDEPOCH_HPP
#include <map>
#include "Exception.hpp"
#include "ObsRngDev.hpp"
#include "ClockModel.hpp"
#include "SatID.hpp"
namespace gpstk
{
/// @ingroup ClockModel
//@{
class ORDEpoch
{
public:
ORDEpoch() : wonky(false) {}
/// defines a store for each SV's ord, indexed by prn
typedef std::map<SatID, ObsRngDev> ORDMap;
ORDEpoch& removeORD(const SatID& svid) noexcept
{
ORDMap::iterator i = ords.find(svid);
if(i != ords.end())
ords.erase(i);
return *this;
}
ORDEpoch& applyClockModel(const ClockModel& cm) noexcept
{
if (cm.isOffsetValid(time))
{
clockOffset = cm.getOffset(time);
removeOffset(clockOffset);
}
return *this;
}
ORDEpoch& removeOffset(const double offset) noexcept
{
ORDMap::iterator i;
for (i = ords.begin(); i != ords.end(); i++)
i->second.applyClockOffset(offset);
return *this;
}
vdouble clockOffset; ///< clock bias value (application defined units)
vdouble clockResidual; ///< clock bias minus expected value
ORDMap ords; ///< map of ORDs in epoch
gpstk::CommonTime time;
bool wonky; ///< Indicates that this epoch is suspect
friend std::ostream& operator<<(std::ostream& s,
const ORDEpoch& oe)
noexcept
{
s << "t=" << oe.time
<< " clk=" << oe.clockOffset << std::endl;
ORDMap::const_iterator i;
for (i=oe.ords.begin(); i!=oe.ords.end(); i++)
s << i->second << std::endl;
return s;
}
};
// this is a store of ORDs over time
typedef std::map<gpstk::CommonTime, gpstk::ORDEpoch> ORDEpochMap;
//@}
}
#endif