Ignore:
Timestamp:
02/17/06 16:06:45 (19 years ago)
Author:
mar637
Message:

Removed actual SDContainer class

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/SDContainer.h

    r754 r832  
    3636#include <casa/aips.h>
    3737#include <casa/BasicSL/String.h>
    38 #include <casa/Arrays/Array.h>
    3938#include <casa/Arrays/Vector.h>
    4039#include <casa/Containers/Block.h>
     
    6564  void print() const ;
    6665};
    67 
    68 class SDFrequencyTable {
    69 
    70 public:
    71 
    72   SDFrequencyTable() : nFreq_(0) {;}
    73   virtual ~SDFrequencyTable() {;}
    74 
    75   // Add a new entry or match an existing one. Returns the index into
    76   // the table
    77   casa::uInt addFrequency(casa::Double refPix, casa::Double refVal,
    78                           casa::Double inc);
    79 
    80   casa::Int length() const { return nFreq_;}  // # of stored Frequencies
    81   void setLength(casa::uInt length) {nFreq_ = length;}
    82 
    83   // Get attributes
    84   casa::Double referencePixel(casa::uInt which) const { return refPix_[which];}
    85   casa::Double referenceValue(casa::uInt which) const { return refVal_[which];}
    86   casa::Double increment(casa::uInt which) const { return increment_[which];}
    87   casa::Float equinox() const { return equinox_; }
    88   casa::String refFrame() const { return refFrame_; }
    89   casa::String baseRefFrame() const { return baseRefFrame_; }
    90   casa::String unit() const { return unit_; }
    91 
    92   void restFrequencies(casa::Vector<casa::Double>& rfs,
    93                        casa::String& rfunit ) const ;
    94 
    95   // Set attributes
    96   void setEquinox(casa::Float eq) { equinox_ = eq; }
    97   void setRefFrame(const casa::String& reff) { refFrame_ = reff; }
    98   void setBaseRefFrame(const casa::String& reff) { baseRefFrame_ = reff; }
    99   void setUnit(const casa::String& un) { unit_= un; }
    100 
    101   void deleteRestFrequencies() {restFreqs_.resize(0);}
    102   casa::uInt addRestFrequency(casa::Double);
    103   void setRestFrequencyUnit(const casa::String& theunit)
    104   { restFreqUnit_ = theunit;}
    105 
    106 private:
    107   casa::uInt nFreq_;
    108   casa::Vector<casa::Double> refPix_;
    109   casa::Vector<casa::Double> refVal_;           // Hz
    110   casa::Vector<casa::Double> increment_;        // Hz
    111   casa::Float equinox_;
    112   casa::String unit_;
    113   casa::String refFrame_;
    114   casa::String baseRefFrame_;
    115   casa::Vector<casa::Double> restFreqs_;        // Hz
    116   casa::String restFreqUnit_;
    117 };
    118 
    119 
    120 class SDContainer {
    121 
    122 public:
    123   SDContainer(casa::uInt nBeam, casa::uInt nIF, casa::uInt nPol,
    124               casa::uInt nChan);
    125   SDContainer(casa::IPosition shp);
    126 
    127   virtual ~SDContainer();
    128 
    129   casa::Bool resize(casa::IPosition shp);
    130 
    131   casa::Bool setSpectrum(const casa::Matrix<casa::Float>& spec,
    132                    casa::uInt whichBeam, casa::uInt whichIF);
    133   casa::Bool setSpectrum(const casa::Matrix<casa::Float>& spec,
    134                          const casa::Vector<casa::Complex>& cSpec,
    135                          casa::uInt whichBeam, casa::uInt whichIF);
    136   casa::Bool putSpectrum(const casa::Array<casa::Float>& spec);
    137 
    138   casa::Bool setFlags(const casa::Matrix<casa::uChar>& flgs,
    139                       casa::uInt whichBeam, casa::uInt whichIF,
    140                       casa::Bool hasXPol=casa::False);
    141   casa::Bool putFlags(const casa::Array<casa::uChar>& spec);
    142 
    143   casa::Bool setTsys(const casa::Vector<casa::Float>& ts,
    144                casa::uInt whichBeam, casa::uInt whichIF,
    145                casa::Bool hasXpol);
    146   casa::Bool putTsys(const casa::Array<casa::Float>& spec);
    147 
    148   casa::Bool setDirection(const casa::Vector<casa::Double>& point,
    149                           casa::uInt whichBeam);
    150   casa::Bool putDirection(const casa::Array<casa::Double>& dir);
    151 
    152   casa::Bool setFrequencyMap(casa::uInt freqslot, casa::uInt whichIF);
    153   casa::Bool putFreqMap(const casa::Vector<casa::uInt>& freqs);
    154 
    155   casa::Bool setRestFrequencyMap(casa::uInt freqslot, casa::uInt whichIF);
    156   casa::Bool putRestFreqMap(const casa::Vector<casa::uInt>& freqs);
    157 
    158   casa::Array<casa::Float> getSpectrum(casa::uInt whichBeam,
    159                                        casa::uInt whichIF);
    160   casa::Array<casa::uChar> getFlags(casa::uInt whichBeam,
    161                                     casa::uInt whichIF);
    162   casa::Array<casa::Float> getTsys(casa::uInt whichBeam,
    163                                    casa::uInt whichIF);
    164   casa::Array<casa::Double> getDirection(casa::uInt whichBeam) const;
    165 
    166   const casa::Array<casa::Float>& getSpectrum() const { return spectrum_; }
    167   const casa::Array<casa::uChar>& getFlags() const { return flags_; }
    168   const casa::Array<casa::Float>& getTsys() const { return tsys_; }
    169   const casa::Array<casa::Double>& getDirection() const { return direction_; }
    170 
    171   const casa::Vector<casa::uInt>& getFreqMap() const { return freqidx_; }
    172   const casa::Vector<casa::uInt>& getRestFreqMap() const
    173   { return restfreqidx_; }
    174 
    175   casa::Bool putFitMap(const casa::Array<casa::Int>& arr);
    176 
    177   const casa::Array<casa::Int>& getFitMap() const { return fitIDMap_; }
    178 
    179 
    180   casa::Double timestamp;
    181   //Double bandwidth;
    182   casa::String sourcename;
    183   casa::String fieldname;
    184   casa::Double interval;
    185   casa::Int scanid;
    186   casa::Vector<casa::Float> tcal;
    187   casa::String tcaltime;
    188   casa::Float azimuth;
    189   casa::Float elevation;
    190   casa::Float parangle;
    191   casa::Int refbeam;
    192 
    193 private:
    194   casa::uInt nBeam_,nIF_,nPol_,nChan_;
    195 
    196   // (nBeam,nIF,nPol,nChannel)
    197   casa::Array<casa::Float>    spectrum_;
    198   casa::Array<casa::uChar>    flags_;
    199 
    200   // (nBeam,nIF,nPol,[nChannel]) Tsys is not really a function of
    201   // channel, but this makes it easier to work with at the expense of
    202   // a little memory
    203   casa::Array<casa::Float>    tsys_;
    204   casa::Array<casa::Float>    tcal_;
    205 
    206   //(nIF) indx into "global" frequency table
    207   casa::Vector<casa::uInt>    freqidx_;
    208 
    209  // (nIF) indx into "global" rest frequency table
    210   casa::Vector<casa::uInt>    restfreqidx_;
    211 
    212   //(nBeam,2) maybe use Measures here...
    213   casa::Array<casa::Double>   direction_;
    214   casa::Array<casa::Int> fitIDMap_;
    215 
    216   void setSlice(casa::IPosition& start, casa::IPosition& end,
    217                 const casa::IPosition& shpIn, const casa::IPosition& shpOut,
    218                 casa::uInt whichBeam, casa::uInt whichIF, casa::Bool checkPol,
    219                 casa::Bool xPol) const;
    220   void setSlice(casa::IPosition& start, casa::IPosition& end,
    221                 const casa::IPosition& shape,
    222                 casa::uInt whichBeam, casa::uInt whichIF) const;
    223 };
    224 
    225 
    22666
    22767class SDDataDesc {
Note: See TracChangeset for help on using the changeset viewer.