1 //==============================================================================
2 //
3 //  This file is part of GPSTk, the GPS Toolkit.
4 //
5 //  The GPSTk 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 GPSTk 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 GPSTk; 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-2020, 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 
39 /**
40  * @file ObsEpochMap.hpp
41  * A class encapsulating observation data
42  */
43 
44 #ifndef GPSTK_OBSEPOCHMAP_HPP
45 #define GPSTK_OBSEPOCHMAP_HPP
46 
47 #include <map>
48 #include <iostream>
49 
50 #include "CommonTime.hpp"
51 #include "SatID.hpp"
52 #include "ObsID.hpp"
53 #include "ValidType.hpp"
54 
55 namespace gpstk
56 {
57       /// @ingroup ClockModel
58       //@{
59 
60       /// All the observations collected from a single SV at a single epoch
61    struct SvObsEpoch : public std::map<ObsID, double>
62    {
63       gpstk::SatID svid;
64       vfloat azimuth, elevation;
65    };
66 
67       /** All the observations collected from a single receiver at a
68        * single epoch */
69    struct ObsEpoch : public std::map<SatID, SvObsEpoch>
70    {
71       gpstk::CommonTime time;
72       vdouble rxClock;
73    };
74 
75       /// A time history of the observations collected from a single receiver.
76    typedef std::map<CommonTime, ObsEpoch> ObsEpochMap;
77 
78    std::ostream& operator<<(std::ostream& s, const SvObsEpoch& obs) throw();
79    std::ostream& operator<<(std::ostream& s, const ObsEpoch& oe) throw();
80 
81       //@}
82 
83 } // namespace
84 
85 #endif
86