1 #if !defined(_INTEGRATION_H)
58 Enum<NetSidebandMod::NetSideband> e_sideband,
85 uint32_t numSpectralPoint,
87 Enum<NetSidebandMod::NetSideband> e_sideband,
90 CorrelationModeMod::CorrelationMode correlationMode);
118 DataStructure( std::vector<std::vector<uint32_t> > vv_numCrossPolProduct,
119 std::vector<std::vector<uint32_t> > vv_numAutoPolProduct,
120 std::vector<std::vector<uint32_t> > vv_numSpectralPoint,
121 std::vector<std::vector<uint32_t> > vv_numBin,
122 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
124 std::vector<uint32_t> v_numSpectralWindow,
125 uint32_t numBaseband,
127 CorrelationModeMod::CorrelationMode correlationMode);
155 DataStructure( std::vector<std::vector<uint32_t> > vv_numAutoPolProduct,
156 std::vector<std::vector<uint32_t> > vv_numSpectralPoint,
157 std::vector<std::vector<uint32_t> > vv_numBin,
158 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
160 std::vector<uint32_t> v_numSpectralWindow,
161 uint32_t numBaseband,
163 CorrelationModeMod::CorrelationMode correlationMode);
191 std::vector<std::vector<uint32_t> >
numBins();
196 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > >
sidebands();
241 std::vector<uint32_t>
leafAxisSizes(uint32_t basebandIndex, uint32_t spectralWindowIndex);
257 std::vector<uint32_t>
leafAxisSizes(uint32_t dataDescriptionIndex);
395 Enum<NetSidebandMod::NetSideband> e_sideband,
431 uint32_t numSpectralPoint,
433 Enum<NetSidebandMod::NetSideband> e_sideband,
434 uint32_t numBaseband,
436 CorrelationModeMod::CorrelationMode correlationMode,
438 uint64_t timeCentroid,
441 const float* floatData,
442 const uint32_t* dataFlags);
447 DataDump( std::vector<std::vector<uint32_t> > vv_numPolProduct,
448 std::vector<std::vector<uint32_t> > vv_numSpectralPoint,
449 std::vector<std::vector<uint32_t> > vv_numBin,
450 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
452 std::vector<uint32_t> v_numSpectralWindow,
453 uint32_t numBaseband,
455 CorrelationModeMod::CorrelationMode correlationMode,
457 uint64_t timeCentroid,
460 const float* floatData);
465 DataDump( std::vector<std::vector<uint32_t> > vv_numPolProduct,
466 std::vector<std::vector<uint32_t> > vv_numSpectralPoint,
467 std::vector<std::vector<uint32_t> > vv_numBin,
468 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
470 std::vector<uint32_t> v_numSpectralWindow,
471 uint32_t numBaseband,
473 CorrelationModeMod::CorrelationMode correlationMode,
475 uint64_t timeCentroid,
478 const float* floatData,
479 const uint32_t* dataFlags);
483 DataDump( std::vector<std::vector<uint32_t> > vv_numCrossPolProduct,
484 std::vector<std::vector<uint32_t> > vv_numAutoPolProduct,
485 std::vector<std::vector<uint32_t> > vv_numSpectralPoint,
486 std::vector<std::vector<uint32_t> > vv_numBin,
487 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
489 std::vector<uint32_t> v_numSpectralWindow,
490 uint32_t numBaseband,
492 CorrelationModeMod::CorrelationMode correlationMode,
494 uint64_t timeCentroid,
525 void attachFlags( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
526 uint32_t numData,
const uint32_t* flagsPtr);
527 void importFlags( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
528 uint32_t numData,
const uint32_t* flagsPtr);
530 void attachActualTimes( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
531 uint32_t numData,
const int64_t * actualTimesPtr);
533 void importActualTimes( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
534 uint32_t numData,
const int64_t * actualTimesPtr);
537 uint32_t numData,
const int64_t * durationsPtr);
540 uint32_t numData,
const int64_t * durationsPtr);
543 void attachZeroLags ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
544 uint32_t numData,
const float* zeroLagsPtr);
546 void importZeroLags ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
547 uint32_t numData,
const float* zeroLagsPtr);
550 void attachAutoData ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
551 uint32_t numData,
const float * autoDataPtr);
553 void importAutoData ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
554 uint32_t numData,
const float * autoDataPtr);
556 void attachCrossData ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
557 uint32_t numData,
const short int* crossDataPtr);
558 void importCrossData ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
559 uint32_t numData,
const short int* crossDataPtr);
560 void attachCrossData ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
561 uint32_t numData,
const int * crossDataPtr);
562 void importCrossData ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
563 uint32_t numData,
const int * crossDataPtr);
564 void attachCrossData ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
565 uint32_t numData,
const float * crossDataPtr);
566 void importCrossData ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
567 uint32_t numData,
const float * crossDataPtr);
569 void setScaleFactor(std::vector<std::vector<float> > vv_scaleFactor);
586 uint64_t
time()
const;
602 const uint32_t*
flags()
const;
635 uint32_t
floatData(std::vector<std::vector<float>& >);
654 uint32_t
floatData(std::vector<std::vector<float*> >&);
662 uint32_t
floatData(std::vector<std::vector<std::vector<float> > >&);
682 uint32_t
floatData(std::vector<std::vector<std::vector<float*> > >&);
700 uint32_t
floatData(std::vector<std::vector<std::vector<std::vector<float> > > >&);
709 uint32_t
floatData(std::vector<std::vector<std::vector<std::vector<float*> > > >&);
718 uint32_t
floatData(std::vector<std::vector<std::vector<std::vector<std::vector<float> > > > >&);
921 DataDump( std::vector<std::vector<uint32_t> > vv_numCrossPolProduct,
922 std::vector<std::vector<uint32_t> > vv_numAutoPolProduct,
923 std::vector<std::vector<uint32_t> > vv_numSpectralPoint,
924 std::vector<std::vector<uint32_t> > vv_numBin,
925 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
927 std::vector<uint32_t> v_numSpectralWindow,
928 uint32_t numBaseband,
930 CorrelationModeMod::CorrelationMode correlationMode,
932 uint64_t timeCentroid,
936 const int* crossData,
938 const float* floatData,
940 const uint32_t* dataFlags);
956 Integration( std::vector<std::vector<uint32_t> > vv_numPolProduct,
957 std::vector<std::vector<uint32_t> > vv_numSpectralPoint,
958 std::vector<std::vector<uint32_t> > vv_numBin,
959 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
961 std::vector<uint32_t> v_numSpectralWindow,
973 Integration( std::vector<std::vector<uint32_t> > vv_numPolProduct,
974 std::vector<std::vector<uint32_t> > vv_numSpectralPoint,
975 std::vector<std::vector<uint32_t> > vv_numBin,
976 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
978 std::vector<uint32_t> v_numSpectralWindow,
979 uint32_t numBaseband,
981 CorrelationModeMod::CorrelationMode correlationMode,
983 uint64_t timeCentroid,
991 uint32_t numSpectralPoint,
993 Enum<NetSidebandMod::NetSideband> e_sideband,
995 uint32_t numSpectralWindow,
996 uint32_t numBaseband,
998 CorrelationModeMod::CorrelationMode correlationMode,
1000 uint64_t timeCentroid,
1006 uint32_t numSpectralPoint,
1008 Enum<NetSidebandMod::NetSideband> e_sideband,
1010 uint32_t numSpectralWindow,
1011 uint32_t numBaseband,
1013 CorrelationModeMod::CorrelationMode correlationMode,
1015 uint64_t timeCentroid,
1019 uint32_t* dataFlags,
1058 Subintegration( std::vector<std::vector<uint32_t> > vv_numPolProduct,
1059 std::vector<std::vector<uint32_t> > vv_numBin,
1060 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
1061 std::vector<uint32_t> v_numSpectralWindow,
1071 uint32_t subintegNum);
1079 Subintegration( std::vector<std::vector<uint32_t> > vv_numPolProduct,
1080 std::vector<std::vector<uint32_t> > vv_numBin,
1081 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
1082 std::vector<uint32_t> v_numSpectralWindow,
1083 uint32_t numBaseband,
1085 CorrelationModeMod::CorrelationMode correlationMode,
1087 uint64_t timeCentroid,
1091 uint32_t* dataFlags,
1093 uint32_t subintegNum);
1102 Subintegration( std::vector<std::vector<uint32_t> > vv_numPolProduct,
1103 std::vector<std::vector<uint32_t> > vv_numBin,
1104 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
1106 std::vector<uint32_t> v_numSpectralWindow,
1107 uint32_t numBaseband,
1109 CorrelationModeMod::CorrelationMode correlationMode,
1111 uint64_t timeCentroid,
1116 uint32_t subintegNum);
1123 Subintegration( std::vector<std::vector<uint32_t> > vv_numPolProduct,
1124 std::vector<std::vector<uint32_t> > vv_numSpectralPoint,
1125 std::vector<std::vector<uint32_t> > vv_numBin,
1126 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
1128 std::vector<uint32_t> v_numSpectralWindow,
1129 uint32_t numBaseband,
1131 CorrelationModeMod::CorrelationMode correlationMode,
1133 uint64_t timeCentroid,
1138 uint32_t subintegNum);
1145 Subintegration( std::vector<std::vector<uint32_t> > vv_numPolProduct,
1146 std::vector<std::vector<uint32_t> > vv_numSpectralPoint,
1147 std::vector<std::vector<uint32_t> > vv_numBin,
1148 std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband,
1150 std::vector<uint32_t> v_numSpectralWindow,
1151 uint32_t numBaseband,
1153 CorrelationModeMod::CorrelationMode correlationMode,
1155 uint64_t timeCentroid,
1159 uint32_t* dataFlags,
1161 uint32_t subintegNum);
1172 #define _INTEGRATION_H
void attachActualDurations(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const int64_t *durationsPtr)
const short * crossDataShort() const
std::vector< std::vector< uint32_t > > vv_numAutoPolProduct_
void importFlags(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const uint32_t *flagsPtr)
uint32_t dimension() const
Accessor to the dimensionality of the structure.
const float * cfloatAutoDataPtr_
uint32_t subintegrationNum_
uint32_t setIntegration(uint32_t integNum)
std::vector< uint32_t > maxAxSize() const
Maximum size for every axis (level) in the structure.
const short int * cshortCrossDataPtr_
~DataStructure()
Destructor (use the default implementation)
std::vector< std::vector< uint32_t > > vv_numBin_
std::vector< uint32_t > v_minSize_
std::vector< std::vector< Enum< NetSidebandMod::NetSideband > > > vv_e_sideband_
const float * zeroLags() const
DataDump spectralAverage()
EnumSet< AxisNameMod::AxisName > es_actualDurationsAxes_
uint32_t setSubintegration(uint32_t integNum, uint32_t subintegNum)
const int64_t * actualDurations() const
DataDump operator+=(const DataDump &)
Method to accumulate dumps.
uint32_t subintegrationNum()
std::vector< std::vector< uint32_t > > numBins()
Accessor to the number of bins in every spectral window for every baseband.
std::string setStructureProperties()
const float * cfloatZeroLagsPtr_
std::vector< std::vector< float > > vv_scaleFactor_
const int * crossDataLong() const
uint32_t numApc()
Accessor to the size of the APC axis.
DataDump operator*(const float &)
uint32_t integrationNum_
DataDump binSequence(vector<const DataDump &>); see Subscan.
uint64_t timeCentroid() const
void importActualDurations(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const int64_t *durationsPtr)
std::vector< uint32_t > numSpectralWindows()
Accessor to the number of spectral windows in the different basebands.
EnumSet< AxisNameMod::AxisName > es_actualTimesAxes_
DataDump subtractRef(const DataDump &)
DataStructure()
Empty constructor.
std::vector< uint32_t > v_numSpectralWindow_
void attachCrossData(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const short int *crossDataPtr)
float * floatCrossDataPtr_
std::vector< uint32_t > eAxisSizes() const
A method to retrieve the size of all the different axes in case of a multi-dimensional structure...
void attachFlags(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const uint32_t *flagsPtr)
std::vector< uint32_t > v_maxSize_
std::vector< std::vector< Enum< NetSidebandMod::NetSideband > > > sidebands()
Accessor to the NetSideband qualifiers in every spectral window for every baseband.
const float * crossDataFloat() const
void importActualTimes(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const int64_t *actualTimesPtr)
DataDump & operator=(const DataDump &a)
Assignement operatator.
float * floatZeroLagsPtr_
std::vector< uint32_t > minAxSize() const
Minimum size for every axis (level) in the structure.
uint32_t numActualDurations_
EnumSet< AxisNameMod::AxisName > es_flagsAxes_
DataDump operator+(const DataDump &)
Operator to take the sum between two data dumps.
uint32_t isIndexible() const
A method to know if the whole data structure can be considered as a multi-dimensional structure or no...
float scaleFactor(uint32_t nbb, uint32_t nspw)
The class Subintegration extends the DataDump by adding two attributes the integration number and the...
Subintegration(const Integration &, uint32_t subintegNum)
Constructor to generate a subintegration from an integration by averaging, in every spectral window...
void importCrossData(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const short int *crossDataPtr)
DataDump operator-(const DataDump &B)
Operator to take the difference between two data dumps.
std::vector< float > v_scaleFactor_
uint64_t exposure() const
std::vector< std::vector< uint32_t > > numSpectralPoints()
Accessor to the number of spectral points in every spectral window for every baseband.
const float * autoData() const
Accessor to the data values.
EnumSet< AxisNameMod::AxisName > es_crossDataAxes_
const float * cfloatWeightsPtr_
DataDump operator-=(const DataDump &)
Operator to take the difference between two data dumps.
const int64_t * clonlonActualDurationsPtr_
void importZeroLags(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const float *zeroLagsPtr)
A class which gathers the attributes required to define data structures.
short int * shortCrossDataPtr_
std::vector< uint32_t > leafAxisSizes()
Method to get the axis sizes of the leaves when represented as multi-dimensional structures.
The class DataDump extends the class DataStructure by adding time information to assign to the dump t...
int64_t * lonlonActualTimesPtr_
DataDump decim(const DataDump &)
const uint32_t * cuintFlagsPtr_
void setScaleFactor(std::vector< std::vector< float > > vv_scaleFactor)
int64_t * lonlonActualDurationsPtr_
const uint32_t * flags() const
Accessor to the flags values.
void attachAutoData(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const float *autoDataPtr)
uint32_t integrationNum()
Accessor.
EnumSet< AxisNameMod::AxisName > es_autoDataAxes_
const float * cfloatCrossDataPtr_
uint32_t floatData(std::vector< std::vector< float > & >)
Accessor to the data from a 2 levels tree-hierarchy.
The class Integration extends the DataDump class by adding an attribute to tag the dump with an integ...
const int64_t * actualTimes() const
CorrelationModeMod::CorrelationMode correlationMode()
Accessor to the correlationMode.
void attachZeroLags(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const float *zeroLagsPtr)
void summary() const
Utility which sumarizes the properties of the data structure.
std::vector< std::vector< uint32_t > > vv_numSpectralPoint_
EnumSet< AxisNameMod::AxisName > es_zeroLagsAxes_
std::string axisSequence_
DataDump operator/(const float &)
std::string axisSequence() const
Axis sequense: For example 128 means a structure with 3 axes, pol,sp,na.
std::vector< std::vector< uint32_t > > numCrossPolProducts()
Accessor to the number of polarization cross product for non-zero baselines in every spectral window ...
uint32_t numCrossData() const
Number of data value (leaves) that can host the structure.
uint32_t setContextUsingProjectPath(std::string projectPathUri)
std::vector< uint32_t > axisSizes() const
A method to retrieve the size of the axes for a multi-dimensional structure.
uint64_t interval() const
std::vector< std::vector< uint32_t > > numAutoPolProducts()
Accessor to the number of polarization cross product for zero-baselines in every spectral window for ...
const int * cintCrossDataPtr_
CorrelationModeMod::CorrelationMode correlationMode_
EnumSet< AxisNameMod::AxisName > es_weightsAxes_
float * floatAutoDataPtr_
uint32_t numAnt()
Accessor to the number of antennas.
void attachActualTimes(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const int64_t *actualTimesPtr)
uint32_t numBaseband()
Accessor to the number of basebands.
std::vector< std::vector< uint32_t > > vv_numCrossPolProduct_
uint32_t numAutoData() const
Number of data value (leaves) that can host the structure.
const int64_t * clonlonActualTimesPtr_
void importAutoData(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const float *autoDataPtr)