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 CalCurveTable_CLASS
00035
#define CalCurveTable_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
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
#include "CReceiverBand.h"
00093
using namespace ReceiverBandMod;
00094
00095
00096
00097
#include "CAtmPhaseCorrection.h"
00098
using namespace AtmPhaseCorrectionMod;
00099
00100
00101
00102
#include "CPolarizationType.h"
00103
using namespace PolarizationTypeMod;
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
#include "CCalCurveType.h"
00114
using namespace CalCurveTypeMod;
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
#ifndef WITHOUT_ACS
00125
#include <asdmIDLC.h>
00126
using asdmIDL::CalCurveTableIDL;
00127
#endif
00128
00129
using asdm::Angle;
00130
using asdm::AngularRate;
00131
using asdm::ArrayTime;
00132
using asdm::Complex;
00133
using asdm::Entity;
00134
using asdm::EntityId;
00135
using asdm::EntityRef;
00136
using asdm::Flux;
00137
using asdm::Frequency;
00138
using asdm::Humidity;
00139
using asdm::Interval;
00140
using asdm::Length;
00141
using asdm::PartId;
00142
using asdm::Pressure;
00143
using asdm::Speed;
00144
using asdm::Tag;
00145
using asdm::Temperature;
00146
00147
using asdm::DuplicateKey;
00148
using asdm::ConversionException;
00149
using asdm::NoSuchRow;
00150
using asdm::DuplicateKey;
00151
00152
#include <Representable.h>
00153
00154
namespace asdm {
00155
00156
00157
00158
00159
class ASDM;
00160
class CalCurveRow;
00298 class CalCurveTable :
public Representable {
00299
friend class asdm::ASDM;
00300
00301
public:
00302
00303
00309
static vector<string>
getKeyName();
00310
00311
00312
virtual ~
CalCurveTable();
00313
00319
ASDM &
getContainer()
const;
00320
00326
unsigned int size() ;
00327
00333 string
getName()
const;
00334
00338
Entity getEntity()
const;
00339
00344
void setEntity(
Entity e);
00345
00346
00347
00348
00349
00354
CalCurveRow *
newRow();
00355
00360
CalCurveRow*
newRowEmpty();
00361
00362
00406
CalCurveRow *
newRow(
Tag calDataId,
Tag calReductionId,
int numAntenna,
int numBaseline,
int numAPC,
int numReceptor,
int numPoly, vector<string > antennaNames, string refAntennaName, ReceiverBandMod::ReceiverBand receiverBand, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationTypeMod::PolarizationType > polarizationTypes,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Frequency > frequencyRange, CalCurveTypeMod::CalCurveType typeCurve,
ArrayTime timeOrigin, vector<vector<vector<vector<float > > > > curve, vector<vector<vector<float > > > rms);
00407
00412
CalCurveRow *
newRowFull(
Tag calDataId,
Tag calReductionId,
int numAntenna,
int numBaseline,
int numAPC,
int numReceptor,
int numPoly, vector<string > antennaNames, string refAntennaName, ReceiverBandMod::ReceiverBand receiverBand, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationTypeMod::PolarizationType > polarizationTypes,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Frequency > frequencyRange, CalCurveTypeMod::CalCurveType typeCurve,
ArrayTime timeOrigin, vector<vector<vector<vector<float > > > > curve, vector<vector<vector<float > > > rms);
00413
00414
00427
CalCurveRow *
newRow(
CalCurveRow *row);
00428
00433
CalCurveRow *
newRowCopy(
CalCurveRow *row);
00434
00435
00436
00437
00438
00439
00452
CalCurveRow*
add(
CalCurveRow* x) ;
00453
00454
00455
00456
00457
00458
00459
00460
00461
00467 vector<CalCurveRow *>
get() ;
00468
00469
00470
00471
00472
00484
CalCurveRow*
getRowByKey(
Tag calDataId,
Tag calReductionId);
00485
00486
00487
00488
00489
00535
CalCurveRow*
lookup(
Tag calDataId,
Tag calReductionId,
int numAntenna,
int numBaseline,
int numAPC,
int numReceptor,
int numPoly, vector<string > antennaNames, string refAntennaName, ReceiverBandMod::ReceiverBand receiverBand, vector<AtmPhaseCorrectionMod::AtmPhaseCorrection > atmPhaseCorrections, vector<PolarizationTypeMod::PolarizationType > polarizationTypes,
ArrayTime startValidTime,
ArrayTime endValidTime, vector<Frequency > frequencyRange, CalCurveTypeMod::CalCurveType typeCurve,
ArrayTime timeOrigin, vector<vector<vector<vector<float > > > > curve, vector<vector<vector<float > > > rms);
00536
00537
00538
#ifndef WITHOUT_ACS
00539
00545 CalCurveTableIDL *
toIDL() ;
00546
#endif
00547
00548
#ifndef WITHOUT_ACS
00549
00555
void fromIDL(CalCurveTableIDL x)
throw(
DuplicateKey,
ConversionException);
00556
#endif
00557
00561
char *
toFITS()
const throw(
ConversionException);
00562
00566
void fromFITS(
char *fits)
throw(
ConversionException);
00567
00571 string
toVOTable()
const throw(
ConversionException);
00572
00576
void fromVOTable(string vo)
throw(
ConversionException);
00577
00584 string
toXML()
throw(
ConversionException);
00585
00591
void fromXML(string xmlDoc)
throw(
ConversionException);
00592
00598 string
toMIME();
00599
00606
void setFromMIME(
const string & mimeMsg);
00607
00617
void toFile(string directory);
00618
00627
void setFromFile(
const string& directory);
00628
00629
private:
00630
00639
CalCurveTable (
ASDM & container);
00640
00641
ASDM & container;
00642
00643
bool archiveAsBin;
00644
bool fileAsBin ;
00645
00646
Entity entity;
00647
00648
00649
00653
static string tableName;
00654
00655
00659
static vector<string> key;
00660
00661
00667
CalCurveRow* checkAndAdd(
CalCurveRow* x)
throw (
DuplicateKey);
00668
00669
00670
00671
00672
00673
00674 vector<CalCurveRow * > privateRows;
00675
00676
00677
00678 vector<CalCurveRow *> row;
00679
00680
00681
void error()
throw(
ConversionException);
00682
00683 };
00684
00685 }
00686
00687
#endif