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 #ifndef Merger_CLASS
00034 #define Merger_CLASS
00035 #include <map>
00036
00037 #include "ASDM.h"
00038
00039 #include "SBSummaryTable.h"
00040 #include "SBSummaryRow.h"
00041
00042 #include "ConfigDescriptionTable.h"
00043 #include "ConfigDescriptionRow.h"
00044
00045 #include "FieldTable.h"
00046 #include "FieldRow.h"
00047
00048 #include "StateTable.h"
00049 #include "StateRow.h"
00050
00051 #include "AntennaTable.h"
00052 #include "AntennaRow.h"
00053
00054 #include "DataDescriptionTable.h"
00055 #include "DataDescriptionRow.h"
00056
00057 #include "SwitchCycleTable.h"
00058 #include "SwitchCycleRow.h"
00059
00060 #include "SourceTable.h"
00061 #include "SourceRow.h"
00062
00063 #include "FeedTable.h"
00064 #include "FeedRow.h"
00065
00066 #include "SpectralWindowTable.h"
00067 #include "SpectralWindowRow.h"
00068
00069 #include "FreqOffsetTable.h"
00070 #include "FreqOffsetRow.h"
00071
00072 #include "PolarizationTable.h"
00073 #include "PolarizationRow.h"
00074
00075 #include "ReceiverTable.h"
00076 #include "ReceiverRow.h"
00077
00078 #include "BeamTable.h"
00079 #include "BeamRow.h"
00080
00081 #include "DopplerTable.h"
00082 #include "DopplerRow.h"
00083
00084 #include "ProcessorTable.h"
00085 #include "ProcessorRow.h"
00086
00087 #include "CorrelatorModeTable.h"
00088 #include "CorrelatorModeRow.h"
00089
00090 #include "CalDeviceTable.h"
00091 #include "CalDeviceRow.h"
00092
00093 #include "FlagCmdTable.h"
00094 #include "FlagCmdRow.h"
00095
00096 #include "FocusTable.h"
00097 #include "FocusRow.h"
00098
00099 #include "HistoryTable.h"
00100 #include "HistoryRow.h"
00101
00102 #include "ObservationTable.h"
00103 #include "ObservationRow.h"
00104
00105 #include "PointingTable.h"
00106 #include "PointingRow.h"
00107
00108 #include "SeeingTable.h"
00109 #include "SeeingRow.h"
00110
00111 #include "SysCalTable.h"
00112 #include "SysCalRow.h"
00113
00114 #include "TotalPowerTable.h"
00115 #include "TotalPowerRow.h"
00116
00117 #include "WeatherTable.h"
00118 #include "WeatherRow.h"
00119
00120 #include "WVMCalTable.h"
00121 #include "WVMCalRow.h"
00122
00123 #include "EphemerisTable.h"
00124 #include "EphemerisRow.h"
00125
00126 #include "ExecBlockTable.h"
00127 #include "ExecBlockRow.h"
00128
00129 #include "ScanTable.h"
00130 #include "ScanRow.h"
00131
00132 #include "SubscanTable.h"
00133 #include "SubscanRow.h"
00134
00135 #include "MainTable.h"
00136 #include "MainRow.h"
00137
00138 #include "FocusModelTable.h"
00139 #include "FocusModelRow.h"
00140
00141 #include "GainTrackingTable.h"
00142 #include "GainTrackingRow.h"
00143
00144 #include "PointingModelTable.h"
00145 #include "PointingModelRow.h"
00146
00147 #include "CalAmpliTable.h"
00148 #include "CalAmpliRow.h"
00149
00150 #include "CalDataTable.h"
00151 #include "CalDataRow.h"
00152
00153 #include "CalReductionTable.h"
00154 #include "CalReductionRow.h"
00155
00156 #include "CalPhaseTable.h"
00157 #include "CalPhaseRow.h"
00158
00159 #include "CalSeeingTable.h"
00160 #include "CalSeeingRow.h"
00161
00162 #include "CalPositionTable.h"
00163 #include "CalPositionRow.h"
00164
00165 #include "CalPointingTable.h"
00166 #include "CalPointingRow.h"
00167
00168 #include "CalPointingModelTable.h"
00169 #include "CalPointingModelRow.h"
00170
00171 #include "CalHolographyTable.h"
00172 #include "CalHolographyRow.h"
00173
00174 #include "CalAtmosphereTable.h"
00175 #include "CalAtmosphereRow.h"
00176
00177 #include "CalCurveTable.h"
00178 #include "CalCurveRow.h"
00179
00180 #include "StationTable.h"
00181 #include "StationRow.h"
00182
00183 #include "AlmaRadiometerTable.h"
00184 #include "AlmaRadiometerRow.h"
00185
00186 #include "SquareLawDetectorTable.h"
00187 #include "SquareLawDetectorRow.h"
00188
00189 #include "CalFocusTable.h"
00190 #include "CalFocusRow.h"
00191
00192 #include "CalDelayTable.h"
00193 #include "CalDelayRow.h"
00194
00195 #include "HolographyTable.h"
00196 #include "HolographyRow.h"
00197
00198 #include "CalBandpassTable.h"
00199 #include "CalBandpassRow.h"
00200
00201 #include "CalFluxTable.h"
00202 #include "CalFluxRow.h"
00203
00204 #include "CalFocusModelTable.h"
00205 #include "CalFocusModelRow.h"
00206
00207 #include "CalGainTable.h"
00208 #include "CalGainRow.h"
00209
00210 #include "CalPrimaryBeamTable.h"
00211 #include "CalPrimaryBeamRow.h"
00212
00213 #include "CalWVRTable.h"
00214 #include "CalWVRRow.h"
00215
00216 #include "AnnotationTable.h"
00217 #include "AnnotationRow.h"
00218
00219 #include "DelayModelTable.h"
00220 #include "DelayModelRow.h"
00221
00222 #include "FlagTable.h"
00223 #include "FlagRow.h"
00224
00225
00226
00227
00228
00229
00230 using namespace std;
00231
00232 namespace asdm {
00233 class Merger {
00234 public :
00235 Merger();
00236 virtual ~Merger();
00237
00238 void merge(ASDM* ds1, ASDM* ds2);
00239
00240 private:
00241 ASDM* ds1;
00242 ASDM* ds2;
00243 map<string, Tag> tagTag;
00244 Tag getTag(const Tag& t, void (Merger::*mergeTables)());
00245
00246 map<string, int> idId;
00247 int getId(const string& tableName, int id, void (Merger::*mergeTables)());
00248
00249
00250 bool hasMergedSBSummary;
00251
00252 bool hasMergedConfigDescription;
00253
00254 bool hasMergedField;
00255
00256 bool hasMergedState;
00257
00258 bool hasMergedAntenna;
00259
00260 bool hasMergedDataDescription;
00261
00262 bool hasMergedSwitchCycle;
00263
00264 bool hasMergedSource;
00265
00266 bool hasMergedFeed;
00267
00268 bool hasMergedSpectralWindow;
00269
00270 bool hasMergedFreqOffset;
00271
00272 bool hasMergedPolarization;
00273
00274 bool hasMergedReceiver;
00275
00276 bool hasMergedBeam;
00277
00278 bool hasMergedDoppler;
00279
00280 bool hasMergedProcessor;
00281
00282 bool hasMergedCorrelatorMode;
00283
00284 bool hasMergedCalDevice;
00285
00286 bool hasMergedFlagCmd;
00287
00288 bool hasMergedFocus;
00289
00290 bool hasMergedHistory;
00291
00292 bool hasMergedObservation;
00293
00294 bool hasMergedPointing;
00295
00296 bool hasMergedSeeing;
00297
00298 bool hasMergedSysCal;
00299
00300 bool hasMergedTotalPower;
00301
00302 bool hasMergedWeather;
00303
00304 bool hasMergedWVMCal;
00305
00306 bool hasMergedEphemeris;
00307
00308 bool hasMergedExecBlock;
00309
00310 bool hasMergedScan;
00311
00312 bool hasMergedSubscan;
00313
00314 bool hasMergedMain;
00315
00316 bool hasMergedFocusModel;
00317
00318 bool hasMergedGainTracking;
00319
00320 bool hasMergedPointingModel;
00321
00322 bool hasMergedCalAmpli;
00323
00324 bool hasMergedCalData;
00325
00326 bool hasMergedCalReduction;
00327
00328 bool hasMergedCalPhase;
00329
00330 bool hasMergedCalSeeing;
00331
00332 bool hasMergedCalPosition;
00333
00334 bool hasMergedCalPointing;
00335
00336 bool hasMergedCalPointingModel;
00337
00338 bool hasMergedCalHolography;
00339
00340 bool hasMergedCalAtmosphere;
00341
00342 bool hasMergedCalCurve;
00343
00344 bool hasMergedStation;
00345
00346 bool hasMergedAlmaRadiometer;
00347
00348 bool hasMergedSquareLawDetector;
00349
00350 bool hasMergedCalFocus;
00351
00352 bool hasMergedCalDelay;
00353
00354 bool hasMergedHolography;
00355
00356 bool hasMergedCalBandpass;
00357
00358 bool hasMergedCalFlux;
00359
00360 bool hasMergedCalFocusModel;
00361
00362 bool hasMergedCalGain;
00363
00364 bool hasMergedCalPrimaryBeam;
00365
00366 bool hasMergedCalWVR;
00367
00368 bool hasMergedAnnotation;
00369
00370 bool hasMergedDelayModel;
00371
00372 bool hasMergedFlag;
00373
00374
00375
00376 void mergeSBSummary();
00377 void postMergeSBSummary();
00378
00379 void mergeConfigDescription();
00380 void postMergeConfigDescription();
00381
00382 void mergeField();
00383 void postMergeField();
00384
00385 void mergeState();
00386 void postMergeState();
00387
00388 void mergeAntenna();
00389 void postMergeAntenna();
00390
00391 void mergeDataDescription();
00392 void postMergeDataDescription();
00393
00394 void mergeSwitchCycle();
00395 void postMergeSwitchCycle();
00396
00397 void mergeSource();
00398 void postMergeSource();
00399
00400 void mergeFeed();
00401 void postMergeFeed();
00402
00403 void mergeSpectralWindow();
00404 void postMergeSpectralWindow();
00405
00406 void mergeFreqOffset();
00407 void postMergeFreqOffset();
00408
00409 void mergePolarization();
00410 void postMergePolarization();
00411
00412 void mergeReceiver();
00413 void postMergeReceiver();
00414
00415 void mergeBeam();
00416 void postMergeBeam();
00417
00418 void mergeDoppler();
00419 void postMergeDoppler();
00420
00421 void mergeProcessor();
00422 void postMergeProcessor();
00423
00424 void mergeCorrelatorMode();
00425 void postMergeCorrelatorMode();
00426
00427 void mergeCalDevice();
00428 void postMergeCalDevice();
00429
00430 void mergeFlagCmd();
00431 void postMergeFlagCmd();
00432
00433 void mergeFocus();
00434 void postMergeFocus();
00435
00436 void mergeHistory();
00437 void postMergeHistory();
00438
00439 void mergeObservation();
00440 void postMergeObservation();
00441
00442 void mergePointing();
00443 void postMergePointing();
00444
00445 void mergeSeeing();
00446 void postMergeSeeing();
00447
00448 void mergeSysCal();
00449 void postMergeSysCal();
00450
00451 void mergeTotalPower();
00452 void postMergeTotalPower();
00453
00454 void mergeWeather();
00455 void postMergeWeather();
00456
00457 void mergeWVMCal();
00458 void postMergeWVMCal();
00459
00460 void mergeEphemeris();
00461 void postMergeEphemeris();
00462
00463 void mergeExecBlock();
00464 void postMergeExecBlock();
00465
00466 void mergeScan();
00467 void postMergeScan();
00468
00469 void mergeSubscan();
00470 void postMergeSubscan();
00471
00472 void mergeMain();
00473 void postMergeMain();
00474
00475 void mergeFocusModel();
00476 void postMergeFocusModel();
00477
00478 void mergeGainTracking();
00479 void postMergeGainTracking();
00480
00481 void mergePointingModel();
00482 void postMergePointingModel();
00483
00484 void mergeCalAmpli();
00485 void postMergeCalAmpli();
00486
00487 void mergeCalData();
00488 void postMergeCalData();
00489
00490 void mergeCalReduction();
00491 void postMergeCalReduction();
00492
00493 void mergeCalPhase();
00494 void postMergeCalPhase();
00495
00496 void mergeCalSeeing();
00497 void postMergeCalSeeing();
00498
00499 void mergeCalPosition();
00500 void postMergeCalPosition();
00501
00502 void mergeCalPointing();
00503 void postMergeCalPointing();
00504
00505 void mergeCalPointingModel();
00506 void postMergeCalPointingModel();
00507
00508 void mergeCalHolography();
00509 void postMergeCalHolography();
00510
00511 void mergeCalAtmosphere();
00512 void postMergeCalAtmosphere();
00513
00514 void mergeCalCurve();
00515 void postMergeCalCurve();
00516
00517 void mergeStation();
00518 void postMergeStation();
00519
00520 void mergeAlmaRadiometer();
00521 void postMergeAlmaRadiometer();
00522
00523 void mergeSquareLawDetector();
00524 void postMergeSquareLawDetector();
00525
00526 void mergeCalFocus();
00527 void postMergeCalFocus();
00528
00529 void mergeCalDelay();
00530 void postMergeCalDelay();
00531
00532 void mergeHolography();
00533 void postMergeHolography();
00534
00535 void mergeCalBandpass();
00536 void postMergeCalBandpass();
00537
00538 void mergeCalFlux();
00539 void postMergeCalFlux();
00540
00541 void mergeCalFocusModel();
00542 void postMergeCalFocusModel();
00543
00544 void mergeCalGain();
00545 void postMergeCalGain();
00546
00547 void mergeCalPrimaryBeam();
00548 void postMergeCalPrimaryBeam();
00549
00550 void mergeCalWVR();
00551 void postMergeCalWVR();
00552
00553 void mergeAnnotation();
00554 void postMergeAnnotation();
00555
00556 void mergeDelayModel();
00557 void postMergeDelayModel();
00558
00559 void mergeFlag();
00560 void postMergeFlag();
00561
00562
00563
00564 void (Merger::*mergeSBSummaryPtr) () ;
00565
00566 void (Merger::*mergeConfigDescriptionPtr) () ;
00567
00568 void (Merger::*mergeFieldPtr) () ;
00569
00570 void (Merger::*mergeStatePtr) () ;
00571
00572 void (Merger::*mergeAntennaPtr) () ;
00573
00574 void (Merger::*mergeDataDescriptionPtr) () ;
00575
00576 void (Merger::*mergeSwitchCyclePtr) () ;
00577
00578 void (Merger::*mergeSourcePtr) () ;
00579
00580 void (Merger::*mergeFeedPtr) () ;
00581
00582 void (Merger::*mergeSpectralWindowPtr) () ;
00583
00584 void (Merger::*mergeFreqOffsetPtr) () ;
00585
00586 void (Merger::*mergePolarizationPtr) () ;
00587
00588 void (Merger::*mergeReceiverPtr) () ;
00589
00590 void (Merger::*mergeBeamPtr) () ;
00591
00592 void (Merger::*mergeDopplerPtr) () ;
00593
00594 void (Merger::*mergeProcessorPtr) () ;
00595
00596 void (Merger::*mergeCorrelatorModePtr) () ;
00597
00598 void (Merger::*mergeCalDevicePtr) () ;
00599
00600 void (Merger::*mergeFlagCmdPtr) () ;
00601
00602 void (Merger::*mergeFocusPtr) () ;
00603
00604 void (Merger::*mergeHistoryPtr) () ;
00605
00606 void (Merger::*mergeObservationPtr) () ;
00607
00608 void (Merger::*mergePointingPtr) () ;
00609
00610 void (Merger::*mergeSeeingPtr) () ;
00611
00612 void (Merger::*mergeSysCalPtr) () ;
00613
00614 void (Merger::*mergeTotalPowerPtr) () ;
00615
00616 void (Merger::*mergeWeatherPtr) () ;
00617
00618 void (Merger::*mergeWVMCalPtr) () ;
00619
00620 void (Merger::*mergeEphemerisPtr) () ;
00621
00622 void (Merger::*mergeExecBlockPtr) () ;
00623
00624 void (Merger::*mergeScanPtr) () ;
00625
00626 void (Merger::*mergeSubscanPtr) () ;
00627
00628 void (Merger::*mergeMainPtr) () ;
00629
00630 void (Merger::*mergeFocusModelPtr) () ;
00631
00632 void (Merger::*mergeGainTrackingPtr) () ;
00633
00634 void (Merger::*mergePointingModelPtr) () ;
00635
00636 void (Merger::*mergeCalAmpliPtr) () ;
00637
00638 void (Merger::*mergeCalDataPtr) () ;
00639
00640 void (Merger::*mergeCalReductionPtr) () ;
00641
00642 void (Merger::*mergeCalPhasePtr) () ;
00643
00644 void (Merger::*mergeCalSeeingPtr) () ;
00645
00646 void (Merger::*mergeCalPositionPtr) () ;
00647
00648 void (Merger::*mergeCalPointingPtr) () ;
00649
00650 void (Merger::*mergeCalPointingModelPtr) () ;
00651
00652 void (Merger::*mergeCalHolographyPtr) () ;
00653
00654 void (Merger::*mergeCalAtmospherePtr) () ;
00655
00656 void (Merger::*mergeCalCurvePtr) () ;
00657
00658 void (Merger::*mergeStationPtr) () ;
00659
00660 void (Merger::*mergeAlmaRadiometerPtr) () ;
00661
00662 void (Merger::*mergeSquareLawDetectorPtr) () ;
00663
00664 void (Merger::*mergeCalFocusPtr) () ;
00665
00666 void (Merger::*mergeCalDelayPtr) () ;
00667
00668 void (Merger::*mergeHolographyPtr) () ;
00669
00670 void (Merger::*mergeCalBandpassPtr) () ;
00671
00672 void (Merger::*mergeCalFluxPtr) () ;
00673
00674 void (Merger::*mergeCalFocusModelPtr) () ;
00675
00676 void (Merger::*mergeCalGainPtr) () ;
00677
00678 void (Merger::*mergeCalPrimaryBeamPtr) () ;
00679
00680 void (Merger::*mergeCalWVRPtr) () ;
00681
00682 void (Merger::*mergeAnnotationPtr) () ;
00683
00684 void (Merger::*mergeDelayModelPtr) () ;
00685
00686 void (Merger::*mergeFlagPtr) () ;
00687
00688 };
00689 }
00690
00691 #endif