Ignore:
Timestamp:
07/13/11 17:54:48 (13 years ago)
Author:
Takeshi Nakazato
Message:

New Development: No

JIRA Issue: Yes CAS-1913

Ready for Test: Yes

Interface Changes: No

What Interface Changed: Please list interface changes

Test Programs: List test programs

Put in Release Notes: Yes/No?

Module(s): Module Names change impacts.

Description: Describe your changes here...

Number of IFs is not a number of rows of SpectralWindow? table,
but a number of frequency groups.
When freqGroup is not defined, number of IFs is set to number
of non-WVR spectral windows plus 1 (WVR spectral window).


File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/external-alma/asdm2ASAP/ASDMReader.cc

    r2218 r2220  
    212212  processStation() ;
    213213
    214   logsink_->postLocally( LogMessage(  "antennaId_ = "+String::toString(antennaId_), LogOrigin() ) ) ;
    215   logsink_->postLocally( LogMessage(  "antennaName_ = "+antennaName_, LogOrigin() ) ) ;
     214  logsink_->postLocally( LogMessage(  "antennaId_ = "+String::toString(antennaId_), LogOrigin(className_,funcName,WHERE) ) ) ;
     215  logsink_->postLocally( LogMessage(  "antennaName_ = "+antennaName_, LogOrigin(className_,funcName,WHERE) ) ) ;
    216216
    217217  return true ;
     
    294294  SpectralWindowTable &spwtab = asdm_->getSpectralWindow() ;
    295295  vector<SpectralWindowRow *> spwrows = spwtab.get() ;
     296  int nspwrow = spwrows.size() ;
    296297
    297298  // nif
    298   nif = spwrows.size() ;
     299  //nif = spwrows.size() ;
     300  nif = getNumIFs() ;
    299301
    300302  // nchan
    301303  int refidx = -1 ;
    302304  vector<int> nchans ;
    303   for ( int irow = 0 ; irow < nif ; irow++ ) {
     305  for ( int irow = 0 ; irow < nspwrow ; irow++ ) {
    304306    nchans.push_back( spwrows[irow]->getNumChan() ) ;
    305307    if ( refidx == -1 && nchans[irow] != 1 && nchans[irow] != 4 )
     
    312314  // bandwidth
    313315  vector<double> bws ;
    314   for ( int irow = 0 ; irow < nif ; irow++ ) {
     316  for ( int irow = 0 ; irow < nspwrow ; irow++ ) {
    315317    if ( nchans[irow] != 4 ) { // exclude WVR data
    316318      bws.push_back( spwrows[irow]->getTotBandwidth().get() ) ;
     
    16741676  }
    16751677 
    1676   logsink_->postLocally( LogMessage("frame = "+String::toString(frame),LogOrigin(className_,funcName,WHERE)) ) ;
     1678  //logsink_->postLocally( LogMessage("frame = "+String::toString(frame),LogOrigin(className_,funcName,WHERE)) ) ;
    16771679
    16781680  return frame ;
    16791681}
     1682
     1683int ASDMReader::getNumIFs()
     1684{
     1685  String funcName = "getNumIFs" ;
     1686
     1687  int nif = 0 ;
     1688  vector<SpectralWindowRow *> rows = asdm_->getSpectralWindow().get() ;
     1689  unsigned int nrow = rows.size() ;
     1690  // check if all rows have freqGroup attribute
     1691  bool freqGroupExists = true ;
     1692  bool countedWvr = false ;
     1693  for ( unsigned int irow = 0 ; irow < nrow ; irow++ ) {
     1694    freqGroupExists &= rows[irow]->isFreqGroupExists() ;
     1695    if ( rows[irow]->getNumChan() == 4 ) {
     1696      if ( !countedWvr ) {
     1697        countedWvr = true ;
     1698        nif++ ;
     1699      }
     1700    }
     1701    else {
     1702      nif++ ;
     1703    }
     1704  }
     1705 
     1706  if ( freqGroupExists ) {
     1707    vector<int> freqGroup(0) ;
     1708    for ( unsigned int irow = 0 ; irow < nrow ; irow++ ) {
     1709      int fg = rows[irow]->getFreqGroup() ;
     1710      if ( (int)count( freqGroup.begin(), freqGroup.end(), fg ) == 0 ) {
     1711        freqGroup.push_back( fg ) ;
     1712      }
     1713    }
     1714    nif = freqGroup.size() ;
     1715  }
     1716
     1717  //logsink_->postLocally( LogMessage("nif = "+String::toString(nif),LogOrigin(className_,funcName,WHERE)) ) ;
     1718
     1719  return nif ;
     1720}
Note: See TracChangeset for help on using the changeset viewer.