General Purpose Geodetic Library
SgModelsInfo.h
Go to the documentation of this file.
1 /*
2  *
3  * This file is a part of Space Geodetic Library. The library is used by
4  * nuSolve, a part of CALC/SOLVE system, and designed to make analysis of
5  * geodetic VLBI observations.
6  * Copyright (C) 2010-2020 Sergei Bolotin.
7  *
8  * This program is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22 
23 #ifndef SG_MODELS_INFO_H
24 #define SG_MODELS_INFO_H
25 
26 
27 #ifdef HAVE_CONFIG_H
28 # include <config.h>
29 #endif
30 
31 
32 #include <math.h>
33 
34 
35 #include <QtCore/QMap>
36 
37 #include <SgAttribute.h>
38 #include <SgMJD.h>
39 
40 
41 class SgMatrix;
42 class SgVector;
43 class SgVlbiStationInfo;
44 
45 /***===================================================================================================*/
51 // typedefs:
52 //
53 //
55 {
56 public:
57  // "Sie ist ein Model und sie sieht gut aus
58  // ich nehm sie heut gerne mit zu mir nach Haus..."
59  class DasModel
60  {
61  public:
62  inline DasModel(const QString& key) :
63  key_(key), controlFlag_("Undefined"), definition_("Undefined"), origin_("Undefined") {};
64  inline ~DasModel() {};
65  //
66  inline const QString& getKey() const {return key_;};
67  inline const QString& getControlFlag() const {return controlFlag_;};
68  inline const QString& getDefinition() const {return definition_;};
69  inline const QString& getOrigin() const {return origin_;};
70  //
71  inline void setKey(const QString& key) {key_ = key;};
72  inline void setControlFlag(const QString& flag) {controlFlag_ = flag;};
73  inline void setDefinition(const QString& def) {definition_ = def;};
74  inline void setOrigin(const QString& orig) {origin_ = orig;};
75  //
76  protected:
77  QString key_; // type of name
78  QString controlFlag_;
79  QString definition_;
80  QString origin_;
81  };
82 
83 
84  // Statics:
85  //
88  static const QString className();
89 
90  //
91  // constructors/destructors:
92  //
96  SgModelsInfo();
97 
105  ~SgModelsInfo();
106 
107 
108  //
109  // Interfaces:
110  //
111 
112  // gets:
113  inline const QString& getProgramName() const {return programName_;};
114  inline double getDversion() const {return dVersion_;};
115  inline const QString& getVersion() const {return version_;};
116  inline short getFlagTidalUt1() const {return flagTidalUt1_;};
117  inline double getRelativityData() const {return relativityData_;};
118  inline double getPrecessionData() const {return precessionData_;};
119  inline double getEarthTideData(int i) const {return 0<=i&&i<=2?earthTideData_[i]:0.0;};
120 
121  // sets:
122  inline void setProgramName(const QString& name) {programName_ = name;};
123  inline void setDversion(double d) {dVersion_ = d;};
124  inline void setVersion(const QString& ver) {version_ = ver;};
125  inline void setFlagTidalUt1(short f) {flagTidalUt1_ = f;};
126  inline void setRelativityData(double d) {relativityData_ = d;};
127  inline void setPrecessionData(double d) {precessionData_ = d;};
128  inline void setEarthTideData(int i, double d) {if (0<=i && i<=2) earthTideData_[i] = d;};
129 
130  //
131  inline DasModel& site() {return site_;};
132  inline DasModel& star() {return star_;};
133  inline DasModel& ephemeris() {return ephemeris_;};
135  inline DasModel& atomicTime() {return atomicTime_;};
136  inline DasModel& relativity() {return relativity_;};
137  inline DasModel& polarMotion() {return polarMotion_;};
139  inline DasModel& ut1() {return ut1_;};
141  inline DasModel& nutation() {return nutation_;};
142  inline DasModel& earthTide() {return earthTide_;};
143  inline DasModel& poleTide() {return poleTide_;};
144  inline DasModel& oceanLoading() {return oceanLoading_;};
145  inline DasModel& troposphere() {return troposphere_;};
146  inline DasModel& axisOffset() {return axisOffset_;};
147  inline DasModel& parallax() {return parallax_;};
148  inline DasModel& feedHorn() {return feedHorn_;};
153  inline SgMatrix*& ut1InterpData() {return ut1InterpData_;};
154  inline SgMatrix*& wobInterpData() {return wobInterpData_;};
156 
157 
158 
159  inline const DasModel& site() const {return site_;};
160  inline const DasModel& star() const {return star_;};
161  inline const DasModel& ephemeris() const {return ephemeris_;};
162  inline const DasModel& coordinateTime() const {return coordinateTime_;};
163  inline const DasModel& atomicTime() const {return atomicTime_;};
164  inline const DasModel& relativity() const {return relativity_;};
165  inline const DasModel& polarMotion() const {return polarMotion_;};
167  inline const DasModel& ut1() const {return ut1_;};
168  inline const DasModel& ut1Interpolation() const {return ut1Interpolation_;};
169  inline const DasModel& nutation() const {return nutation_;};
170  inline const DasModel& earthTide() const {return earthTide_;};
171  inline const DasModel& poleTide() const {return poleTide_;};
172  inline const DasModel& oceanLoading() const {return oceanLoading_;};
173  inline const DasModel& troposphere() const {return troposphere_;};
174  inline const DasModel& axisOffset() const {return axisOffset_;};
175  inline const DasModel& parallax() const {return parallax_;};
176  inline const DasModel& feedHorn() const {return feedHorn_;};
177  inline const QList<QString>& controlFlagNames() const {return controlFlagNames_;};
178  inline const QList<int>& controlFlagValues() const {return controlFlagValues_;};
179  inline const QList<QString>& oLoadStationStatus() const {return oLoadStationStatus_;};
180  inline const QList<double>& siteZenDelays() const {return siteZenDelays_;};
181  inline const SgMatrix* ut1InterpData() const {return ut1InterpData_;};
182  inline const SgMatrix* wobInterpData() const {return wobInterpData_;};
183  inline const QList<SgVlbiStationInfo*> stations() const {return stations_;};
184 
185  void prepareUt1InterpData(int nRow);
186  void prepareWobInterpData(int nRow);
187 
188 
189  //
190  // Functions:
191 
192 
193  //
194  // Friends:
195  //
196 
197  //
198  // I/O:
199  //
200  // ...
201 
202 protected:
203  QString programName_;
204  double dVersion_;
205  QString version_;
228 
234  double earthTideData_[3];
235 
238 
239 };
240 /*=====================================================================================================*/
241 
242 
243 
244 
245 
246 /*=====================================================================================================*/
247 /* */
248 /* SgVlbiSessionInfo inline members: */
249 /* */
250 /*=====================================================================================================*/
251 //
252 //
253 // INTERFACES:
254 //
255 //
256 
257 
258 //
259 // FUNCTIONS:
260 //
261 //
262 //
263 
264 
265 
266 //
267 // FRIENDS:
268 //
269 //
270 //
271 
272 
273 /*=====================================================================================================*/
274 
275 
276 
277 
278 
279 /*=====================================================================================================*/
280 //
281 // aux functions:
282 //
283 
284 /*=====================================================================================================*/
285 #endif // SG_MODELS_INFO_H
void setDefinition(const QString &def)
Definition: SgModelsInfo.h:73
const QString & getDefinition() const
Definition: SgModelsInfo.h:68
DasModel(const QString &key)
Definition: SgModelsInfo.h:62
void setOrigin(const QString &orig)
Definition: SgModelsInfo.h:74
const QString & getOrigin() const
Definition: SgModelsInfo.h:69
const QString & getKey() const
Definition: SgModelsInfo.h:66
const QString & getControlFlag() const
Definition: SgModelsInfo.h:67
void setControlFlag(const QString &flag)
Definition: SgModelsInfo.h:72
void setKey(const QString &key)
Definition: SgModelsInfo.h:71
void prepareWobInterpData(int nRow)
double getPrecessionData() const
Definition: SgModelsInfo.h:118
QList< SgVlbiStationInfo * > & stations()
Definition: SgModelsInfo.h:155
QString version_
Definition: SgModelsInfo.h:205
double dVersion_
Definition: SgModelsInfo.h:204
const DasModel & parallax() const
Definition: SgModelsInfo.h:175
DasModel site_
Definition: SgModelsInfo.h:206
void setVersion(const QString &ver)
Definition: SgModelsInfo.h:124
DasModel & troposphere()
Definition: SgModelsInfo.h:145
DasModel polarMotion_
Definition: SgModelsInfo.h:212
const QString & getProgramName() const
Definition: SgModelsInfo.h:113
DasModel oceanLoading_
Definition: SgModelsInfo.h:219
double precessionData_
Definition: SgModelsInfo.h:233
DasModel & ut1Interpolation()
Definition: SgModelsInfo.h:140
short flagTidalUt1_
Definition: SgModelsInfo.h:231
const DasModel & oceanLoading() const
Definition: SgModelsInfo.h:172
DasModel ephemeris_
Definition: SgModelsInfo.h:208
QList< QString > & oLoadStationStatus()
Definition: SgModelsInfo.h:151
DasModel feedHorn_
Definition: SgModelsInfo.h:223
DasModel & earthTide()
Definition: SgModelsInfo.h:142
const DasModel & relativity() const
Definition: SgModelsInfo.h:164
const DasModel & feedHorn() const
Definition: SgModelsInfo.h:176
static const QString className()
const DasModel & poleTide() const
Definition: SgModelsInfo.h:171
SgMatrix *& wobInterpData()
Definition: SgModelsInfo.h:154
const SgMatrix * wobInterpData() const
Definition: SgModelsInfo.h:182
void setDversion(double d)
Definition: SgModelsInfo.h:123
DasModel parallax_
Definition: SgModelsInfo.h:222
short getFlagTidalUt1() const
Definition: SgModelsInfo.h:116
DasModel & nutation()
Definition: SgModelsInfo.h:141
const DasModel & polarMotionInterpolation() const
Definition: SgModelsInfo.h:166
DasModel coordinateTime_
Definition: SgModelsInfo.h:209
DasModel & coordinateTime()
Definition: SgModelsInfo.h:134
QList< QString > oLoadStationStatus_
Definition: SgModelsInfo.h:226
QList< int > controlFlagValues_
Definition: SgModelsInfo.h:225
double getRelativityData() const
Definition: SgModelsInfo.h:117
const QList< QString > & oLoadStationStatus() const
Definition: SgModelsInfo.h:179
const DasModel & coordinateTime() const
Definition: SgModelsInfo.h:162
QList< QString > & controlFlagNames()
Definition: SgModelsInfo.h:149
DasModel troposphere_
Definition: SgModelsInfo.h:220
const QString & getVersion() const
Definition: SgModelsInfo.h:115
void setEarthTideData(int i, double d)
Definition: SgModelsInfo.h:128
DasModel & feedHorn()
Definition: SgModelsInfo.h:148
const DasModel & ut1Interpolation() const
Definition: SgModelsInfo.h:168
DasModel relativity_
Definition: SgModelsInfo.h:211
void setFlagTidalUt1(short f)
Definition: SgModelsInfo.h:125
DasModel & polarMotion()
Definition: SgModelsInfo.h:137
DasModel star_
Definition: SgModelsInfo.h:207
DasModel & atomicTime()
Definition: SgModelsInfo.h:135
const DasModel & star() const
Definition: SgModelsInfo.h:160
const DasModel & ephemeris() const
Definition: SgModelsInfo.h:161
const QList< SgVlbiStationInfo * > stations() const
Definition: SgModelsInfo.h:183
const DasModel & ut1() const
Definition: SgModelsInfo.h:167
QList< double > & siteZenDelays()
Definition: SgModelsInfo.h:152
const DasModel & site() const
Definition: SgModelsInfo.h:159
SgMatrix * wobInterpData_
Definition: SgModelsInfo.h:230
QList< double > siteZenDelays_
Definition: SgModelsInfo.h:227
DasModel polarMotionInterpolation_
Definition: SgModelsInfo.h:213
SgMatrix *& ut1InterpData()
Definition: SgModelsInfo.h:153
DasModel & oceanLoading()
Definition: SgModelsInfo.h:144
DasModel & parallax()
Definition: SgModelsInfo.h:147
QList< SgVlbiStationInfo * > stations_
Definition: SgModelsInfo.h:237
DasModel poleTide_
Definition: SgModelsInfo.h:218
DasModel atomicTime_
Definition: SgModelsInfo.h:210
const SgMatrix * ut1InterpData() const
Definition: SgModelsInfo.h:181
DasModel & poleTide()
Definition: SgModelsInfo.h:143
const DasModel & axisOffset() const
Definition: SgModelsInfo.h:174
double earthTideData_[3]
Definition: SgModelsInfo.h:234
DasModel & polarMotionInterpolation()
Definition: SgModelsInfo.h:138
DasModel ut1_
Definition: SgModelsInfo.h:214
void setPrecessionData(double d)
Definition: SgModelsInfo.h:127
DasModel & ephemeris()
Definition: SgModelsInfo.h:133
void prepareUt1InterpData(int nRow)
double relativityData_
Definition: SgModelsInfo.h:232
DasModel & star()
Definition: SgModelsInfo.h:132
const DasModel & troposphere() const
Definition: SgModelsInfo.h:173
QList< QString > controlFlagNames_
Definition: SgModelsInfo.h:224
DasModel nutation_
Definition: SgModelsInfo.h:216
double getDversion() const
Definition: SgModelsInfo.h:114
const QList< QString > & controlFlagNames() const
Definition: SgModelsInfo.h:177
const QList< double > & siteZenDelays() const
Definition: SgModelsInfo.h:180
DasModel earthTide_
Definition: SgModelsInfo.h:217
DasModel & site()
Definition: SgModelsInfo.h:131
SgMatrix * ut1InterpData_
Definition: SgModelsInfo.h:229
const DasModel & earthTide() const
Definition: SgModelsInfo.h:170
QList< int > & controlFlagValues()
Definition: SgModelsInfo.h:150
DasModel axisOffset_
Definition: SgModelsInfo.h:221
DasModel & axisOffset()
Definition: SgModelsInfo.h:146
DasModel & ut1()
Definition: SgModelsInfo.h:139
DasModel ut1Interpolation_
Definition: SgModelsInfo.h:215
const QList< int > & controlFlagValues() const
Definition: SgModelsInfo.h:178
double getEarthTideData(int i) const
Definition: SgModelsInfo.h:119
const DasModel & polarMotion() const
Definition: SgModelsInfo.h:165
void setProgramName(const QString &name)
Definition: SgModelsInfo.h:122
void setRelativityData(double d)
Definition: SgModelsInfo.h:126
QString programName_
name of the software that provided models
Definition: SgModelsInfo.h:203
DasModel & relativity()
Definition: SgModelsInfo.h:136
const DasModel & nutation() const
Definition: SgModelsInfo.h:169
const DasModel & atomicTime() const
Definition: SgModelsInfo.h:163