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 CalPhaseTable_CLASS
00035
#define CalPhaseTable_CLASS
00036
00037
#include <string>
00038
#include <vector>
00039
#include <map>
00040
#include <set>
00041
using std::string;
00042
using std::vector;
00043
using std::map;
00044
00045
#include <Angle.h>
00046
#include <AngularRate.h>
00047
#include <ArrayTime.h>
00048
#include <ArrayTimeInterval.h>
00049
#include <Complex.h>
00050
#include <Entity.h>
00051
#include <EntityId.h>
00052
#include <EntityRef.h>
00053
#include <Flux.h>
00054
#include <Frequency.h>
00055
#include <Humidity.h>
00056
#include <Interval.h>
00057
#include <Length.h>
00058
#include <PartId.h>
00059
#include <Pressure.h>
00060
#include <Speed.h>
00061
#include <Tag.h>
00062
#include <Temperature.h>
00063
#include <ConversionException.h>
00064
#include <DuplicateKey.h>
00065
#include <UniquenessViolationException.h>
00066
#include <NoSuchRow.h>
00067
#include <DuplicateKey.h>
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
#include "CBasebandName.h"
00079
using namespace BasebandNameMod;
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
#include "CReceiverBand.h"
00090
using namespace ReceiverBandMod;
00091
00092
00093
00094
00095
00096
#include "CAtmPhaseCorrection.h"
00097
using namespace AtmPhaseCorrectionMod;
00098
00099
00100
00101
#include "CPolarizationType.h"
00102
using namespace PolarizationTypeMod;
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
#ifndef WITHOUT_ACS
00129
#include <asdmIDLC.h>
00130
using asdmIDL::CalPhaseTableIDL;
00131
#endif
00132
00133
using asdm::Angle;
00134
using asdm::AngularRate;
00135
using asdm::ArrayTime;
00136
using asdm::Complex;
00137
using asdm::Entity;
00138
using asdm::EntityId;
00139
using asdm::EntityRef;
00140
using asdm::Flux;
00141
using asdm::Frequency;
00142
using asdm::Humidity;
00143
using asdm::Interval;
00144
using asdm::Length;
00145
using asdm::PartId;
00146
using asdm::Pressure;
00147
using asdm::Speed;
00148
using asdm::Tag;
00149
using asdm::Temperature;
00150
00151
using asdm::DuplicateKey;
00152
using asdm::ConversionException;
00153
using asdm::NoSuchRow;
00154
using asdm::DuplicateKey;
00155
00156
#include <Representable.h>
00157
00158
namespace asdm {
00159
00160
00161
00162
00163
class ASDM;
00164
class CalPhaseRow;
00319 class CalPhaseTable :
public Representable {
00320
friend class asdm::ASDM;
00321
00322
public:
00323
00324
00330
static vector<string>
getKeyName();
00331
00332
00333
virtual ~
CalPhaseTable();
00334
00340
ASDM &
getContainer()
const;
00341
00347
unsigned int size() ;
00348
00354 string
getName()
const;
00355
00359
Entity getEntity()
const;
00360
00365
void setEntity(
Entity e);
00366
00367
00368
00369
00370
00375
CalPhaseRow *
newRow();
00376
00381
CalPhaseRow*
newRowEmpty();
00382
00383
00429
CalPhaseRow *
newRow(
Tag calDataId,
Tag calReductionId, BasebandNameMod::BasebandName basebandName,
int numBaseline,
int numAPC,
int numReceptor, ReceiverBandMod::ReceiverBand receiverBand, vector<vector<string > > antennaNames, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationTypeMod::PolarizationType > polarizationTypes,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Frequency > frequencyRange, vector<vector<vector<float > > > ampli, vector<vector<vector<float > > > phase, vector<vector<vector<Angle > > > phaseRms, vector<vector<Angle > > statPhaseRms, vector<vector<float > > decorrelationFactor, vector<Length > baselineLengths, vector<Angle > direction);
00430
00435
CalPhaseRow *
newRowFull(
Tag calDataId,
Tag calReductionId, BasebandNameMod::BasebandName basebandName,
int numBaseline,
int numAPC,
int numReceptor, ReceiverBandMod::ReceiverBand receiverBand, vector<vector<string > > antennaNames, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationTypeMod::PolarizationType > polarizationTypes,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Frequency > frequencyRange, vector<vector<vector<float > > > ampli, vector<vector<vector<float > > > phase, vector<vector<vector<Angle > > > phaseRms, vector<vector<Angle > > statPhaseRms, vector<vector<float > > decorrelationFactor, vector<Length > baselineLengths, vector<Angle > direction);
00436
00437
00450
CalPhaseRow *
newRow(
CalPhaseRow *row);
00451
00456
CalPhaseRow *
newRowCopy(
CalPhaseRow *row);
00457
00458
00459
00460
00461
00462
00475
CalPhaseRow*
add(
CalPhaseRow* x) ;
00476
00477
00478
00479
00480
00481
00482
00483
00484
00490 vector<CalPhaseRow *>
get() ;
00491
00492
00493
00494
00495
00509
CalPhaseRow*
getRowByKey(
Tag calDataId,
Tag calReductionId, BasebandNameMod::BasebandName basebandName);
00510
00511
00512
00513
00514
00562
CalPhaseRow*
lookup(
Tag calDataId,
Tag calReductionId, BasebandNameMod::BasebandName basebandName,
int numBaseline,
int numAPC,
int numReceptor, ReceiverBandMod::ReceiverBand receiverBand, vector<vector<string > > antennaNames, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationTypeMod::PolarizationType > polarizationTypes,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Frequency > frequencyRange, vector<vector<vector<float > > > ampli, vector<vector<vector<float > > > phase, vector<vector<vector<Angle > > > phaseRms, vector<vector<Angle > > statPhaseRms, vector<vector<float > > decorrelationFactor, vector<Length > baselineLengths, vector<Angle > direction);
00563
00564
00565
#ifndef WITHOUT_ACS
00566
00572 CalPhaseTableIDL *
toIDL() ;
00573
#endif
00574
00575
#ifndef WITHOUT_ACS
00576
00582
void fromIDL(CalPhaseTableIDL x)
throw(
DuplicateKey,
ConversionException);
00583
#endif
00584
00588
char *
toFITS()
const throw(
ConversionException);
00589
00593
void fromFITS(
char *fits)
throw(
ConversionException);
00594
00598 string
toVOTable()
const throw(
ConversionException);
00599
00603
void fromVOTable(string vo)
throw(
ConversionException);
00604
00611 string
toXML()
throw(
ConversionException);
00612
00618
void fromXML(string xmlDoc)
throw(
ConversionException);
00619
00625 string
toMIME();
00626
00633
void setFromMIME(
const string & mimeMsg);
00634
00644
void toFile(string directory);
00645
00654
void setFromFile(
const string& directory);
00655
00656
private:
00657
00666
CalPhaseTable (
ASDM & container);
00667
00668
ASDM & container;
00669
00670
bool archiveAsBin;
00671
bool fileAsBin ;
00672
00673
Entity entity;
00674
00675
00676
00680
static string tableName;
00681
00682
00686
static vector<string> key;
00687
00688
00694
CalPhaseRow* checkAndAdd(
CalPhaseRow* x)
throw (
DuplicateKey);
00695
00696
00697
00698
00699
00700
00701 vector<CalPhaseRow * > privateRows;
00702
00703
00704
00705 vector<CalPhaseRow *> row;
00706
00707
00708
void error()
throw(
ConversionException);
00709
00710 };
00711
00712 }
00713
00714
#endif