SpectralWindowRow.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 SpectralWindowRow_CLASS
00035 #define SpectralWindowRow_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 <Tag.h>
00052
00053
00054
00055 #include <Frequency.h>
00056
00057
00058
00059
00060
00061
00062
00063
00064 #include "CBasebandName.h"
00065
00066
00067
00068 #include "CNetSideband.h"
00069
00070
00071
00072
00073
00074
00075
00076 #include "CSidebandProcessingMode.h"
00077
00078
00079
00080
00081
00082 #include "CWindowFunction.h"
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096 #include "CCorrelationBit.h"
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110 #include "CFrequencyReferenceCode.h"
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128 #include "CSpectralResolutionType.h"
00129
00130
00131
00132
00133 #include <ConversionException.h>
00134 #include <NoSuchRow.h>
00135 #include <IllegalAccessException.h>
00136
00137 #include <RowTransformer.h>
00138
00139
00140
00141
00142
00143
00144 namespace asdm {
00145
00146
00147
00148
00149
00150 class SpectralWindowRow;
00151
00152
00153 class SpectralWindowRow;
00154
00155
00156 class DopplerRow;
00157
00158
00159 class SpectralWindowRow;
00160 typedef void (SpectralWindowRow::*SpectralWindowAttributeFromBin) (EndianIStream& eis);
00161 typedef void (SpectralWindowRow::*SpectralWindowAttributeFromText) (const string& s);
00162
00169 class SpectralWindowRow {
00170 friend class asdm::SpectralWindowTable;
00171 friend class asdm::RowTransformer<SpectralWindowRow>;
00172
00173
00174 public:
00175
00176 virtual ~SpectralWindowRow();
00177
00181 SpectralWindowTable &getTable() const;
00182
00187 bool isAdded() const;
00188
00190
00192
00193
00194
00195
00196
00197
00198
00199
00204 Tag getSpectralWindowId() const;
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00224 BasebandNameMod::BasebandName getBasebandName() const;
00225
00226
00227
00228
00236 void setBasebandName (BasebandNameMod::BasebandName basebandName);
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00254 NetSidebandMod::NetSideband getNetSideband() const;
00255
00256
00257
00258
00266 void setNetSideband (NetSidebandMod::NetSideband netSideband);
00267
00268
00269
00270
00271
00272
00273
00274
00275
00276
00277
00278
00279
00284 int getNumChan() const;
00285
00286
00287
00288
00296 void setNumChan (int numChan);
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00314 Frequency getRefFreq() const;
00315
00316
00317
00318
00326 void setRefFreq (Frequency refFreq);
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00344 SidebandProcessingModeMod::SidebandProcessingMode getSidebandProcessingMode() const;
00345
00346
00347
00348
00356 void setSidebandProcessingMode (SidebandProcessingModeMod::SidebandProcessingMode sidebandProcessingMode);
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00374 Frequency getTotBandwidth() const;
00375
00376
00377
00378
00386 void setTotBandwidth (Frequency totBandwidth);
00387
00388
00389
00390
00391
00392
00393
00394
00395
00396
00397
00398
00399
00404 WindowFunctionMod::WindowFunction getWindowFunction() const;
00405
00406
00407
00408
00416 void setWindowFunction (WindowFunctionMod::WindowFunction windowFunction);
00417
00418
00419
00420
00421
00422
00423
00424
00425
00426
00427
00432 bool isChanFreqStartExists() const;
00433
00434
00435
00441 Frequency getChanFreqStart() const;
00442
00443
00444
00445
00452 void setChanFreqStart (Frequency chanFreqStart);
00453
00454
00455
00456
00460 void clearChanFreqStart ();
00461
00462
00463
00464
00465
00466
00467
00468
00473 bool isChanFreqStepExists() const;
00474
00475
00476
00482 Frequency getChanFreqStep() const;
00483
00484
00485
00486
00493 void setChanFreqStep (Frequency chanFreqStep);
00494
00495
00496
00497
00501 void clearChanFreqStep ();
00502
00503
00504
00505
00506
00507
00508
00509
00514 bool isChanFreqArrayExists() const;
00515
00516
00517
00523 vector<Frequency > getChanFreqArray() const;
00524
00525
00526
00527
00534 void setChanFreqArray (vector<Frequency > chanFreqArray);
00535
00536
00537
00538
00542 void clearChanFreqArray ();
00543
00544
00545
00546
00547
00548
00549
00550
00555 bool isChanWidthExists() const;
00556
00557
00558
00564 Frequency getChanWidth() const;
00565
00566
00567
00568
00575 void setChanWidth (Frequency chanWidth);
00576
00577
00578
00579
00583 void clearChanWidth ();
00584
00585
00586
00587
00588
00589
00590
00591
00596 bool isChanWidthArrayExists() const;
00597
00598
00599
00605 vector<Frequency > getChanWidthArray() const;
00606
00607
00608
00609
00616 void setChanWidthArray (vector<Frequency > chanWidthArray);
00617
00618
00619
00620
00624 void clearChanWidthArray ();
00625
00626
00627
00628
00629
00630
00631
00632
00637 bool isCorrelationBitExists() const;
00638
00639
00640
00646 CorrelationBitMod::CorrelationBit getCorrelationBit() const;
00647
00648
00649
00650
00657 void setCorrelationBit (CorrelationBitMod::CorrelationBit correlationBit);
00658
00659
00660
00661
00665 void clearCorrelationBit ();
00666
00667
00668
00669
00670
00671
00672
00673
00678 bool isEffectiveBwExists() const;
00679
00680
00681
00687 Frequency getEffectiveBw() const;
00688
00689
00690
00691
00698 void setEffectiveBw (Frequency effectiveBw);
00699
00700
00701
00702
00706 void clearEffectiveBw ();
00707
00708
00709
00710
00711
00712
00713
00714
00719 bool isEffectiveBwArrayExists() const;
00720
00721
00722
00728 vector<Frequency > getEffectiveBwArray() const;
00729
00730
00731
00732
00739 void setEffectiveBwArray (vector<Frequency > effectiveBwArray);
00740
00741
00742
00743
00747 void clearEffectiveBwArray ();
00748
00749
00750
00751
00752
00753
00754
00755
00760 bool isFreqGroupExists() const;
00761
00762
00763
00769 int getFreqGroup() const;
00770
00771
00772
00773
00780 void setFreqGroup (int freqGroup);
00781
00782
00783
00784
00788 void clearFreqGroup ();
00789
00790
00791
00792
00793
00794
00795
00796
00801 bool isFreqGroupNameExists() const;
00802
00803
00804
00810 string getFreqGroupName() const;
00811
00812
00813
00814
00821 void setFreqGroupName (string freqGroupName);
00822
00823
00824
00825
00829 void clearFreqGroupName ();
00830
00831
00832
00833
00834
00835
00836
00837
00842 bool isLineArrayExists() const;
00843
00844
00845
00851 vector<bool > getLineArray() const;
00852
00853
00854
00855
00862 void setLineArray (vector<bool > lineArray);
00863
00864
00865
00866
00870 void clearLineArray ();
00871
00872
00873
00874
00875
00876
00877
00878
00883 bool isMeasFreqRefExists() const;
00884
00885
00886
00892 FrequencyReferenceCodeMod::FrequencyReferenceCode getMeasFreqRef() const;
00893
00894
00895
00896
00903 void setMeasFreqRef (FrequencyReferenceCodeMod::FrequencyReferenceCode measFreqRef);
00904
00905
00906
00907
00911 void clearMeasFreqRef ();
00912
00913
00914
00915
00916
00917
00918
00919
00924 bool isNameExists() const;
00925
00926
00927
00933 string getName() const;
00934
00935
00936
00937
00944 void setName (string name);
00945
00946
00947
00948
00952 void clearName ();
00953
00954
00955
00956
00957
00958
00959
00960
00965 bool isOversamplingExists() const;
00966
00967
00968
00974 bool getOversampling() const;
00975
00976
00977
00978
00985 void setOversampling (bool oversampling);
00986
00987
00988
00989
00993 void clearOversampling ();
00994
00995
00996
00997
00998
00999
01000
01001
01006 bool isQuantizationExists() const;
01007
01008
01009
01015 bool getQuantization() const;
01016
01017
01018
01019
01026 void setQuantization (bool quantization);
01027
01028
01029
01030
01034 void clearQuantization ();
01035
01036
01037
01038
01039
01040
01041
01042
01047 bool isRefChanExists() const;
01048
01049
01050
01056 double getRefChan() const;
01057
01058
01059
01060
01067 void setRefChan (double refChan);
01068
01069
01070
01071
01075 void clearRefChan ();
01076
01077
01078
01079
01080
01081
01082
01083
01088 bool isResolutionExists() const;
01089
01090
01091
01097 Frequency getResolution() const;
01098
01099
01100
01101
01108 void setResolution (Frequency resolution);
01109
01110
01111
01112
01116 void clearResolution ();
01117
01118
01119
01120
01121
01122
01123
01124
01129 bool isResolutionArrayExists() const;
01130
01131
01132
01138 vector<Frequency > getResolutionArray() const;
01139
01140
01141
01142
01149 void setResolutionArray (vector<Frequency > resolutionArray);
01150
01151
01152
01153
01157 void clearResolutionArray ();
01158
01159
01160
01161
01162
01163
01164
01165
01170 bool isNumAssocValuesExists() const;
01171
01172
01173
01179 int getNumAssocValues() const;
01180
01181
01182
01183
01190 void setNumAssocValues (int numAssocValues);
01191
01192
01193
01194
01198 void clearNumAssocValues ();
01199
01200
01201
01202
01203
01204
01205
01206
01211 bool isAssocNatureExists() const;
01212
01213
01214
01220 vector<SpectralResolutionTypeMod::SpectralResolutionType > getAssocNature() const;
01221
01222
01223
01224
01231 void setAssocNature (vector<SpectralResolutionTypeMod::SpectralResolutionType > assocNature);
01232
01233
01234
01235
01239 void clearAssocNature ();
01240
01241
01242
01244
01246
01247
01248
01249
01250
01251
01256 bool isAssocSpectralWindowIdExists() const;
01257
01258
01259
01265 vector<Tag> getAssocSpectralWindowId() const;
01266
01267
01268
01269
01276 void setAssocSpectralWindowId (vector<Tag> assocSpectralWindowId);
01277
01278
01279
01280
01284 void clearAssocSpectralWindowId ();
01285
01286
01287
01288
01289
01290
01291
01292
01297 bool isDopplerIdExists() const;
01298
01299
01300
01306 int getDopplerId() const;
01307
01308
01309
01310
01317 void setDopplerId (int dopplerId);
01318
01319
01320
01321
01325 void clearDopplerId ();
01326
01327
01328
01329
01330
01331
01332
01333
01338 bool isImageSpectralWindowIdExists() const;
01339
01340
01341
01347 Tag getImageSpectralWindowId() const;
01348
01349
01350
01351
01358 void setImageSpectralWindowId (Tag imageSpectralWindowId);
01359
01360
01361
01362
01366 void clearImageSpectralWindowId ();
01367
01368
01369
01371
01373
01374
01375
01382 void setAssocSpectralWindowId (int i, Tag assocSpectralWindowId) ;
01383
01384
01385
01386
01387
01392 void addAssocSpectralWindowId(Tag id);
01393
01398 void addAssocSpectralWindowId(const vector<Tag> & id);
01399
01400
01406 const Tag getAssocSpectralWindowId(int i);
01407
01415 SpectralWindowRow* getSpectralWindowUsingAssocSpectralWindowId(int i);
01416
01421 vector<SpectralWindowRow *> getSpectralWindowsUsingAssocSpectralWindowId();
01422
01423
01424
01425
01426
01427
01428
01429
01438 SpectralWindowRow* getSpectralWindowUsingImageSpectralWindowId();
01439
01440
01441
01442
01443
01444
01445
01446
01447
01448
01454 vector <DopplerRow *> getDopplers();
01455
01456
01457
01458
01459
01460
01461
01462
01482 bool compareNoAutoInc(BasebandNameMod::BasebandName basebandName, NetSidebandMod::NetSideband netSideband, int numChan, Frequency refFreq, SidebandProcessingModeMod::SidebandProcessingMode sidebandProcessingMode, Frequency totBandwidth, WindowFunctionMod::WindowFunction windowFunction);
01483
01484
01485
01486
01506 bool compareRequiredValue(BasebandNameMod::BasebandName basebandName, NetSidebandMod::NetSideband netSideband, int numChan, Frequency refFreq, SidebandProcessingModeMod::SidebandProcessingMode sidebandProcessingMode, Frequency totBandwidth, WindowFunctionMod::WindowFunction windowFunction);
01507
01508
01517 bool equalByRequiredValue(SpectralWindowRow* x) ;
01518
01519 #ifndef WITHOUT_ACS
01520
01524 asdmIDL::SpectralWindowRowIDL *toIDL() const;
01525
01533 void toIDL(asdmIDL::SpectralWindowRowIDL& x) const;
01534 #endif
01535
01536 #ifndef WITHOUT_ACS
01537
01542 void setFromIDL (asdmIDL::SpectralWindowRowIDL x) ;
01543 #endif
01544
01549 std::string toXML() const;
01550
01557 void setFromXML (std::string rowDoc) ;
01558
01561
01563
01564 std::map<std::string, SpectralWindowAttributeFromBin> fromBinMethods;
01565 void spectralWindowIdFromBin( EndianIStream& eis);
01566 void basebandNameFromBin( EndianIStream& eis);
01567 void netSidebandFromBin( EndianIStream& eis);
01568 void numChanFromBin( EndianIStream& eis);
01569 void refFreqFromBin( EndianIStream& eis);
01570 void sidebandProcessingModeFromBin( EndianIStream& eis);
01571 void totBandwidthFromBin( EndianIStream& eis);
01572 void windowFunctionFromBin( EndianIStream& eis);
01573
01574 void chanFreqStartFromBin( EndianIStream& eis);
01575 void chanFreqStepFromBin( EndianIStream& eis);
01576 void chanFreqArrayFromBin( EndianIStream& eis);
01577 void chanWidthFromBin( EndianIStream& eis);
01578 void chanWidthArrayFromBin( EndianIStream& eis);
01579 void correlationBitFromBin( EndianIStream& eis);
01580 void effectiveBwFromBin( EndianIStream& eis);
01581 void effectiveBwArrayFromBin( EndianIStream& eis);
01582 void freqGroupFromBin( EndianIStream& eis);
01583 void freqGroupNameFromBin( EndianIStream& eis);
01584 void lineArrayFromBin( EndianIStream& eis);
01585 void measFreqRefFromBin( EndianIStream& eis);
01586 void nameFromBin( EndianIStream& eis);
01587 void oversamplingFromBin( EndianIStream& eis);
01588 void quantizationFromBin( EndianIStream& eis);
01589 void refChanFromBin( EndianIStream& eis);
01590 void resolutionFromBin( EndianIStream& eis);
01591 void resolutionArrayFromBin( EndianIStream& eis);
01592 void numAssocValuesFromBin( EndianIStream& eis);
01593 void assocNatureFromBin( EndianIStream& eis);
01594 void assocSpectralWindowIdFromBin( EndianIStream& eis);
01595 void imageSpectralWindowIdFromBin( EndianIStream& eis);
01596 void dopplerIdFromBin( EndianIStream& eis);
01597
01598
01606 static SpectralWindowRow* fromBin(EndianIStream& eis, SpectralWindowTable& table, const std::vector<std::string>& attributesSeq);
01607
01614 void fromText(const std::string& attributeName, const std::string& t);
01616
01617 private:
01621 SpectralWindowTable &table;
01625 bool hasBeenAdded;
01626
01627
01628 void isAdded(bool added);
01629
01630
01639 SpectralWindowRow (SpectralWindowTable &table);
01640
01658 SpectralWindowRow (SpectralWindowTable &table, SpectralWindowRow &row);
01659
01661
01663
01664
01665
01666
01667
01668
01669 Tag spectralWindowId;
01670
01671
01672
01673
01683 void setSpectralWindowId (Tag spectralWindowId);
01684
01685
01686
01687
01688
01689
01690
01691
01692 BasebandNameMod::BasebandName basebandName;
01693
01694
01695
01696
01697
01698
01699
01700
01701
01702
01703 NetSidebandMod::NetSideband netSideband;
01704
01705
01706
01707
01708
01709
01710
01711
01712
01713
01714 int numChan;
01715
01716
01717
01718
01719
01720
01721
01722
01723
01724
01725 Frequency refFreq;
01726
01727
01728
01729
01730
01731
01732
01733
01734
01735
01736 SidebandProcessingModeMod::SidebandProcessingMode sidebandProcessingMode;
01737
01738
01739
01740
01741
01742
01743
01744
01745
01746
01747 Frequency totBandwidth;
01748
01749
01750
01751
01752
01753
01754
01755
01756
01757
01758 WindowFunctionMod::WindowFunction windowFunction;
01759
01760
01761
01762
01763
01764
01765
01766
01767
01768 bool chanFreqStartExists;
01769
01770
01771 Frequency chanFreqStart;
01772
01773
01774
01775
01776
01777
01778
01779
01780
01781 bool chanFreqStepExists;
01782
01783
01784 Frequency chanFreqStep;
01785
01786
01787
01788
01789
01790
01791
01792
01793
01794 bool chanFreqArrayExists;
01795
01796
01797 vector<Frequency > chanFreqArray;
01798
01799
01800
01801
01802
01803
01804
01805
01806
01807 bool chanWidthExists;
01808
01809
01810 Frequency chanWidth;
01811
01812
01813
01814
01815
01816
01817
01818
01819
01820 bool chanWidthArrayExists;
01821
01822
01823 vector<Frequency > chanWidthArray;
01824
01825
01826
01827
01828
01829
01830
01831
01832
01833 bool correlationBitExists;
01834
01835
01836 CorrelationBitMod::CorrelationBit correlationBit;
01837
01838
01839
01840
01841
01842
01843
01844
01845
01846 bool effectiveBwExists;
01847
01848
01849 Frequency effectiveBw;
01850
01851
01852
01853
01854
01855
01856
01857
01858
01859 bool effectiveBwArrayExists;
01860
01861
01862 vector<Frequency > effectiveBwArray;
01863
01864
01865
01866
01867
01868
01869
01870
01871
01872 bool freqGroupExists;
01873
01874
01875 int freqGroup;
01876
01877
01878
01879
01880
01881
01882
01883
01884
01885 bool freqGroupNameExists;
01886
01887
01888 string freqGroupName;
01889
01890
01891
01892
01893
01894
01895
01896
01897
01898 bool lineArrayExists;
01899
01900
01901 vector<bool > lineArray;
01902
01903
01904
01905
01906
01907
01908
01909
01910
01911 bool measFreqRefExists;
01912
01913
01914 FrequencyReferenceCodeMod::FrequencyReferenceCode measFreqRef;
01915
01916
01917
01918
01919
01920
01921
01922
01923
01924 bool nameExists;
01925
01926
01927 string name;
01928
01929
01930
01931
01932
01933
01934
01935
01936
01937 bool oversamplingExists;
01938
01939
01940 bool oversampling;
01941
01942
01943
01944
01945
01946
01947
01948
01949
01950 bool quantizationExists;
01951
01952
01953 bool quantization;
01954
01955
01956
01957
01958
01959
01960
01961
01962
01963 bool refChanExists;
01964
01965
01966 double refChan;
01967
01968
01969
01970
01971
01972
01973
01974
01975
01976 bool resolutionExists;
01977
01978
01979 Frequency resolution;
01980
01981
01982
01983
01984
01985
01986
01987
01988
01989 bool resolutionArrayExists;
01990
01991
01992 vector<Frequency > resolutionArray;
01993
01994
01995
01996
01997
01998
01999
02000
02001
02002 bool numAssocValuesExists;
02003
02004
02005 int numAssocValues;
02006
02007
02008
02009
02010
02011
02012
02013
02014
02015 bool assocNatureExists;
02016
02017
02018 vector<SpectralResolutionTypeMod::SpectralResolutionType > assocNature;
02019
02020
02021
02022
02023
02025
02027
02028
02029
02030
02031
02032 bool assocSpectralWindowIdExists;
02033
02034
02035 vector<Tag> assocSpectralWindowId;
02036
02037
02038
02039
02040
02041
02042
02043
02044
02045 bool dopplerIdExists;
02046
02047
02048 int dopplerId;
02049
02050
02051
02052
02053
02054
02055
02056
02057
02058 bool imageSpectralWindowIdExists;
02059
02060
02061 Tag imageSpectralWindowId;
02062
02063
02064
02065
02066
02068
02070
02071
02072
02073
02074
02075
02076
02077
02078
02079
02080
02081
02082
02083
02084
02085
02086
02087
02088
02089
02090
02091
02093
02095
02096
02097
02098
02099
02100
02101
02102
02103
02104
02105
02106
02107
02108
02109
02110
02111
02112
02113
02114
02115
02116
02117
02118
02119
02120
02121
02122
02123
02124
02125
02126
02127
02128
02129
02130
02132
02134 std::map<std::string, SpectralWindowAttributeFromText> fromTextMethods;
02135
02136 void spectralWindowIdFromText (const string & s);
02137
02138
02139 void basebandNameFromText (const string & s);
02140
02141
02142 void netSidebandFromText (const string & s);
02143
02144
02145 void numChanFromText (const string & s);
02146
02147
02148 void refFreqFromText (const string & s);
02149
02150
02151 void sidebandProcessingModeFromText (const string & s);
02152
02153
02154 void totBandwidthFromText (const string & s);
02155
02156
02157 void windowFunctionFromText (const string & s);
02158
02159
02160
02161 void chanFreqStartFromText (const string & s);
02162
02163
02164 void chanFreqStepFromText (const string & s);
02165
02166
02167 void chanFreqArrayFromText (const string & s);
02168
02169
02170 void chanWidthFromText (const string & s);
02171
02172
02173 void chanWidthArrayFromText (const string & s);
02174
02175
02176 void correlationBitFromText (const string & s);
02177
02178
02179 void effectiveBwFromText (const string & s);
02180
02181
02182 void effectiveBwArrayFromText (const string & s);
02183
02184
02185 void freqGroupFromText (const string & s);
02186
02187
02188 void freqGroupNameFromText (const string & s);
02189
02190
02191 void lineArrayFromText (const string & s);
02192
02193
02194 void measFreqRefFromText (const string & s);
02195
02196
02197 void nameFromText (const string & s);
02198
02199
02200 void oversamplingFromText (const string & s);
02201
02202
02203 void quantizationFromText (const string & s);
02204
02205
02206 void refChanFromText (const string & s);
02207
02208
02209 void resolutionFromText (const string & s);
02210
02211
02212 void resolutionArrayFromText (const string & s);
02213
02214
02215 void numAssocValuesFromText (const string & s);
02216
02217
02218 void assocNatureFromText (const string & s);
02219
02220
02221 void assocSpectralWindowIdFromText (const string & s);
02222
02223
02224 void imageSpectralWindowIdFromText (const string & s);
02225
02226
02227 void dopplerIdFromText (const string & s);
02228
02229
02230
02235 void toBin(EndianOSStream& eoss);
02236
02246 };
02247
02248 }
02249
02250 #endif