0.2.0
Loading...
Searching...
No Matches
RinexObsFile.hpp
Go to the documentation of this file.
1// This file is part of INSTINCT, the INS Toolkit for Integrated
2// Navigation Concepts and Training by the Institute of Navigation of
3// the University of Stuttgart, Germany.
4//
5// This Source Code Form is subject to the terms of the Mozilla Public
6// License, v. 2.0. If a copy of the MPL was not distributed with this
7// file, You can obtain one at https://mozilla.org/MPL/2.0/.
8
14
15#pragma once
16
17#include <set>
18#include <unordered_map>
19
22
25
27
29
30namespace NAV
31{
33class RinexObsFile : public Node, public FileReader
34{
35 public:
39 ~RinexObsFile() override;
41 RinexObsFile(const RinexObsFile&) = delete;
48
50 [[nodiscard]] static std::string typeStatic();
51
53 [[nodiscard]] std::string type() const override;
54
56 [[nodiscard]] static std::string category();
57
60 void guiConfig() override;
61
63 [[nodiscard]] json save() const override;
64
67 void restore(const json& j) override;
68
70 bool resetNode() override;
71
72 private:
73 constexpr static size_t OUTPUT_PORT_INDEX_GNSS_OBS = 0;
74
76 bool initialize() override;
77
79 void deinitialize() override;
80
83 [[nodiscard]] FileType determineFileType() override;
84
86 void readHeader() override;
87
90 [[nodiscard]] std::shared_ptr<const NodeData> pollData();
91
93 static inline const std::set<double> _supportedVersions = { 3.04, 3.03, 3.02 };
94
96 double _version = 0.0;
97
99 std::unordered_map<SatelliteSystem, std::vector<NAV::vendor::RINEX::ObservationDescription>> _obsDescription;
100
102 TimeSystem _timeSystem = TimeSys_None;
103
105 bool _rcvClockOffsAppl = false;
106
108 bool _eraseLessPreciseCodes = true;
109
111 GnssObs::ReceiverInfo _receiverInfo;
112
117 void eraseLessPreciseCodes(const std::shared_ptr<GnssObs>& gnssObs, const Frequency& freq, uint16_t satNum);
118};
119
120} // namespace NAV
Code definitions.
Abstract File Reader class.
nlohmann::json json
json namespace
Definition FlowManager.hpp:21
Frequency definition for different satellite systems.
GNSS Observation messages.
Node Class.
Functions to work with RINEX.
@ TimeSys_None
No Time system.
Definition TimeSystem.hpp:27
Abstract File Reader class.
Definition FileReader.hpp:31
FileType
File Type Enumeration.
Definition FileReader.hpp:35
Frequency definition for different satellite systems.
Definition Frequency.hpp:59
Abstract parent class for all nodes.
Definition Node.hpp:86
File reader Node for RINEX Observation messages.
Definition RinexObsFile.hpp:34
void restore(const json &j) override
Restores the node from a json object.
std::string type() const override
String representation of the Class Type.
RinexObsFile(const RinexObsFile &)=delete
Copy constructor.
json save() const override
Saves the node into a json object.
void guiConfig() override
ImGui config window which is shown on double click.
RinexObsFile()
Default constructor.
RinexObsFile & operator=(const RinexObsFile &)=delete
Copy assignment operator.
RinexObsFile & operator=(RinexObsFile &&)=delete
Move assignment operator.
~RinexObsFile() override
Destructor.
bool resetNode() override
Resets the node. Moves the read cursor to the start.
static std::string typeStatic()
String representation of the Class Type.
static std::string category()
String representation of the Class Category.
RinexObsFile(RinexObsFile &&)=delete
Move constructor.
Time System defintions.
Definition TimeSystem.hpp:39
Receiver Information, e.g. from RINEX header.
Definition GnssObs.hpp:327