Ignore:
Timestamp:
07/07/04 18:37:16 (20 years ago)
Author:
mmarquar
Message:

Added frequency information handling.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/SDContainer.cc

    r27 r34  
    6565    spectrum_(IPosition(4,nBeam,nIF,nPol,nChan)),
    6666    flags_(IPosition(4,nBeam,nIF,nPol,nChan)),
    67     tsys_(IPosition(4,nBeam,nIF,nPol,nChan)) {
     67    tsys_(IPosition(4,nBeam,nIF,nPol,nChan)),
     68    freqidx_(nIF) {
    6869  uChar x = 0;
    6970  flags_ = ~x;
     
    7778    spectrum_(shp),
    7879    flags_(shp),
    79     tsys_(shp) {
     80    tsys_(shp),
     81    freqidx_(shp(1)){
    8082  uChar x = 0;
    8183  flags_ = ~x;
     
    174176}
    175177
    176 Array<Float> SDContainer::getSpectrum(uInt whichBeam, uInt whichIF) const
    177 {
     178const Array<Float>& SDContainer::getSpectrum(uInt whichBeam, uInt whichIF) const {
    178179  Matrix<Float> spectra(nChan_, nPol_);
    179180
     
    209210}
    210211
    211 Array<uChar> SDContainer::getFlags(uInt whichBeam, uInt whichIF) const
     212const Array<uChar>& SDContainer::getFlags(uInt whichBeam, uInt whichIF) const
    212213{
    213214  Matrix<uChar> flagtra(nChan_, nPol_);
     
    244245}
    245246
    246 Array<Float> SDContainer::getTsys(uInt whichBeam, uInt whichIF) const
     247const Array<Float>& SDContainer::getTsys(uInt whichBeam, uInt whichIF) const
    247248{
    248249  Vector<Float> tsys(nPol_);
     
    269270    o0++;
    270271  }
    271 
    272272  return tsys;
    273273}
     274
     275Bool SDContainer::setFrequencyMap(uInt freqslot, uInt whichIF) {
     276  freqidx_[whichIF] = freqslot;
     277  return True;
     278}
     279
     280Bool SDContainer::putFreqMap(const Vector<uInt>& freqs) {
     281  freqidx_.resize();
     282  freqidx_ = freqs;
     283  return True;
     284}
     285
     286Int SDFrequencyTable::addFrequency(Int refPix, Double refVal, Double inc) {
     287  Int idx = -1;
     288  Bool addit = False;
     289  if (length() > 0) {
     290    for (uInt i=0; i< length();++i) {
     291      if ( refVal == refVal_[i] ) { // probably check with tolerance
     292        if ( refPix == refPix_[i] )
     293          if ( inc == increment_[i] )
     294            idx = Int(i);
     295      }
     296    }
     297    if (idx >= 0) {
     298      return idx;
     299    }
     300  }
     301  nFreq_ += 1;
     302  refPix_.resize(nFreq_,True);
     303  refVal_.resize(nFreq_,True);
     304  increment_.resize(nFreq_,True);
     305  refPix_[nFreq_-1] = refPix;
     306  refVal_[nFreq_-1] = refVal;
     307  increment_[nFreq_-1] = inc;
     308  idx = nFreq_-1;
     309  return idx;
     310}
     311
Note: See TracChangeset for help on using the changeset viewer.