Main Page
Related Pages
API Reference
Namespace List
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Variables
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
g
i
n
o
p
r
s
t
v
w
x
z
Enumerations
a
b
c
d
e
f
g
i
l
m
n
o
p
r
s
t
w
x
Enumerator
a
b
c
d
e
f
g
h
i
l
m
n
p
r
s
t
u
v
w
x
y
z
Class List
Class List
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
i
k
l
m
n
o
p
r
s
t
v
z
Enumerations
b
c
e
f
g
h
k
o
p
r
s
t
v
Enumerator
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
y
z
Related Functions
:
c
d
e
f
g
i
l
m
n
o
p
r
s
t
u
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
x
y
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
Variables
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
x
y
Typedefs
Enumerations
Enumerator
Macros
_
a
c
d
f
g
h
i
l
m
n
o
p
r
s
t
v
x
Examples
core
lib
FileHandling
RINEX
RinexMetHeader.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
44
#ifndef GNSSTK_RINEXMETHEADER_HPP
45
#define GNSSTK_RINEXMETHEADER_HPP
46
47
#include <vector>
48
#include "gnsstk_export.h"
49
#include "
StringUtils.hpp
"
50
#include "
FFStream.hpp
"
51
#include "
RinexMetBase.hpp
"
52
#include "
Triple.hpp
"
53
54
namespace
gnsstk
55
{
57
58
59
70
class
RinexMetHeader
:
public
RinexMetBase
71
{
72
73
public
:
74
75
// forward declarations
76
struct
sensorType
;
77
78
struct
sensorPosType
;
79
81
enum
RinexMetType
82
{
83
PR
,
84
TD
,
85
HR
,
86
ZW
,
87
ZD
,
88
ZT
,
89
WD
,
90
WS
,
91
RI
,
92
HI
93
};
94
96
RinexMetHeader
() :
valid
(0),
version
(2.1) {}
97
99
virtual
~RinexMetHeader
() {}
100
101
// The next four lines is our common interface
103
virtual
bool
isHeader
(
void
)
const
{
return
true
;}
104
106
virtual
void
dump
(std::ostream& s)
const
;
107
111
static
RinexMetType
convertObsType
(
const
std::string& oneObs);
112
116
static
std::string
convertObsType
(
const
RinexMetType
& oneObs);
117
119
unsigned
long
valid
;
120
122
enum
validBits
123
{
124
validVersion
= 0x01,
125
validRunBy
= 0x02,
126
validComment
= 0x04,
127
validMarkerName
= 0x08,
128
validMarkerNumber
= 0x010,
129
validObsType
= 0x020,
130
validSensorType
= 0x040,
131
validSensorPos
= 0x080,
132
133
validEoH
= 0x080000000,
134
137
allValid20
= 0x0800000EB,
140
allValid21
= 0x0800000EB,
143
allValid211
= 0x0800000EB
144
};
145
146
static
inline
std::string
bitsAsString
(
validBits
b)
147
{
148
switch
(b)
149
{
150
case
validVersion
:
151
return
stringVersion
;
152
case
validRunBy
:
153
return
stringRunBy
;
154
case
validComment
:
155
return
stringComment
;
156
case
validMarkerName
:
157
return
stringMarkerName
;
158
case
validMarkerNumber
:
159
return
stringMarkerNumber
;
160
case
validObsType
:
161
return
stringObsType
;
162
case
validSensorType
:
163
return
stringSensorType
;
164
case
validSensorPos
:
165
return
stringSensorPos
;
166
case
validEoH
:
167
return
stringEoH
;
168
default
:
break
;
//NB Determine if additional enumeration values need to be handled
169
}
170
171
return
"*UNKNOWN/INVALID BITS*"
;
172
}
173
174
/* @return a string composed the RINEX header strings
175
* represented by the validBits set in vb, surrounded by the
176
* quote character, separated by sep.
177
* @param vb bit field with valid bits set
178
* @param quote quote character to use around RINEX header strings.
179
* @param sep separator used between rinex header strings.
180
*/
181
static
std::string
bitString
(
unsigned
long
vb,
char
quote=
'\"'
,
182
std::string sep=
", "
);
183
191
bool
compare
(
const
RinexMetHeader
& right,
192
std::vector<std::string>& diffs,
193
const
std::vector<std::string>& inclExclList,
194
bool
incl =
false
);
195
196
197
double
version
;
198
199
std::string
fileType
;
200
std::string
fileProgram
;
201
std::string
fileAgency
;
202
std::string
date
;
203
std::vector<std::string>
commentList
;
204
std::string
markerName
;
205
std::string
markerNumber
;
206
213
std::vector<RinexMetType>
obsTypeList
;
214
std::vector<sensorType>
sensorTypeList
;
215
std::vector<sensorPosType>
sensorPosList
;
216
217
GNSSTK_EXPORT
218
static
const
int
maxObsPerLine
;
219
220
GNSSTK_EXPORT
221
static
const
std::string
stringVersion
;
222
GNSSTK_EXPORT
223
static
const
std::string
stringRunBy
;
224
GNSSTK_EXPORT
225
static
const
std::string
stringComment
;
226
GNSSTK_EXPORT
227
static
const
std::string
stringMarkerName
;
228
GNSSTK_EXPORT
229
static
const
std::string
stringMarkerNumber
;
230
GNSSTK_EXPORT
231
static
const
std::string
stringObsType
;
232
GNSSTK_EXPORT
233
static
const
std::string
stringSensorType
;
234
GNSSTK_EXPORT
235
static
const
std::string
stringSensorPos
;
236
GNSSTK_EXPORT
237
static
const
std::string
stringEoH
;
238
239
#ifndef SWIG // nested structs not supported by SWIG
240
struct
sensorType
242
{
243
std::string
model
;
244
std::string
type
;
245
double
accuracy
;
246
RinexMetHeader::RinexMetType
obsType
;
247
bool
operator==
(
const
sensorType
& r)
const
;
248
bool
operator<
(
const
sensorType
& r)
const
;
249
};
250
#endif
251
252
253
#ifndef SWIG // nested structs not supported by SWIG
254
struct
sensorPosType
256
{
260
gnsstk::Triple
position
;
261
double
height
;
263
RinexMetHeader::RinexMetType
obsType
;
264
bool
operator==
(
const
sensorPosType
& r)
const
;
265
bool
operator<
(
const
sensorPosType
& r)
const
;
266
};
267
#endif
268
269
protected
:
270
276
virtual
void
reallyPutRecord
(
FFStream
& s)
const
;
277
288
virtual
void
reallyGetRecord
(
FFStream
& s);
289
290
};
// class RinexMetHeader
291
293
294
}
// namespace
295
296
#endif
gnsstk::RinexMetHeader::PR
@ PR
Pressure (mbar)
Definition:
RinexMetHeader.hpp:83
gnsstk::RinexMetHeader::RI
@ RI
"Rain increment": Rain accumulation since last measurement (1/10 mm)
Definition:
RinexMetHeader.hpp:91
gnsstk::RinexMetHeader::markerNumber
std::string markerNumber
The number of the location.
Definition:
RinexMetHeader.hpp:205
gnsstk::RinexMetBase
Definition:
RinexMetBase.hpp:57
gnsstk::RinexMetHeader::RinexMetHeader
RinexMetHeader()
Constructor.
Definition:
RinexMetHeader.hpp:96
gnsstk::RinexMetHeader::bitsAsString
static std::string bitsAsString(validBits b)
Definition:
RinexMetHeader.hpp:146
gnsstk::RinexMetHeader::commentList
std::vector< std::string > commentList
A list of comments.
Definition:
RinexMetHeader.hpp:203
gnsstk::RinexMetHeader::sensorType::operator<
bool operator<(const sensorType &r) const
Definition:
RinexMetHeader.cpp:589
gnsstk::RinexMetHeader::stringComment
static const GNSSTK_EXPORT std::string stringComment
"COMMENT"
Definition:
RinexMetHeader.hpp:225
gnsstk::RinexMetHeader::HR
@ HR
Relative humidity (percent)
Definition:
RinexMetHeader.hpp:85
gnsstk::RinexMetHeader::bitString
static std::string bitString(unsigned long vb, char quote='\"', std::string sep=", ")
Definition:
RinexMetHeader.cpp:71
gnsstk::FFStream
Definition:
FFStream.hpp:119
gnsstk::RinexMetHeader::maxObsPerLine
static const GNSSTK_EXPORT int maxObsPerLine
Holds the max records per line.
Definition:
RinexMetHeader.hpp:218
StringUtils.hpp
gnsstk::RinexMetHeader::stringSensorPos
static const GNSSTK_EXPORT std::string stringSensorPos
"SENSOR POS XYZ/H"
Definition:
RinexMetHeader.hpp:235
gnsstk::RinexMetHeader::allValid20
@ allValid20
Definition:
RinexMetHeader.hpp:137
gnsstk::RinexMetHeader::sensorPosType::height
double height
Definition:
RinexMetHeader.hpp:261
gnsstk::RinexMetHeader::sensorPosType::operator==
bool operator==(const sensorPosType &r) const
Definition:
RinexMetHeader.cpp:604
gnsstk::RinexMetHeader::reallyGetRecord
virtual void reallyGetRecord(FFStream &s)
Definition:
RinexMetHeader.cpp:257
gnsstk::RinexMetHeader::stringSensorType
static const GNSSTK_EXPORT std::string stringSensorType
"SENSOR MOD/TYPE/ACC"
Definition:
RinexMetHeader.hpp:233
gnsstk::RinexMetHeader::sensorType
Struct for holding information about a sensor.
Definition:
RinexMetHeader.hpp:241
gnsstk::RinexMetHeader::stringObsType
static const GNSSTK_EXPORT std::string stringObsType
"# / TYPES OF OBSERV"
Definition:
RinexMetHeader.hpp:231
gnsstk::RinexMetHeader::sensorType::obsType
RinexMetHeader::RinexMetType obsType
The obs type this sensor corresponds to.
Definition:
RinexMetHeader.hpp:246
gnsstk::RinexMetHeader::validVersion
@ validVersion
Set if the RINEX version is valid.
Definition:
RinexMetHeader.hpp:124
gnsstk::Triple
Definition:
Triple.hpp:68
gnsstk::RinexMetHeader::RinexMetType
RinexMetType
Enum for the different types of data in this file.
Definition:
RinexMetHeader.hpp:81
gnsstk::RinexMetHeader::reallyPutRecord
virtual void reallyPutRecord(FFStream &s) const
Definition:
RinexMetHeader.cpp:92
gnsstk
For Sinex::InputHistory.
Definition:
BasicFramework.cpp:50
gnsstk::RinexMetHeader::TD
@ TD
Dry temperature (deg C)
Definition:
RinexMetHeader.hpp:84
gnsstk::RinexMetHeader::fileAgency
std::string fileAgency
The group who generated it.
Definition:
RinexMetHeader.hpp:201
gnsstk::RinexMetHeader::valid
unsigned long valid
Tell me, Am I valid?
Definition:
RinexMetHeader.hpp:119
gnsstk::RinexMetHeader::ZT
@ ZT
Total zenith path delay (mm)
Definition:
RinexMetHeader.hpp:88
gnsstk::RinexMetHeader::validBits
validBits
These are validity bits used in checking the RINEX MET header.
Definition:
RinexMetHeader.hpp:122
gnsstk::RinexMetHeader::dump
virtual void dump(std::ostream &s) const
A debug function that outputs the header to s.
Definition:
RinexMetHeader.cpp:446
gnsstk::RinexMetHeader::stringEoH
static const GNSSTK_EXPORT std::string stringEoH
"END OF HEADER"
Definition:
RinexMetHeader.hpp:237
gnsstk::RinexMetHeader::fileType
std::string fileType
The type of file it is.
Definition:
RinexMetHeader.hpp:199
gnsstk::RinexMetHeader::validSensorPos
@ validSensorPos
Set if Sensor position is valid.
Definition:
RinexMetHeader.hpp:131
gnsstk::RinexMetHeader::validObsType
@ validObsType
Set if Num/Types of Obs is valid.
Definition:
RinexMetHeader.hpp:129
RinexMetBase.hpp
gnsstk::RinexMetHeader::isHeader
virtual bool isHeader(void) const
RinexMetHeader is a "header" so this function always returns true.
Definition:
RinexMetHeader.hpp:103
gnsstk::RinexMetHeader::WD
@ WD
Wind azmiuth from where the wind blows (deg)
Definition:
RinexMetHeader.hpp:89
gnsstk::RinexMetHeader::convertObsType
static RinexMetType convertObsType(const std::string &oneObs)
Definition:
RinexMetHeader.cpp:464
gnsstk::RinexMetHeader::ZW
@ ZW
Wet zenith path delay (mm)
Definition:
RinexMetHeader.hpp:86
gnsstk::RinexMetHeader::validEoH
@ validEoH
Set if the end of header is valid.
Definition:
RinexMetHeader.hpp:133
gnsstk::RinexMetHeader::validComment
@ validComment
Set if the comments are valid. Very subjective...
Definition:
RinexMetHeader.hpp:126
gnsstk::RinexMetHeader::sensorPosType::operator<
bool operator<(const sensorPosType &r) const
Definition:
RinexMetHeader.cpp:614
gnsstk::RinexMetHeader::sensorPosList
std::vector< sensorPosType > sensorPosList
A list of sensor positions used in the file.
Definition:
RinexMetHeader.hpp:215
gnsstk::RinexMetHeader::sensorPosType::position
gnsstk::Triple position
Definition:
RinexMetHeader.hpp:260
gnsstk::RinexMetHeader::compare
bool compare(const RinexMetHeader &right, std::vector< std::string > &diffs, const std::vector< std::string > &inclExclList, bool incl=false)
Definition:
RinexMetHeader.cpp:503
gnsstk::RinexMetHeader::sensorPosType::obsType
RinexMetHeader::RinexMetType obsType
The obs type of the sensor this position corresponds to.
Definition:
RinexMetHeader.hpp:263
gnsstk::RinexMetHeader::validMarkerNumber
@ validMarkerNumber
Set if the Marker Number is valid.
Definition:
RinexMetHeader.hpp:128
gnsstk::RinexMetHeader::validSensorType
@ validSensorType
Set if Sensor Mod/Type/Acc is valid.
Definition:
RinexMetHeader.hpp:130
gnsstk::RinexMetHeader::allValid21
@ allValid21
Definition:
RinexMetHeader.hpp:140
gnsstk::RinexMetHeader::obsTypeList
std::vector< RinexMetType > obsTypeList
Definition:
RinexMetHeader.hpp:213
gnsstk::RinexMetHeader::ZD
@ ZD
Dry component of zenith path delay (mm)
Definition:
RinexMetHeader.hpp:87
Triple.hpp
gnsstk::RinexMetHeader::sensorPosType
Struct for holding info about a sensor position.
Definition:
RinexMetHeader.hpp:255
gnsstk::RinexMetHeader::allValid211
@ allValid211
Definition:
RinexMetHeader.hpp:143
gnsstk::RinexMetHeader::sensorType::accuracy
double accuracy
The accuracy of the sensor.
Definition:
RinexMetHeader.hpp:245
gnsstk::RinexMetHeader::stringVersion
static const GNSSTK_EXPORT std::string stringVersion
"RINEX VERSION / TYPE"
Definition:
RinexMetHeader.hpp:221
gnsstk::RinexMetHeader::validMarkerName
@ validMarkerName
Set if the Marker Name is valid.
Definition:
RinexMetHeader.hpp:127
gnsstk::RinexMetHeader::sensorType::model
std::string model
The manufacturer of the sensor.
Definition:
RinexMetHeader.hpp:243
gnsstk::RinexMetHeader::HI
@ HI
Hail indicator non-zero: Hail detected since last mesaurement.
Definition:
RinexMetHeader.hpp:92
gnsstk::RinexMetHeader::~RinexMetHeader
virtual ~RinexMetHeader()
Destructor.
Definition:
RinexMetHeader.hpp:99
gnsstk::RinexMetHeader::WS
@ WS
Wind speed (m/s)
Definition:
RinexMetHeader.hpp:90
gnsstk::RinexMetHeader::stringMarkerName
static const GNSSTK_EXPORT std::string stringMarkerName
"MARKER NAME"
Definition:
RinexMetHeader.hpp:227
FFStream.hpp
gnsstk::RinexMetHeader::version
double version
RINEX Version.
Definition:
RinexMetHeader.hpp:197
gnsstk::RinexMetHeader::sensorType::type
std::string type
The specific type of sensor.
Definition:
RinexMetHeader.hpp:244
gnsstk::RinexMetHeader::markerName
std::string markerName
The name of the location.
Definition:
RinexMetHeader.hpp:204
gnsstk::RinexMetHeader::validRunBy
@ validRunBy
Set if the Run-by value is valid.
Definition:
RinexMetHeader.hpp:125
gnsstk::RinexMetHeader::date
std::string date
When the file was written.
Definition:
RinexMetHeader.hpp:202
gnsstk::RinexMetHeader::sensorTypeList
std::vector< sensorType > sensorTypeList
A list of sensors used in the file.
Definition:
RinexMetHeader.hpp:214
gnsstk::RinexMetHeader::stringMarkerNumber
static const GNSSTK_EXPORT std::string stringMarkerNumber
"MARKER NUMBER"
Definition:
RinexMetHeader.hpp:229
gnsstk::RinexMetHeader::stringRunBy
static const GNSSTK_EXPORT std::string stringRunBy
"PGM / RUN BY / DATE"
Definition:
RinexMetHeader.hpp:223
gnsstk::RinexMetHeader::sensorType::operator==
bool operator==(const sensorType &r) const
Definition:
RinexMetHeader.cpp:579
gnsstk::RinexMetHeader::fileProgram
std::string fileProgram
The program that generated it.
Definition:
RinexMetHeader.hpp:200
gnsstk::RinexMetHeader
Definition:
RinexMetHeader.hpp:70
gnsstk
Author(s):
autogenerated on Wed Oct 25 2023 02:40:41