Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef CalDelayRow_CLASS
00035 #define CalDelayRow_CLASS
00036
00037 #include <vector>
00038 #include <string>
00039 #include <set>
00040 using std::vector;
00041 using std::string;
00042 using std::set;
00043
00044 #ifndef WITHOUT_ACS
00045 #include <asdmIDLC.h>
00046 using asdmIDL::CalDelayRowIDL;
00047 #endif
00048
00049
00050
00051
00052
00053
00054 #include <ArrayTime.h>
00055 using asdm::ArrayTime;
00056
00057 #include <Angle.h>
00058 using asdm::Angle;
00059
00060 #include <Tag.h>
00061 using asdm::Tag;
00062
00063 #include <Frequency.h>
00064 using asdm::Frequency;
00065
00066
00067
00068
00069
00070
00071
00072 #include "CAtmPhaseCorrection.h"
00073 using namespace AtmPhaseCorrectionMod;
00074
00075
00076
00077 #include "CBasebandName.h"
00078 using namespace BasebandNameMod;
00079
00080
00081
00082 #include "CReceiverBand.h"
00083 using namespace ReceiverBandMod;
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099 #include "CPolarizationType.h"
00100 using namespace PolarizationTypeMod;
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116 #include "CReceiverSideband.h"
00117 using namespace ReceiverSidebandMod;
00118
00119
00120
00121
00122 #include <ConversionException.h>
00123 #include <NoSuchRow.h>
00124 #include <IllegalAccessException.h>
00125
00126
00127
00128
00129
00130
00131 namespace asdm {
00132
00133
00134
00135
00136
00137 class CalDataRow;
00138
00139
00140 class CalReductionRow;
00141
00142
00143 class CalDelayRow;
00144 typedef void (CalDelayRow::*CalDelayAttributeFromBin) (EndianISStream& eiss);
00145
00152 class CalDelayRow {
00153 friend class asdm::CalDelayTable;
00154
00155 public:
00156
00157 virtual ~CalDelayRow();
00158
00162 CalDelayTable &getTable() const;
00163
00168 bool isAdded() const;
00169
00171
00173
00174
00175
00176
00177
00178
00179
00180
00185 string getAntennaName() const;
00186
00187
00188
00189
00199 void setAntennaName (string antennaName);
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00217 AtmPhaseCorrectionMod::AtmPhaseCorrection getAtmPhaseCorrection() const;
00218
00219
00220
00221
00231 void setAtmPhaseCorrection (AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection);
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00249 BasebandNameMod::BasebandName getBasebandName() const;
00250
00251
00252
00253
00263 void setBasebandName (BasebandNameMod::BasebandName basebandName);
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00281 ReceiverBandMod::ReceiverBand getReceiverBand() const;
00282
00283
00284
00285
00295 void setReceiverBand (ReceiverBandMod::ReceiverBand receiverBand);
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00313 ArrayTime getStartValidTime() const;
00314
00315
00316
00317
00325 void setStartValidTime (ArrayTime startValidTime);
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00343 ArrayTime getEndValidTime() const;
00344
00345
00346
00347
00355 void setEndValidTime (ArrayTime endValidTime);
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368
00373 string getRefAntennaName() const;
00374
00375
00376
00377
00385 void setRefAntennaName (string refAntennaName);
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00403 int getNumReceptor() const;
00404
00405
00406
00407
00415 void setNumReceptor (int numReceptor);
00416
00417
00418
00419
00420
00421
00422
00423
00424
00425
00426
00427
00428
00433 vector<double > getDelayError() const;
00434
00435
00436
00437
00445 void setDelayError (vector<double > delayError);
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458
00463 vector<double > getDelayOffset() const;
00464
00465
00466
00467
00475 void setDelayOffset (vector<double > delayOffset);
00476
00477
00478
00479
00480
00481
00482
00483
00484
00485
00486
00487
00488
00493 vector<PolarizationTypeMod::PolarizationType > getPolarizationTypes() const;
00494
00495
00496
00497
00505 void setPolarizationTypes (vector<PolarizationTypeMod::PolarizationType > polarizationTypes);
00506
00507
00508
00509
00510
00511
00512
00513
00514
00515
00516
00517
00518
00523 vector<double > getReducedChiSquared() const;
00524
00525
00526
00527
00535 void setReducedChiSquared (vector<double > reducedChiSquared);
00536
00537
00538
00539
00540
00541
00542
00543
00544
00545
00546
00551 bool isCrossDelayOffsetExists() const;
00552
00553
00554
00560 double getCrossDelayOffset() const;
00561
00562
00563
00564
00571 void setCrossDelayOffset (double crossDelayOffset);
00572
00573
00574
00575
00579 void clearCrossDelayOffset ();
00580
00581
00582
00583
00584
00585
00586
00587
00592 bool isCrossDelayOffsetErrorExists() const;
00593
00594
00595
00601 double getCrossDelayOffsetError() const;
00602
00603
00604
00605
00612 void setCrossDelayOffsetError (double crossDelayOffsetError);
00613
00614
00615
00616
00620 void clearCrossDelayOffsetError ();
00621
00622
00623
00624
00625
00626
00627
00628
00633 bool isNumSidebandExists() const;
00634
00635
00636
00642 int getNumSideband() const;
00643
00644
00645
00646
00653 void setNumSideband (int numSideband);
00654
00655
00656
00657
00661 void clearNumSideband ();
00662
00663
00664
00665
00666
00667
00668
00669
00674 bool isRefFreqExists() const;
00675
00676
00677
00683 vector<Frequency > getRefFreq() const;
00684
00685
00686
00687
00694 void setRefFreq (vector<Frequency > refFreq);
00695
00696
00697
00698
00702 void clearRefFreq ();
00703
00704
00705
00706
00707
00708
00709
00710
00715 bool isRefFreqPhaseExists() const;
00716
00717
00718
00724 vector<Angle > getRefFreqPhase() const;
00725
00726
00727
00728
00735 void setRefFreqPhase (vector<Angle > refFreqPhase);
00736
00737
00738
00739
00743 void clearRefFreqPhase ();
00744
00745
00746
00747
00748
00749
00750
00751
00756 bool isSidebandsExists() const;
00757
00758
00759
00765 vector<ReceiverSidebandMod::ReceiverSideband > getSidebands() const;
00766
00767
00768
00769
00776 void setSidebands (vector<ReceiverSidebandMod::ReceiverSideband > sidebands);
00777
00778
00779
00780
00784 void clearSidebands ();
00785
00786
00787
00789
00791
00792
00793
00794
00795
00796
00797
00798
00803 Tag getCalDataId() const;
00804
00805
00806
00807
00817 void setCalDataId (Tag calDataId);
00818
00819
00820
00821
00822
00823
00824
00825
00826
00827
00828
00829
00830
00835 Tag getCalReductionId() const;
00836
00837
00838
00839
00849 void setCalReductionId (Tag calReductionId);
00850
00851
00852
00853
00854
00855
00857
00859
00860
00861
00862
00863
00870 CalDataRow* getCalDataUsingCalDataId();
00871
00872
00873
00874
00875
00876
00877
00878
00885 CalReductionRow* getCalReductionUsingCalReductionId();
00886
00887
00888
00889
00890
00891
00892
00926 bool compareNoAutoInc(string antennaName, AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection, BasebandNameMod::BasebandName basebandName, ReceiverBandMod::ReceiverBand receiverBand, Tag calDataId, Tag calReductionId, ArrayTime startValidTime, ArrayTime endValidTime, string refAntennaName, int numReceptor, vector<double > delayError, vector<double > delayOffset, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, vector<double > reducedChiSquared);
00927
00928
00929
00930
00952 bool compareRequiredValue(ArrayTime startValidTime, ArrayTime endValidTime, string refAntennaName, int numReceptor, vector<double > delayError, vector<double > delayOffset, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, vector<double > reducedChiSquared);
00953
00954
00963 bool equalByRequiredValue(CalDelayRow* x) ;
00964
00965 #ifndef WITHOUT_ACS
00966
00970 CalDelayRowIDL *toIDL() const;
00971 #endif
00972
00973 #ifndef WITHOUT_ACS
00974
00979 void setFromIDL (CalDelayRowIDL x) ;
00980 #endif
00981
00986 string toXML() const;
00987
00994 void setFromXML (string rowDoc) ;
00995
00996 private:
01000 CalDelayTable &table;
01004 bool hasBeenAdded;
01005
01006
01007 void isAdded(bool added);
01008
01009
01018 CalDelayRow (CalDelayTable &table);
01019
01037 CalDelayRow (CalDelayTable &table, CalDelayRow &row);
01038
01040
01042
01043
01044
01045
01046
01047
01048 string antennaName;
01049
01050
01051
01052
01053
01054
01055
01056
01057
01058
01059 AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection;
01060
01061
01062
01063
01064
01065
01066
01067
01068
01069
01070 BasebandNameMod::BasebandName basebandName;
01071
01072
01073
01074
01075
01076
01077
01078
01079
01080
01081 ReceiverBandMod::ReceiverBand receiverBand;
01082
01083
01084
01085
01086
01087
01088
01089
01090
01091
01092 ArrayTime startValidTime;
01093
01094
01095
01096
01097
01098
01099
01100
01101
01102
01103 ArrayTime endValidTime;
01104
01105
01106
01107
01108
01109
01110
01111
01112
01113
01114 string refAntennaName;
01115
01116
01117
01118
01119
01120
01121
01122
01123
01124
01125 int numReceptor;
01126
01127
01128
01129
01130
01131
01132
01133
01134
01135
01136 vector<double > delayError;
01137
01138
01139
01140
01141
01142
01143
01144
01145
01146
01147 vector<double > delayOffset;
01148
01149
01150
01151
01152
01153
01154
01155
01156
01157
01158 vector<PolarizationTypeMod::PolarizationType > polarizationTypes;
01159
01160
01161
01162
01163
01164
01165
01166
01167
01168
01169 vector<double > reducedChiSquared;
01170
01171
01172
01173
01174
01175
01176
01177
01178
01179 bool crossDelayOffsetExists;
01180
01181
01182 double crossDelayOffset;
01183
01184
01185
01186
01187
01188
01189
01190
01191
01192 bool crossDelayOffsetErrorExists;
01193
01194
01195 double crossDelayOffsetError;
01196
01197
01198
01199
01200
01201
01202
01203
01204
01205 bool numSidebandExists;
01206
01207
01208 int numSideband;
01209
01210
01211
01212
01213
01214
01215
01216
01217
01218 bool refFreqExists;
01219
01220
01221 vector<Frequency > refFreq;
01222
01223
01224
01225
01226
01227
01228
01229
01230
01231 bool refFreqPhaseExists;
01232
01233
01234 vector<Angle > refFreqPhase;
01235
01236
01237
01238
01239
01240
01241
01242
01243
01244 bool sidebandsExists;
01245
01246
01247 vector<ReceiverSidebandMod::ReceiverSideband > sidebands;
01248
01249
01250
01251
01252
01254
01256
01257
01258
01259
01260
01261
01262 Tag calDataId;
01263
01264
01265
01266
01267
01268
01269
01270
01271
01272
01273 Tag calReductionId;
01274
01275
01276
01277
01278
01280
01282
01283
01284
01285
01286
01287
01288
01289
01290
01291
01292
01293
01294
01295
01296
01297
01299
01301 map<string, CalDelayAttributeFromBin> fromBinMethods;
01302 void antennaNameFromBin( EndianISStream& eiss);
01303 void atmPhaseCorrectionFromBin( EndianISStream& eiss);
01304 void basebandNameFromBin( EndianISStream& eiss);
01305 void receiverBandFromBin( EndianISStream& eiss);
01306 void calDataIdFromBin( EndianISStream& eiss);
01307 void calReductionIdFromBin( EndianISStream& eiss);
01308 void startValidTimeFromBin( EndianISStream& eiss);
01309 void endValidTimeFromBin( EndianISStream& eiss);
01310 void refAntennaNameFromBin( EndianISStream& eiss);
01311 void numReceptorFromBin( EndianISStream& eiss);
01312 void delayErrorFromBin( EndianISStream& eiss);
01313 void delayOffsetFromBin( EndianISStream& eiss);
01314 void polarizationTypesFromBin( EndianISStream& eiss);
01315 void reducedChiSquaredFromBin( EndianISStream& eiss);
01316
01317 void crossDelayOffsetFromBin( EndianISStream& eiss);
01318 void crossDelayOffsetErrorFromBin( EndianISStream& eiss);
01319 void numSidebandFromBin( EndianISStream& eiss);
01320 void refFreqFromBin( EndianISStream& eiss);
01321 void refFreqPhaseFromBin( EndianISStream& eiss);
01322 void sidebandsFromBin( EndianISStream& eiss);
01323
01324
01329 void toBin(EndianOSStream& eoss);
01330
01338 static CalDelayRow* fromBin(EndianISStream& eiss, CalDelayTable& table, const vector<string>& attributesSeq);
01339
01340 };
01341
01342 }
01343
01344 #endif