CalAmpliRow.h
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 CalAmpliRow_CLASS
00035 #define CalAmpliRow_CLASS
00036
00037 #include <vector>
00038 #include <string>
00039 #include <set>
00040
00041 #ifndef WITHOUT_ACS
00042 #include <asdmIDLC.h>
00043 #endif
00044
00045
00046
00047
00048
00049
00050
00051 #include <ArrayTime.h>
00052
00053
00054
00055 #include <Tag.h>
00056
00057
00058
00059 #include <Frequency.h>
00060
00061
00062
00063
00064
00065
00066
00067
00068 #include "CAtmPhaseCorrection.h"
00069
00070
00071
00072 #include "CReceiverBand.h"
00073
00074
00075
00076 #include "CBasebandName.h"
00077
00078
00079
00080
00081
00082 #include "CPolarizationType.h"
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099 #include <ConversionException.h>
00100 #include <NoSuchRow.h>
00101 #include <IllegalAccessException.h>
00102
00103 #include <RowTransformer.h>
00104
00105
00106
00107
00108
00109
00110 namespace asdm {
00111
00112
00113
00114
00115
00116 class CalDataRow;
00117
00118
00119 class CalReductionRow;
00120
00121
00122 class CalAmpliRow;
00123 typedef void (CalAmpliRow::*CalAmpliAttributeFromBin) (EndianIStream& eis);
00124 typedef void (CalAmpliRow::*CalAmpliAttributeFromText) (const string& s);
00125
00132 class CalAmpliRow {
00133 friend class asdm::CalAmpliTable;
00134 friend class asdm::RowTransformer<CalAmpliRow>;
00135
00136
00137 public:
00138
00139 virtual ~CalAmpliRow();
00140
00144 CalAmpliTable &getTable() const;
00145
00150 bool isAdded() const;
00151
00153
00155
00156
00157
00158
00159
00160
00161
00162
00167 string getAntennaName() const;
00168
00169
00170
00171
00181 void setAntennaName (string antennaName);
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00199 AtmPhaseCorrectionMod::AtmPhaseCorrection getAtmPhaseCorrection() const;
00200
00201
00202
00203
00213 void setAtmPhaseCorrection (AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection);
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00231 ReceiverBandMod::ReceiverBand getReceiverBand() const;
00232
00233
00234
00235
00245 void setReceiverBand (ReceiverBandMod::ReceiverBand receiverBand);
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00263 BasebandNameMod::BasebandName getBasebandName() const;
00264
00265
00266
00267
00277 void setBasebandName (BasebandNameMod::BasebandName basebandName);
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00295 int getNumReceptor() const;
00296
00297
00298
00299
00307 void setNumReceptor (int numReceptor);
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00325 vector<PolarizationTypeMod::PolarizationType > getPolarizationTypes() const;
00326
00327
00328
00329
00337 void setPolarizationTypes (vector<PolarizationTypeMod::PolarizationType > polarizationTypes);
00338
00339
00340
00341
00342
00343
00344
00345
00346
00347
00348
00349
00350
00355 ArrayTime getStartValidTime() const;
00356
00357
00358
00359
00367 void setStartValidTime (ArrayTime startValidTime);
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377
00378
00379
00380
00385 ArrayTime getEndValidTime() const;
00386
00387
00388
00389
00397 void setEndValidTime (ArrayTime endValidTime);
00398
00399
00400
00401
00402
00403
00404
00405
00406
00407
00408
00409
00410
00415 vector<Frequency > getFrequencyRange() const;
00416
00417
00418
00419
00427 void setFrequencyRange (vector<Frequency > frequencyRange);
00428
00429
00430
00431
00432
00433
00434
00435
00436
00437
00438
00439
00440
00445 vector<float > getApertureEfficiency() const;
00446
00447
00448
00449
00457 void setApertureEfficiency (vector<float > apertureEfficiency);
00458
00459
00460
00461
00462
00463
00464
00465
00466
00467
00468
00469
00470
00475 vector<float > getApertureEfficiencyError() const;
00476
00477
00478
00479
00487 void setApertureEfficiencyError (vector<float > apertureEfficiencyError);
00488
00489
00490
00491
00492
00493
00494
00495
00496
00497
00498
00503 bool isCorrectionValidityExists() const;
00504
00505
00506
00512 bool getCorrectionValidity() const;
00513
00514
00515
00516
00523 void setCorrectionValidity (bool correctionValidity);
00524
00525
00526
00527
00531 void clearCorrectionValidity ();
00532
00533
00534
00536
00538
00539
00540
00541
00542
00543
00544
00545
00550 Tag getCalDataId() const;
00551
00552
00553
00554
00564 void setCalDataId (Tag calDataId);
00565
00566
00567
00568
00569
00570
00571
00572
00573
00574
00575
00576
00577
00582 Tag getCalReductionId() const;
00583
00584
00585
00586
00596 void setCalReductionId (Tag calReductionId);
00597
00598
00599
00600
00601
00602
00604
00606
00607
00608
00609
00610
00617 CalDataRow* getCalDataUsingCalDataId();
00618
00619
00620
00621
00622
00623
00624
00625
00632 CalReductionRow* getCalReductionUsingCalReductionId();
00633
00634
00635
00636
00637
00638
00639
00671 bool compareNoAutoInc(string antennaName, AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection, ReceiverBandMod::ReceiverBand receiverBand, BasebandNameMod::BasebandName basebandName, Tag calDataId, Tag calReductionId, int numReceptor, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, ArrayTime startValidTime, ArrayTime endValidTime, vector<Frequency > frequencyRange, vector<float > apertureEfficiency, vector<float > apertureEfficiencyError);
00672
00673
00674
00675
00695 bool compareRequiredValue(int numReceptor, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, ArrayTime startValidTime, ArrayTime endValidTime, vector<Frequency > frequencyRange, vector<float > apertureEfficiency, vector<float > apertureEfficiencyError);
00696
00697
00706 bool equalByRequiredValue(CalAmpliRow* x) ;
00707
00708 #ifndef WITHOUT_ACS
00709
00713 asdmIDL::CalAmpliRowIDL *toIDL() const;
00714
00722 void toIDL(asdmIDL::CalAmpliRowIDL& x) const;
00723 #endif
00724
00725 #ifndef WITHOUT_ACS
00726
00731 void setFromIDL (asdmIDL::CalAmpliRowIDL x) ;
00732 #endif
00733
00738 std::string toXML() const;
00739
00746 void setFromXML (std::string rowDoc) ;
00747
00750
00752
00753 std::map<std::string, CalAmpliAttributeFromBin> fromBinMethods;
00754 void antennaNameFromBin( EndianIStream& eis);
00755 void atmPhaseCorrectionFromBin( EndianIStream& eis);
00756 void receiverBandFromBin( EndianIStream& eis);
00757 void basebandNameFromBin( EndianIStream& eis);
00758 void calDataIdFromBin( EndianIStream& eis);
00759 void calReductionIdFromBin( EndianIStream& eis);
00760 void numReceptorFromBin( EndianIStream& eis);
00761 void polarizationTypesFromBin( EndianIStream& eis);
00762 void startValidTimeFromBin( EndianIStream& eis);
00763 void endValidTimeFromBin( EndianIStream& eis);
00764 void frequencyRangeFromBin( EndianIStream& eis);
00765 void apertureEfficiencyFromBin( EndianIStream& eis);
00766 void apertureEfficiencyErrorFromBin( EndianIStream& eis);
00767
00768 void correctionValidityFromBin( EndianIStream& eis);
00769
00770
00778 static CalAmpliRow* fromBin(EndianIStream& eis, CalAmpliTable& table, const std::vector<std::string>& attributesSeq);
00779
00786 void fromText(const std::string& attributeName, const std::string& t);
00788
00789 private:
00793 CalAmpliTable &table;
00797 bool hasBeenAdded;
00798
00799
00800 void isAdded(bool added);
00801
00802
00811 CalAmpliRow (CalAmpliTable &table);
00812
00830 CalAmpliRow (CalAmpliTable &table, CalAmpliRow &row);
00831
00833
00835
00836
00837
00838
00839
00840
00841 string antennaName;
00842
00843
00844
00845
00846
00847
00848
00849
00850
00851
00852 AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection;
00853
00854
00855
00856
00857
00858
00859
00860
00861
00862
00863 ReceiverBandMod::ReceiverBand receiverBand;
00864
00865
00866
00867
00868
00869
00870
00871
00872
00873
00874 BasebandNameMod::BasebandName basebandName;
00875
00876
00877
00878
00879
00880
00881
00882
00883
00884
00885 int numReceptor;
00886
00887
00888
00889
00890
00891
00892
00893
00894
00895
00896 vector<PolarizationTypeMod::PolarizationType > polarizationTypes;
00897
00898
00899
00900
00901
00902
00903
00904
00905
00906
00907 ArrayTime startValidTime;
00908
00909
00910
00911
00912
00913
00914
00915
00916
00917
00918 ArrayTime endValidTime;
00919
00920
00921
00922
00923
00924
00925
00926
00927
00928
00929 vector<Frequency > frequencyRange;
00930
00931
00932
00933
00934
00935
00936
00937
00938
00939
00940 vector<float > apertureEfficiency;
00941
00942
00943
00944
00945
00946
00947
00948
00949
00950
00951 vector<float > apertureEfficiencyError;
00952
00953
00954
00955
00956
00957
00958
00959
00960
00961 bool correctionValidityExists;
00962
00963
00964 bool correctionValidity;
00965
00966
00967
00968
00969
00971
00973
00974
00975
00976
00977
00978
00979 Tag calDataId;
00980
00981
00982
00983
00984
00985
00986
00987
00988
00989
00990 Tag calReductionId;
00991
00992
00993
00994
00995
00997
00999
01000
01001
01002
01003
01004
01005
01006
01007
01008
01009
01010
01011
01012
01013
01014
01015
01017
01019
01020
01021
01022
01023
01024
01025
01026
01027
01028
01029
01030
01031
01032
01033
01034
01035
01036
01037
01039
01041 std::map<std::string, CalAmpliAttributeFromText> fromTextMethods;
01042
01043 void antennaNameFromText (const string & s);
01044
01045
01046 void atmPhaseCorrectionFromText (const string & s);
01047
01048
01049 void receiverBandFromText (const string & s);
01050
01051
01052 void basebandNameFromText (const string & s);
01053
01054
01055 void calDataIdFromText (const string & s);
01056
01057
01058 void calReductionIdFromText (const string & s);
01059
01060
01061 void numReceptorFromText (const string & s);
01062
01063
01064 void polarizationTypesFromText (const string & s);
01065
01066
01067 void startValidTimeFromText (const string & s);
01068
01069
01070 void endValidTimeFromText (const string & s);
01071
01072
01073 void frequencyRangeFromText (const string & s);
01074
01075
01076 void apertureEfficiencyFromText (const string & s);
01077
01078
01079 void apertureEfficiencyErrorFromText (const string & s);
01080
01081
01082
01083 void correctionValidityFromText (const string & s);
01084
01085
01086
01091 void toBin(EndianOSStream& eoss);
01092
01102 };
01103
01104 }
01105
01106 #endif