casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Integration.h
Go to the documentation of this file.
1 #if !defined(_INTEGRATION_H)
2 
3 #include <vector>
7 
8 namespace sdmbin {
9 
43  public:
45  DataStructure();
46 
56  DataStructure( uint32_t numPolProduct,
57  uint32_t numBin,
58  Enum<NetSidebandMod::NetSideband> e_sideband,
59  uint32_t numBaseband,
60  uint32_t numAnt,
61  CorrelationModeMod::CorrelationMode correlationMode);
62 
84  DataStructure( uint32_t numPolProduct,
85  uint32_t numSpectralPoint,
86  uint32_t numBin,
87  Enum<NetSidebandMod::NetSideband> e_sideband,
88  uint32_t numBaseband,
89  uint32_t numAnt,
90  CorrelationModeMod::CorrelationMode correlationMode);
91 
118  DataStructure( std::vector<std::vector<uint32_t> > vv_numCrossPolProduct,// /bb/spw
119  std::vector<std::vector<uint32_t> > vv_numAutoPolProduct, // /bb/spw
120  std::vector<std::vector<uint32_t> > vv_numSpectralPoint, // /bb/spw
121  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
122  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
123  uint32_t numApc,
124  std::vector<uint32_t> v_numSpectralWindow, // /bb
125  uint32_t numBaseband,
126  uint32_t numAnt,
127  CorrelationModeMod::CorrelationMode correlationMode);
128 
155  DataStructure( std::vector<std::vector<uint32_t> > vv_numAutoPolProduct, // /bb/spw
156  std::vector<std::vector<uint32_t> > vv_numSpectralPoint, // /bb/spw
157  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
158  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
159  uint32_t numApc,
160  std::vector<uint32_t> v_numSpectralWindow, // /bb
161  uint32_t numBaseband,
162  uint32_t numAnt,
163  CorrelationModeMod::CorrelationMode correlationMode);
164 
166  DataStructure( const DataStructure &);
167 
169  ~DataStructure();
170 
171 
175  std::vector<std::vector<uint32_t> > numCrossPolProducts();
176 
180  std::vector<std::vector<uint32_t> > numAutoPolProducts();
181 
185  std::vector<std::vector<uint32_t> > numSpectralPoints();
186 
187 
191  std::vector<std::vector<uint32_t> > numBins();
192 
196  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > sidebands();
197 
199  uint32_t numApc();
200 
202  std::vector<uint32_t> numSpectralWindows();
203 
205  uint32_t numBaseband();
206 
208  uint32_t numAnt();
209 
215  CorrelationModeMod::CorrelationMode correlationMode();
216 
227  std::vector<uint32_t> leafAxisSizes();
228 
241  std::vector<uint32_t> leafAxisSizes(uint32_t basebandIndex, uint32_t spectralWindowIndex);
242 
257  std::vector<uint32_t> leafAxisSizes(uint32_t dataDescriptionIndex);
258 
259 
268  uint32_t isIndexible() const;
269 
270 
278  std::vector<uint32_t> eAxisSizes() const;
279 
286  std::vector<uint32_t> axisSizes() const;
287 
292  uint32_t dimension() const;
293 
298  std::vector<uint32_t> minAxSize() const;
299 
304  std::vector<uint32_t> maxAxSize() const;
305 
308  uint32_t numAutoData() const;
309 
312  uint32_t numCrossData() const;
313 
317  std::string axisSequence() const;
318 
321  void summary() const;
322 
323  protected:
324  std::vector<std::vector<uint32_t> > vv_numCrossPolProduct_;// /bb/spw
325  std::vector<std::vector<uint32_t> > vv_numAutoPolProduct_; // /bb/spw
326  std::vector<std::vector<uint32_t> > vv_numSpectralPoint_; // /bb/spw
327  std::vector<std::vector<uint32_t> > vv_numBin_; // /bb/spw
328  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband_; // /bb/spw
329  uint32_t numApc_;
330  std::vector<uint32_t> v_numSpectralWindow_; // /bb
331  uint32_t numBaseband_;
332  uint32_t numAnt_;
333  CorrelationModeMod::CorrelationMode correlationMode_;
334  std::string axisSequence_;
335  std::vector<uint32_t> v_minSize_;
336  std::vector<uint32_t> v_maxSize_;
337 
338  private:
339  std::string setStructureProperties();
340  };
341 
368  class DataDump : public DataStructure {
369  public:
370  DataDump();
371 
393  DataDump( uint32_t numPolProduct,
394  uint32_t numBin,
395  Enum<NetSidebandMod::NetSideband> e_sideband,
396  uint32_t numBaseband,
397  uint32_t numAnt,
398  CorrelationModeMod::CorrelationMode correlationMode,
399  uint64_t time,
400  uint64_t timeCentroid,
401  uint64_t interval,
402  uint64_t exposure,
403  const float* floatData);
404 
430  DataDump( uint32_t numSdPolProduct,
431  uint32_t numSpectralPoint,
432  uint32_t numBin,
433  Enum<NetSidebandMod::NetSideband> e_sideband,
434  uint32_t numBaseband,
435  uint32_t numAnt,
436  CorrelationModeMod::CorrelationMode correlationMode,
437  uint64_t time,
438  uint64_t timeCentroid,
439  uint64_t interval,
440  uint64_t exposure,
441  const float* floatData,
442  const uint32_t* dataFlags); // TODO
443 
447  DataDump( std::vector<std::vector<uint32_t> > vv_numPolProduct, // /bb/spw
448  std::vector<std::vector<uint32_t> > vv_numSpectralPoint, // /bb/spw
449  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
450  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
451  uint32_t numApc,
452  std::vector<uint32_t> v_numSpectralWindow, // /bb
453  uint32_t numBaseband,
454  uint32_t numAnt,
455  CorrelationModeMod::CorrelationMode correlationMode,
456  uint64_t time,
457  uint64_t timeCentroid,
458  uint64_t interval,
459  uint64_t exposure,
460  const float* floatData);
461 
465  DataDump( std::vector<std::vector<uint32_t> > vv_numPolProduct, // /bb/spw
466  std::vector<std::vector<uint32_t> > vv_numSpectralPoint, // /bb/spw
467  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
468  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
469  uint32_t numApc,
470  std::vector<uint32_t> v_numSpectralWindow, // /bb
471  uint32_t numBaseband,
472  uint32_t numAnt,
473  CorrelationModeMod::CorrelationMode correlationMode,
474  uint64_t time,
475  uint64_t timeCentroid,
476  uint64_t interval,
477  uint64_t exposure,
478  const float* floatData,
479  const uint32_t* dataFlags);
480 
483  DataDump( std::vector<std::vector<uint32_t> > vv_numCrossPolProduct,// /bb/spw
484  std::vector<std::vector<uint32_t> > vv_numAutoPolProduct, // /bb/spw
485  std::vector<std::vector<uint32_t> > vv_numSpectralPoint, // /bb/spw
486  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
487  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
488  uint32_t numApc,
489  std::vector<uint32_t> v_numSpectralWindow, // /bb
490  uint32_t numBaseband,
491  uint32_t numAnt,
492  CorrelationModeMod::CorrelationMode correlationMode,
493  uint64_t time,
494  uint64_t timeCentroid,
495  uint64_t interval,
496  uint64_t exposure);
497 
515  ~DataDump();
516 
520  DataDump(const DataDump& a);
521 
523  DataDump & operator = (const DataDump& a);
524 
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);
529 
530  void attachActualTimes( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
531  uint32_t numData, const int64_t * actualTimesPtr);
532 
533  void importActualTimes( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
534  uint32_t numData, const int64_t * actualTimesPtr);
535 
536  void attachActualDurations( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
537  uint32_t numData, const int64_t * durationsPtr);
538 
539  void importActualDurations( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
540  uint32_t numData, const int64_t * durationsPtr);
541 
542 
543  void attachZeroLags ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
544  uint32_t numData, const float* zeroLagsPtr);
545 
546  void importZeroLags ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
547  uint32_t numData, const float* zeroLagsPtr);
548 
549 
550  void attachAutoData ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
551  uint32_t numData, const float * autoDataPtr);
552 
553  void importAutoData ( uint32_t declaredSize, EnumSet<AxisNameMod::AxisName> es_an,
554  uint32_t numData, const float * autoDataPtr);
555 
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);
568 
569  void setScaleFactor(std::vector<std::vector<float> > vv_scaleFactor);
570  uint32_t setIntegration(uint32_t integNum);
571  uint32_t setSubintegration(uint32_t integNum, uint32_t subintegNum);
572  uint32_t setContextUsingProjectPath(std::string projectPathUri);
573 
574  // Accessor
575  uint32_t integrationNum();
576  uint32_t subintegrationNum();
577 
578  float scaleFactor(uint32_t nbb, uint32_t nspw);
579 
580  float scaleFactor(uint32_t ndd);
581 
586  uint64_t time() const;
587  uint64_t timeCentroid() const;
588  uint64_t interval() const;
589  uint64_t exposure() const;
591 
596  const int64_t* actualTimes() const;
597  const int64_t* actualDurations() const;
602  const uint32_t* flags() const;
603  const float* zeroLags() const;
604 
605 
617  const float* autoData() const;
618 
619  const short* crossDataShort() const;
620 
621  const int* crossDataLong() const;
622 
623  const float* crossDataFloat() const;
624 
635  uint32_t floatData(std::vector<std::vector<float>& >);
636 
637 
654  uint32_t floatData(std::vector<std::vector<float*> >&);
655 
656 
662  uint32_t floatData(std::vector<std::vector<std::vector<float> > >&);
663 
664 
682  uint32_t floatData(std::vector<std::vector<std::vector<float*> > >&);
683 
684 
700  uint32_t floatData(std::vector<std::vector<std::vector<std::vector<float> > > >&);
701 
702 
703 
709  uint32_t floatData(std::vector<std::vector<std::vector<std::vector<float*> > > >&);
710 
718  uint32_t floatData(std::vector<std::vector<std::vector<std::vector<std::vector<float> > > > >&);
719 
720  // /nant/nbb/nspw/nbin/napc/nsp/npol
721  // | | | | | | |
722  // | | | | | | corr or uncorr (enum)
723  // | | | | | scId (global keys)
724  // | | | | spwNames (keys in baseband context)
725  // | | | basebandNames (global keys)
726  // | | antNames (global keys)
727  // | configDescId (global key)
728 
730 
759  DataDump operator - (const DataDump & B); // shape unchanged
760 
785  DataDump operator -= (const DataDump &); // shape unchanged
786 
814  DataDump operator + (const DataDump &); // shape unchanged
815 
816 
845  DataDump operator += (const DataDump &);
846 
847  DataDump operator * (const float &);
848  DataDump operator / (const float &);
849 /* DataDump operator * (const DataProfile &); */
850 /* DataDump operator / (const DataProfile &); */
851 /* DataProfile operator *= (const DataProfile &); */
852 /* Dataprofile operator /= (const DataProfile &); */
853 
854 
855 
857 
864  DataDump spectralAverage(uint32_t startIndex, uint32_t endIndex);
865  DataDump decim(const DataDump &);
866  DataDump subtractRef(const DataDump &);
868 
869 
870  //DataDump binSequence(vector<const DataDump &>); see Subscan
871 
872  protected:
873 
874  uint32_t integrationNum_;
876  uint64_t time_;
877  uint64_t timeCentroid_;
878  uint64_t interval_;
879  uint64_t exposure_;
880 
881  EnumSet<AxisNameMod::AxisName> es_flagsAxes_;
882  EnumSet<AxisNameMod::AxisName> es_actualTimesAxes_;
883  EnumSet<AxisNameMod::AxisName> es_actualDurationsAxes_;
884  EnumSet<AxisNameMod::AxisName> es_weightsAxes_;
885  EnumSet<AxisNameMod::AxisName> es_zeroLagsAxes_;
886  EnumSet<AxisNameMod::AxisName> es_autoDataAxes_;
887  EnumSet<AxisNameMod::AxisName> es_crossDataAxes_;
888 
889  uint32_t numFlags_;
890  uint32_t numActualTimes_;
892  uint32_t numWeights_;
893  uint32_t numZeroLags_;
894  uint32_t numAutoData_;
895  uint32_t numCrossData_;
896 
897  std::vector<std::vector<float> > vv_scaleFactor_; // /bb/spw
898  std::vector<float> v_scaleFactor_; // /ndd linearized version of vv_scaleFactor_ for fast access
899 
900  const uint32_t* cuintFlagsPtr_;
901  const int64_t* clonlonActualTimesPtr_;
903  const float* cfloatWeightsPtr_;
904  const float* cfloatZeroLagsPtr_;
905  const float* cfloatAutoDataPtr_;
906  const short int* cshortCrossDataPtr_;
907  const int* cintCrossDataPtr_;
908  const float* cfloatCrossDataPtr_;
909 
910  uint32_t* uintFlagsPtr_;
916  short int* shortCrossDataPtr_;
919 
921  DataDump( std::vector<std::vector<uint32_t> > vv_numCrossPolProduct,// /bb/spw
922  std::vector<std::vector<uint32_t> > vv_numAutoPolProduct, // /bb/spw
923  std::vector<std::vector<uint32_t> > vv_numSpectralPoint, // /bb/spw
924  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
925  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
926  uint32_t numApc,
927  std::vector<uint32_t> v_numSpectralWindow, // /bb
928  uint32_t numBaseband,
929  uint32_t numAnt,
930  CorrelationModeMod::CorrelationMode correlationMode,
931  uint64_t time,
932  uint64_t timeCentroid,
933  uint64_t interval,
934  uint64_t exposure,
935  uint32_t numCrossData,
936  const int* crossData,
937  uint32_t numAutoData,
938  const float* floatData,
939  uint32_t numFlags,
940  const uint32_t* dataFlags);
941 
942  private:
943 
944  void getDataStructure();
945  };
946 
947 
952  class Integration : public DataDump
953  {
954  public:
955  Integration();
956  Integration( std::vector<std::vector<uint32_t> > vv_numPolProduct, // /bb/spw
957  std::vector<std::vector<uint32_t> > vv_numSpectralPoint, // /bb/spw
958  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
959  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
960  uint32_t numApc,
961  std::vector<uint32_t> v_numSpectralWindow, // /bb
962  uint32_t numBaseband,
963  uint32_t numAnt,
964  CorrelationModeMod::CorrelationMode correlationMode,
965  uint64_t time,
966  uint64_t timeCentroid,
967  uint64_t interval,
968  uint64_t exposure,
969  float* floatData,
970  uint32_t integNum);
971 
972 
973  Integration( std::vector<std::vector<uint32_t> > vv_numPolProduct, // /bb/spw
974  std::vector<std::vector<uint32_t> > vv_numSpectralPoint, // /bb/spw
975  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
976  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
977  uint32_t numApc,
978  std::vector<uint32_t> v_numSpectralWindow, // /bb
979  uint32_t numBaseband,
980  uint32_t numAnt,
981  CorrelationModeMod::CorrelationMode correlationMode,
982  uint64_t time,
983  uint64_t timeCentroid,
984  uint64_t interval,
985  uint64_t exposure,
986  float* floatData,
987  uint32_t* dataFlags,
988  uint32_t integNum);
989 
990  Integration( uint32_t numPolProduct,
991  uint32_t numSpectralPoint,
992  uint32_t numBin,
993  Enum<NetSidebandMod::NetSideband> e_sideband,
994  uint32_t numApc,
995  uint32_t numSpectralWindow,
996  uint32_t numBaseband,
997  uint32_t numAnt,
998  CorrelationModeMod::CorrelationMode correlationMode,
999  uint64_t time,
1000  uint64_t timeCentroid,
1001  uint64_t interval,
1002  uint64_t exposure,
1003  float* floatData);
1004 
1005  Integration( uint32_t numPolProduct,
1006  uint32_t numSpectralPoint,
1007  uint32_t numBin,
1008  Enum<NetSidebandMod::NetSideband> e_sideband,
1009  uint32_t numApc,
1010  uint32_t numSpectralWindow,
1011  uint32_t numBaseband,
1012  uint32_t numAnt,
1013  CorrelationModeMod::CorrelationMode correlationMode,
1014  uint64_t time,
1015  uint64_t timeCentroid,
1016  uint64_t interval,
1017  uint64_t exposure,
1018  float* floatData,
1019  uint32_t* dataFlags, // TODO
1020  uint32_t integNum);
1021  ~Integration();
1022 
1023  Integration( const Integration & a);
1024 
1025 
1026  private:
1027 /* uint32_t integrationNum_; */
1028 /* uint32_t subintegrationNum_; */
1029  };
1030 
1031 /* uint32_t Integration::subintegrationNum_=0; */
1032 
1038  class Subintegration : public DataDump
1039  {
1040  public:
1041 
1050  Subintegration (const Integration&, uint32_t subintegNum );
1051 
1058  Subintegration( std::vector<std::vector<uint32_t> > vv_numPolProduct, // /bb/spw
1059  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
1060  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
1061  std::vector<uint32_t> v_numSpectralWindow, // /bb
1062  uint32_t numBaseband,
1063  uint32_t numAnt,
1064  CorrelationModeMod::CorrelationMode correlationMode,
1065  uint64_t time,
1066  uint64_t timeCentroid,
1067  uint64_t interval,
1068  uint64_t exposure,
1069  float* floatData,
1070  uint32_t integNum,
1071  uint32_t subintegNum);
1072 
1079  Subintegration( std::vector<std::vector<uint32_t> > vv_numPolProduct, // /bb/spw
1080  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
1081  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
1082  std::vector<uint32_t> v_numSpectralWindow, // /bb
1083  uint32_t numBaseband,
1084  uint32_t numAnt,
1085  CorrelationModeMod::CorrelationMode correlationMode,
1086  uint64_t time,
1087  uint64_t timeCentroid,
1088  uint64_t interval,
1089  uint64_t exposure,
1090  float* floatData,
1091  uint32_t* dataFlags, // TODO
1092  uint32_t integNum,
1093  uint32_t subintegNum);
1094 
1102  Subintegration( std::vector<std::vector<uint32_t> > vv_numPolProduct, // /bb/spw
1103  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
1104  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
1105  uint32_t numApc,
1106  std::vector<uint32_t> v_numSpectralWindow, // /bb
1107  uint32_t numBaseband,
1108  uint32_t numAnt,
1109  CorrelationModeMod::CorrelationMode correlationMode,
1110  uint64_t time,
1111  uint64_t timeCentroid,
1112  uint64_t interval,
1113  uint64_t exposure,
1114  float* floatData,
1115  uint32_t integNum,
1116  uint32_t subintegNum);
1117 
1123  Subintegration( std::vector<std::vector<uint32_t> > vv_numPolProduct, // /bb/spw
1124  std::vector<std::vector<uint32_t> > vv_numSpectralPoint, // /bb/spw
1125  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
1126  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
1127  uint32_t numApc,
1128  std::vector<uint32_t> v_numSpectralWindow, // /bb
1129  uint32_t numBaseband,
1130  uint32_t numAnt,
1131  CorrelationModeMod::CorrelationMode correlationMode,
1132  uint64_t time,
1133  uint64_t timeCentroid,
1134  uint64_t interval,
1135  uint64_t exposure,
1136  float* floatData,
1137  uint32_t integNum,
1138  uint32_t subintegNum);
1139 
1145  Subintegration( std::vector<std::vector<uint32_t> > vv_numPolProduct, // /bb/spw
1146  std::vector<std::vector<uint32_t> > vv_numSpectralPoint, // /bb/spw
1147  std::vector<std::vector<uint32_t> > vv_numBin, // /bb/spw
1148  std::vector<std::vector<Enum<NetSidebandMod::NetSideband> > > vv_e_sideband, // /bb/spw
1149  uint32_t numApc,
1150  std::vector<uint32_t> v_numSpectralWindow, // /bb
1151  uint32_t numBaseband,
1152  uint32_t numAnt,
1153  CorrelationModeMod::CorrelationMode correlationMode,
1154  uint64_t time,
1155  uint64_t timeCentroid,
1156  uint64_t interval,
1157  uint64_t exposure,
1158  float* floatData,
1159  uint32_t* dataFlags, // TODO
1160  uint32_t integNum,
1161  uint32_t subintegNum);
1162 
1163  private:
1164 
1165 /* uint32_t integrationNum_; */
1166 /* uint32_t subintegrationNum_; */
1167 
1168  };
1169 
1170 }
1171 
1172 #define _INTEGRATION_H
1173 #endif
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_
Definition: Integration.h:325
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_
Definition: Integration.h:905
uint32_t subintegrationNum_
Definition: Integration.h:875
uint32_t setIntegration(uint32_t integNum)
~DataDump()
Destructor.
uint32_t numAutoData_
Definition: Integration.h:894
std::vector< uint32_t > maxAxSize() const
Maximum size for every axis (level) in the structure.
const short int * cshortCrossDataPtr_
Definition: Integration.h:906
~DataStructure()
Destructor (use the default implementation)
std::vector< std::vector< uint32_t > > vv_numBin_
Definition: Integration.h:327
std::vector< uint32_t > v_minSize_
Definition: Integration.h:335
std::vector< std::vector< Enum< NetSidebandMod::NetSideband > > > vv_e_sideband_
Definition: Integration.h:328
const float * zeroLags() const
DataDump spectralAverage()
EnumSet< AxisNameMod::AxisName > es_actualDurationsAxes_
Definition: Integration.h:883
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.
uint32_t numActualTimes_
Definition: Integration.h:890
std::string setStructureProperties()
const float * cfloatZeroLagsPtr_
Definition: Integration.h:904
std::vector< std::vector< float > > vv_scaleFactor_
Definition: Integration.h:897
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&lt;const DataDump &amp;&gt;); see Subscan.
Definition: Integration.h:874
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_
Definition: Integration.h:882
DataDump subtractRef(const DataDump &)
DataStructure()
Empty constructor.
uint64_t exposure_
Definition: Integration.h:879
std::vector< uint32_t > v_numSpectralWindow_
Definition: Integration.h:330
void attachCrossData(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const short int *crossDataPtr)
float * floatCrossDataPtr_
Definition: Integration.h:918
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_
Definition: Integration.h:336
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)
float * floatWeightsPtr_
Definition: Integration.h:913
DataDump & operator=(const DataDump &a)
Assignement operatator.
float * floatZeroLagsPtr_
Definition: Integration.h:914
std::vector< uint32_t > minAxSize() const
Minimum size for every axis (level) in the structure.
uint32_t numActualDurations_
Definition: Integration.h:891
EnumSet< AxisNameMod::AxisName > es_flagsAxes_
Definition: Integration.h:881
uint32_t numCrossData_
Definition: Integration.h:895
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...
Definition: Integration.h:1038
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_
Definition: Integration.h:898
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_
Definition: Integration.h:887
const float * cfloatWeightsPtr_
Definition: Integration.h:903
uint64_t time() const
DataDump operator-=(const DataDump &)
Operator to take the difference between two data dumps.
const int64_t * clonlonActualDurationsPtr_
Definition: Integration.h:902
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.
Definition: Integration.h:42
short int * shortCrossDataPtr_
Definition: Integration.h:916
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...
Definition: Integration.h:368
int64_t * lonlonActualTimesPtr_
Definition: Integration.h:911
DataDump decim(const DataDump &)
const uint32_t * cuintFlagsPtr_
Definition: Integration.h:900
void setScaleFactor(std::vector< std::vector< float > > vv_scaleFactor)
int64_t * lonlonActualDurationsPtr_
Definition: Integration.h:912
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_
Definition: Integration.h:886
const float * cfloatCrossDataPtr_
Definition: Integration.h:908
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...
Definition: Integration.h:952
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_
Definition: Integration.h:326
EnumSet< AxisNameMod::AxisName > es_zeroLagsAxes_
Definition: Integration.h:885
uint64_t interval_
Definition: Integration.h:878
std::string axisSequence_
Definition: Integration.h:334
uint32_t numZeroLags_
Definition: Integration.h:893
uint32_t numFlags_
Definition: Integration.h:889
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 ...
int * intCrossDataPtr_
Definition: Integration.h:917
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
uint64_t timeCentroid_
Definition: Integration.h:877
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_
Definition: Integration.h:907
CorrelationModeMod::CorrelationMode correlationMode_
Definition: Integration.h:333
EnumSet< AxisNameMod::AxisName > es_weightsAxes_
Definition: Integration.h:884
float * floatAutoDataPtr_
Definition: Integration.h:915
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_
Definition: Integration.h:324
uint32_t numAutoData() const
Number of data value (leaves) that can host the structure.
uint32_t numWeights_
Definition: Integration.h:892
const int64_t * clonlonActualTimesPtr_
Definition: Integration.h:901
void importAutoData(uint32_t declaredSize, EnumSet< AxisNameMod::AxisName > es_an, uint32_t numData, const float *autoDataPtr)
uint32_t * uintFlagsPtr_
Definition: Integration.h:910
void getDataStructure()