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 CalPointingRow_CLASS
00035 #define CalPointingRow_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::CalPointingRowIDL;
00047 #endif
00048
00049
00050
00051
00052
00053
00054 #include <ArrayTime.h>
00055 using asdm::ArrayTime;
00056
00057 #include <Temperature.h>
00058 using asdm::Temperature;
00059
00060 #include <Angle.h>
00061 using asdm::Angle;
00062
00063 #include <Tag.h>
00064 using asdm::Tag;
00065
00066 #include <Frequency.h>
00067 using asdm::Frequency;
00068
00069
00070
00071
00072
00073
00074
00075 #include "CReceiverBand.h"
00076 using namespace ReceiverBandMod;
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086 #include "CAntennaMake.h"
00087 using namespace AntennaMakeMod;
00088
00089
00090
00091 #include "CAtmPhaseCorrection.h"
00092 using namespace AtmPhaseCorrectionMod;
00093
00094
00095
00096
00097
00098
00099
00100 #include "CPointingModelMode.h"
00101 using namespace PointingModelModeMod;
00102
00103
00104
00105 #include "CPointingMethod.h"
00106 using namespace PointingMethodMod;
00107
00108
00109
00110
00111
00112 #include "CPolarizationType.h"
00113 using namespace PolarizationTypeMod;
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154 #include <ConversionException.h>
00155 #include <NoSuchRow.h>
00156 #include <IllegalAccessException.h>
00157
00158
00159
00160
00161
00162
00163 namespace asdm {
00164
00165
00166
00167
00168
00169 class CalDataRow;
00170
00171
00172 class CalReductionRow;
00173
00174
00175 class CalPointingRow;
00176 typedef void (CalPointingRow::*CalPointingAttributeFromBin) (EndianISStream& eiss);
00177
00184 class CalPointingRow {
00185 friend class asdm::CalPointingTable;
00186
00187 public:
00188
00189 virtual ~CalPointingRow();
00190
00194 CalPointingTable &getTable() const;
00195
00200 bool isAdded() const;
00201
00203
00205
00206
00207
00208
00209
00210
00211
00212
00217 string getAntennaName() const;
00218
00219
00220
00221
00231 void setAntennaName (string antennaName);
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00249 ReceiverBandMod::ReceiverBand getReceiverBand() const;
00250
00251
00252
00253
00263 void setReceiverBand (ReceiverBandMod::ReceiverBand receiverBand);
00264
00265
00266
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00281 ArrayTime getStartValidTime() const;
00282
00283
00284
00285
00293 void setStartValidTime (ArrayTime startValidTime);
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00311 ArrayTime getEndValidTime() const;
00312
00313
00314
00315
00323 void setEndValidTime (ArrayTime endValidTime);
00324
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00341 Temperature getAmbientTemperature() const;
00342
00343
00344
00345
00353 void setAmbientTemperature (Temperature ambientTemperature);
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00371 AntennaMakeMod::AntennaMake getAntennaMake() const;
00372
00373
00374
00375
00383 void setAntennaMake (AntennaMakeMod::AntennaMake antennaMake);
00384
00385
00386
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00401 AtmPhaseCorrectionMod::AtmPhaseCorrection getAtmPhaseCorrection() const;
00402
00403
00404
00405
00413 void setAtmPhaseCorrection (AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection);
00414
00415
00416
00417
00418
00419
00420
00421
00422
00423
00424
00425
00426
00431 vector<Angle > getDirection() const;
00432
00433
00434
00435
00443 void setDirection (vector<Angle > direction);
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00461 vector<Frequency > getFrequencyRange() const;
00462
00463
00464
00465
00473 void setFrequencyRange (vector<Frequency > frequencyRange);
00474
00475
00476
00477
00478
00479
00480
00481
00482
00483
00484
00485
00486
00491 PointingModelModeMod::PointingModelMode getPointingModelMode() const;
00492
00493
00494
00495
00503 void setPointingModelMode (PointingModelModeMod::PointingModelMode pointingModelMode);
00504
00505
00506
00507
00508
00509
00510
00511
00512
00513
00514
00515
00516
00521 PointingMethodMod::PointingMethod getPointingMethod() const;
00522
00523
00524
00525
00533 void setPointingMethod (PointingMethodMod::PointingMethod pointingMethod);
00534
00535
00536
00537
00538
00539
00540
00541
00542
00543
00544
00545
00546
00551 int getNumReceptor() const;
00552
00553
00554
00555
00563 void setNumReceptor (int numReceptor);
00564
00565
00566
00567
00568
00569
00570
00571
00572
00573
00574
00575
00576
00581 vector<PolarizationTypeMod::PolarizationType > getPolarizationTypes() const;
00582
00583
00584
00585
00593 void setPolarizationTypes (vector<PolarizationTypeMod::PolarizationType > polarizationTypes);
00594
00595
00596
00597
00598
00599
00600
00601
00602
00603
00604
00605
00606
00611 vector<vector<Angle > > getCollOffsetRelative() const;
00612
00613
00614
00615
00623 void setCollOffsetRelative (vector<vector<Angle > > collOffsetRelative);
00624
00625
00626
00627
00628
00629
00630
00631
00632
00633
00634
00635
00636
00641 vector<vector<Angle > > getCollOffsetAbsolute() const;
00642
00643
00644
00645
00653 void setCollOffsetAbsolute (vector<vector<Angle > > collOffsetAbsolute);
00654
00655
00656
00657
00658
00659
00660
00661
00662
00663
00664
00665
00666
00671 vector<vector<Angle > > getCollError() const;
00672
00673
00674
00675
00683 void setCollError (vector<vector<Angle > > collError);
00684
00685
00686
00687
00688
00689
00690
00691
00692
00693
00694
00695
00696
00701 vector<vector<bool > > getCollOffsetTied() const;
00702
00703
00704
00705
00713 void setCollOffsetTied (vector<vector<bool > > collOffsetTied);
00714
00715
00716
00717
00718
00719
00720
00721
00722
00723
00724
00725
00726
00731 vector<double > getReducedChiSquared() const;
00732
00733
00734
00735
00743 void setReducedChiSquared (vector<double > reducedChiSquared);
00744
00745
00746
00747
00748
00749
00750
00751
00752
00753
00754
00759 bool isAveragedPolarizationsExists() const;
00760
00761
00762
00768 bool getAveragedPolarizations() const;
00769
00770
00771
00772
00779 void setAveragedPolarizations (bool averagedPolarizations);
00780
00781
00782
00783
00787 void clearAveragedPolarizations ();
00788
00789
00790
00791
00792
00793
00794
00795
00800 bool isBeamPAExists() const;
00801
00802
00803
00809 vector<Angle > getBeamPA() const;
00810
00811
00812
00813
00820 void setBeamPA (vector<Angle > beamPA);
00821
00822
00823
00824
00828 void clearBeamPA ();
00829
00830
00831
00832
00833
00834
00835
00836
00841 bool isBeamPAErrorExists() const;
00842
00843
00844
00850 vector<Angle > getBeamPAError() const;
00851
00852
00853
00854
00861 void setBeamPAError (vector<Angle > beamPAError);
00862
00863
00864
00865
00869 void clearBeamPAError ();
00870
00871
00872
00873
00874
00875
00876
00877
00882 bool isBeamPAWasFixedExists() const;
00883
00884
00885
00891 bool getBeamPAWasFixed() const;
00892
00893
00894
00895
00902 void setBeamPAWasFixed (bool beamPAWasFixed);
00903
00904
00905
00906
00910 void clearBeamPAWasFixed ();
00911
00912
00913
00914
00915
00916
00917
00918
00923 bool isBeamWidthExists() const;
00924
00925
00926
00932 vector<vector<Angle > > getBeamWidth() const;
00933
00934
00935
00936
00943 void setBeamWidth (vector<vector<Angle > > beamWidth);
00944
00945
00946
00947
00951 void clearBeamWidth ();
00952
00953
00954
00955
00956
00957
00958
00959
00964 bool isBeamWidthErrorExists() const;
00965
00966
00967
00973 vector<vector<Angle > > getBeamWidthError() const;
00974
00975
00976
00977
00984 void setBeamWidthError (vector<vector<Angle > > beamWidthError);
00985
00986
00987
00988
00992 void clearBeamWidthError ();
00993
00994
00995
00996
00997
00998
00999
01000
01005 bool isBeamWidthWasFixedExists() const;
01006
01007
01008
01014 vector<bool > getBeamWidthWasFixed() const;
01015
01016
01017
01018
01025 void setBeamWidthWasFixed (vector<bool > beamWidthWasFixed);
01026
01027
01028
01029
01033 void clearBeamWidthWasFixed ();
01034
01035
01036
01037
01038
01039
01040
01041
01046 bool isOffIntensityExists() const;
01047
01048
01049
01055 vector<Temperature > getOffIntensity() const;
01056
01057
01058
01059
01066 void setOffIntensity (vector<Temperature > offIntensity);
01067
01068
01069
01070
01074 void clearOffIntensity ();
01075
01076
01077
01078
01079
01080
01081
01082
01087 bool isOffIntensityErrorExists() const;
01088
01089
01090
01096 vector<Temperature > getOffIntensityError() const;
01097
01098
01099
01100
01107 void setOffIntensityError (vector<Temperature > offIntensityError);
01108
01109
01110
01111
01115 void clearOffIntensityError ();
01116
01117
01118
01119
01120
01121
01122
01123
01128 bool isOffIntensityWasFixedExists() const;
01129
01130
01131
01137 bool getOffIntensityWasFixed() const;
01138
01139
01140
01141
01148 void setOffIntensityWasFixed (bool offIntensityWasFixed);
01149
01150
01151
01152
01156 void clearOffIntensityWasFixed ();
01157
01158
01159
01160
01161
01162
01163
01164
01169 bool isPeakIntensityExists() const;
01170
01171
01172
01178 vector<Temperature > getPeakIntensity() const;
01179
01180
01181
01182
01189 void setPeakIntensity (vector<Temperature > peakIntensity);
01190
01191
01192
01193
01197 void clearPeakIntensity ();
01198
01199
01200
01201
01202
01203
01204
01205
01210 bool isPeakIntensityErrorExists() const;
01211
01212
01213
01219 vector<Temperature > getPeakIntensityError() const;
01220
01221
01222
01223
01230 void setPeakIntensityError (vector<Temperature > peakIntensityError);
01231
01232
01233
01234
01238 void clearPeakIntensityError ();
01239
01240
01241
01242
01243
01244
01245
01246
01251 bool isPeakIntensityWasFixedExists() const;
01252
01253
01254
01260 bool getPeakIntensityWasFixed() const;
01261
01262
01263
01264
01271 void setPeakIntensityWasFixed (bool peakIntensityWasFixed);
01272
01273
01274
01275
01279 void clearPeakIntensityWasFixed ();
01280
01281
01282
01284
01286
01287
01288
01289
01290
01291
01292
01293
01298 Tag getCalDataId() const;
01299
01300
01301
01302
01312 void setCalDataId (Tag calDataId);
01313
01314
01315
01316
01317
01318
01319
01320
01321
01322
01323
01324
01325
01330 Tag getCalReductionId() const;
01331
01332
01333
01334
01344 void setCalReductionId (Tag calReductionId);
01345
01346
01347
01348
01349
01350
01352
01354
01355
01356
01357
01358
01365 CalDataRow* getCalDataUsingCalDataId();
01366
01367
01368
01369
01370
01371
01372
01373
01380 CalReductionRow* getCalReductionUsingCalReductionId();
01381
01382
01383
01384
01385
01386
01387
01433 bool compareNoAutoInc(string antennaName, ReceiverBandMod::ReceiverBand receiverBand, Tag calDataId, Tag calReductionId, ArrayTime startValidTime, ArrayTime endValidTime, Temperature ambientTemperature, AntennaMakeMod::AntennaMake antennaMake, AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection, vector<Angle > direction, vector<Frequency > frequencyRange, PointingModelModeMod::PointingModelMode pointingModelMode, PointingMethodMod::PointingMethod pointingMethod, int numReceptor, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, vector<vector<Angle > > collOffsetRelative, vector<vector<Angle > > collOffsetAbsolute, vector<vector<Angle > > collError, vector<vector<bool > > collOffsetTied, vector<double > reducedChiSquared);
01434
01435
01436
01437
01475 bool compareRequiredValue(ArrayTime startValidTime, ArrayTime endValidTime, Temperature ambientTemperature, AntennaMakeMod::AntennaMake antennaMake, AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection, vector<Angle > direction, vector<Frequency > frequencyRange, PointingModelModeMod::PointingModelMode pointingModelMode, PointingMethodMod::PointingMethod pointingMethod, int numReceptor, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, vector<vector<Angle > > collOffsetRelative, vector<vector<Angle > > collOffsetAbsolute, vector<vector<Angle > > collError, vector<vector<bool > > collOffsetTied, vector<double > reducedChiSquared);
01476
01477
01486 bool equalByRequiredValue(CalPointingRow* x) ;
01487
01488 #ifndef WITHOUT_ACS
01489
01493 CalPointingRowIDL *toIDL() const;
01494 #endif
01495
01496 #ifndef WITHOUT_ACS
01497
01502 void setFromIDL (CalPointingRowIDL x) ;
01503 #endif
01504
01509 string toXML() const;
01510
01517 void setFromXML (string rowDoc) ;
01518
01519 private:
01523 CalPointingTable &table;
01527 bool hasBeenAdded;
01528
01529
01530 void isAdded(bool added);
01531
01532
01541 CalPointingRow (CalPointingTable &table);
01542
01560 CalPointingRow (CalPointingTable &table, CalPointingRow &row);
01561
01563
01565
01566
01567
01568
01569
01570
01571 string antennaName;
01572
01573
01574
01575
01576
01577
01578
01579
01580
01581
01582 ReceiverBandMod::ReceiverBand receiverBand;
01583
01584
01585
01586
01587
01588
01589
01590
01591
01592
01593 ArrayTime startValidTime;
01594
01595
01596
01597
01598
01599
01600
01601
01602
01603
01604 ArrayTime endValidTime;
01605
01606
01607
01608
01609
01610
01611
01612
01613
01614
01615 Temperature ambientTemperature;
01616
01617
01618
01619
01620
01621
01622
01623
01624
01625
01626 AntennaMakeMod::AntennaMake antennaMake;
01627
01628
01629
01630
01631
01632
01633
01634
01635
01636
01637 AtmPhaseCorrectionMod::AtmPhaseCorrection atmPhaseCorrection;
01638
01639
01640
01641
01642
01643
01644
01645
01646
01647
01648 vector<Angle > direction;
01649
01650
01651
01652
01653
01654
01655
01656
01657
01658
01659 vector<Frequency > frequencyRange;
01660
01661
01662
01663
01664
01665
01666
01667
01668
01669
01670 PointingModelModeMod::PointingModelMode pointingModelMode;
01671
01672
01673
01674
01675
01676
01677
01678
01679
01680
01681 PointingMethodMod::PointingMethod pointingMethod;
01682
01683
01684
01685
01686
01687
01688
01689
01690
01691
01692 int numReceptor;
01693
01694
01695
01696
01697
01698
01699
01700
01701
01702
01703 vector<PolarizationTypeMod::PolarizationType > polarizationTypes;
01704
01705
01706
01707
01708
01709
01710
01711
01712
01713
01714 vector<vector<Angle > > collOffsetRelative;
01715
01716
01717
01718
01719
01720
01721
01722
01723
01724
01725 vector<vector<Angle > > collOffsetAbsolute;
01726
01727
01728
01729
01730
01731
01732
01733
01734
01735
01736 vector<vector<Angle > > collError;
01737
01738
01739
01740
01741
01742
01743
01744
01745
01746
01747 vector<vector<bool > > collOffsetTied;
01748
01749
01750
01751
01752
01753
01754
01755
01756
01757
01758 vector<double > reducedChiSquared;
01759
01760
01761
01762
01763
01764
01765
01766
01767
01768 bool averagedPolarizationsExists;
01769
01770
01771 bool averagedPolarizations;
01772
01773
01774
01775
01776
01777
01778
01779
01780
01781 bool beamPAExists;
01782
01783
01784 vector<Angle > beamPA;
01785
01786
01787
01788
01789
01790
01791
01792
01793
01794 bool beamPAErrorExists;
01795
01796
01797 vector<Angle > beamPAError;
01798
01799
01800
01801
01802
01803
01804
01805
01806
01807 bool beamPAWasFixedExists;
01808
01809
01810 bool beamPAWasFixed;
01811
01812
01813
01814
01815
01816
01817
01818
01819
01820 bool beamWidthExists;
01821
01822
01823 vector<vector<Angle > > beamWidth;
01824
01825
01826
01827
01828
01829
01830
01831
01832
01833 bool beamWidthErrorExists;
01834
01835
01836 vector<vector<Angle > > beamWidthError;
01837
01838
01839
01840
01841
01842
01843
01844
01845
01846 bool beamWidthWasFixedExists;
01847
01848
01849 vector<bool > beamWidthWasFixed;
01850
01851
01852
01853
01854
01855
01856
01857
01858
01859 bool offIntensityExists;
01860
01861
01862 vector<Temperature > offIntensity;
01863
01864
01865
01866
01867
01868
01869
01870
01871
01872 bool offIntensityErrorExists;
01873
01874
01875 vector<Temperature > offIntensityError;
01876
01877
01878
01879
01880
01881
01882
01883
01884
01885 bool offIntensityWasFixedExists;
01886
01887
01888 bool offIntensityWasFixed;
01889
01890
01891
01892
01893
01894
01895
01896
01897
01898 bool peakIntensityExists;
01899
01900
01901 vector<Temperature > peakIntensity;
01902
01903
01904
01905
01906
01907
01908
01909
01910
01911 bool peakIntensityErrorExists;
01912
01913
01914 vector<Temperature > peakIntensityError;
01915
01916
01917
01918
01919
01920
01921
01922
01923
01924 bool peakIntensityWasFixedExists;
01925
01926
01927 bool peakIntensityWasFixed;
01928
01929
01930
01931
01932
01934
01936
01937
01938
01939
01940
01941
01942 Tag calDataId;
01943
01944
01945
01946
01947
01948
01949
01950
01951
01952
01953 Tag calReductionId;
01954
01955
01956
01957
01958
01960
01962
01963
01964
01965
01966
01967
01968
01969
01970
01971
01972
01973
01974
01975
01976
01977
01979
01981 map<string, CalPointingAttributeFromBin> fromBinMethods;
01982 void antennaNameFromBin( EndianISStream& eiss);
01983 void receiverBandFromBin( EndianISStream& eiss);
01984 void calDataIdFromBin( EndianISStream& eiss);
01985 void calReductionIdFromBin( EndianISStream& eiss);
01986 void startValidTimeFromBin( EndianISStream& eiss);
01987 void endValidTimeFromBin( EndianISStream& eiss);
01988 void ambientTemperatureFromBin( EndianISStream& eiss);
01989 void antennaMakeFromBin( EndianISStream& eiss);
01990 void atmPhaseCorrectionFromBin( EndianISStream& eiss);
01991 void directionFromBin( EndianISStream& eiss);
01992 void frequencyRangeFromBin( EndianISStream& eiss);
01993 void pointingModelModeFromBin( EndianISStream& eiss);
01994 void pointingMethodFromBin( EndianISStream& eiss);
01995 void numReceptorFromBin( EndianISStream& eiss);
01996 void polarizationTypesFromBin( EndianISStream& eiss);
01997 void collOffsetRelativeFromBin( EndianISStream& eiss);
01998 void collOffsetAbsoluteFromBin( EndianISStream& eiss);
01999 void collErrorFromBin( EndianISStream& eiss);
02000 void collOffsetTiedFromBin( EndianISStream& eiss);
02001 void reducedChiSquaredFromBin( EndianISStream& eiss);
02002
02003 void averagedPolarizationsFromBin( EndianISStream& eiss);
02004 void beamPAFromBin( EndianISStream& eiss);
02005 void beamPAErrorFromBin( EndianISStream& eiss);
02006 void beamPAWasFixedFromBin( EndianISStream& eiss);
02007 void beamWidthFromBin( EndianISStream& eiss);
02008 void beamWidthErrorFromBin( EndianISStream& eiss);
02009 void beamWidthWasFixedFromBin( EndianISStream& eiss);
02010 void offIntensityFromBin( EndianISStream& eiss);
02011 void offIntensityErrorFromBin( EndianISStream& eiss);
02012 void offIntensityWasFixedFromBin( EndianISStream& eiss);
02013 void peakIntensityFromBin( EndianISStream& eiss);
02014 void peakIntensityErrorFromBin( EndianISStream& eiss);
02015 void peakIntensityWasFixedFromBin( EndianISStream& eiss);
02016
02017
02022 void toBin(EndianOSStream& eoss);
02023
02031 static CalPointingRow* fromBin(EndianISStream& eiss, CalPointingTable& table, const vector<string>& attributesSeq);
02032
02033 };
02034
02035 }
02036
02037 #endif