Changeset 2744


Ignore:
Timestamp:
01/23/13 18:26:47 (11 years ago)
Author:
Takeshi Nakazato
Message:

New Development: No

JIRA Issue: No

Ready for Test: Yes

Interface Changes: Yes/No?

What Interface Changed: Please list interface changes

Test Programs: test_sdsave, fls regression test

Put in Release Notes: Yes/No?

Module(s): Module Names change impacts.

Description: Describe your changes here...

Fixed too many warnings when compiling. Also, added some features
to prepare for known bug.


Location:
trunk/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/MSFiller.cpp

    r2710 r2744  
    8080  }
    8181 
    82   virtual void enterObservationId(const uInt recordNo, Int columnValue) { }
    83   virtual void leaveObservationId(const uInt recordNo, Int columnValue) { }
    84   virtual void enterFeedId(const uInt recordNo, Int columnValue) { }
    85   virtual void leaveFeedId(const uInt recordNo, Int columnValue) { }
    86   virtual void enterFieldId(const uInt recordNo, Int columnValue) { }
    87   virtual void leaveFieldId(const uInt recordNo, Int columnValue) { }
    88   virtual void enterDataDescId(const uInt recordNo, Int columnValue) { }
    89   virtual void leaveDataDescId(const uInt recordNo, Int columnValue) { }
    90   virtual void enterScanNo(const uInt recordNo, Int columnValue) { }
    91   virtual void leaveScanNo(const uInt recordNo, Int columnValue) { }
    92   virtual void enterStateId(const uInt recordNo, Int columnValue) { }
    93   virtual void leaveStateId(const uInt recordNo, Int columnValue) { }
    94   virtual void enterTime(const uInt recordNo, Double columnValue) { }
    95   virtual void leaveTime(const uInt recordNo, Double columnValue) { }
    96 
    97   virtual Bool visitRecord(const uInt recordNo,
    98                            const Int ObservationId,
    99                            const Int feedId,
    100                            const Int fieldId,
    101                            const Int dataDescId,
    102                            const Int scanNo,
    103                            const Int stateId,
    104                            const Double time) { return True ; }
     82  virtual void enterObservationId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     83  virtual void leaveObservationId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     84  virtual void enterFeedId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     85  virtual void leaveFeedId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     86  virtual void enterFieldId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     87  virtual void leaveFieldId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     88  virtual void enterDataDescId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     89  virtual void leaveDataDescId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     90  virtual void enterScanNo(const uInt /*recordNo*/, Int /*columnValue*/) { }
     91  virtual void leaveScanNo(const uInt /*recordNo*/, Int /*columnValue*/) { }
     92  virtual void enterStateId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     93  virtual void leaveStateId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     94  virtual void enterTime(const uInt /*recordNo*/, Double /*columnValue*/) { }
     95  virtual void leaveTime(const uInt /*recordNo*/, Double /*columnValue*/) { }
     96
     97  virtual Bool visitRecord(const uInt /*recordNo*/,
     98                           const Int /*ObservationId*/,
     99                           const Int /*feedId*/,
     100                           const Int /*fieldId*/,
     101                           const Int /*dataDescId*/,
     102                           const Int /*scanNo*/,
     103                           const Int /*stateId*/,
     104                           const Double /*time*/) { return True ; }
    105105
    106106  virtual Bool visit(Bool isFirst, const uInt recordNo,
     
    351351  }
    352352
    353   virtual void enterObservationId(const uInt recordNo, Int columnValue) {
     353  virtual void enterObservationId(const uInt /*recordNo*/, Int columnValue) {
    354354    //printf("%u: ObservationId: %d\n", recordNo, columnValue);
    355355    // update header
     
    367367      getScalar( "TELESCOPE_NAME", (uInt)columnValue, obstab, header.antennaname ) ;
    368368  }
    369   virtual void leaveObservationId(const uInt recordNo, Int columnValue) {
     369  virtual void leaveObservationId(const uInt /*recordNo*/, Int /*columnValue*/) {
    370370    // update header
    371371    header.nbeam = max( header.nbeam, (Int)nbeam ) ;
     
    374374    feedEntry = -1 ;
    375375  }
    376   virtual void enterFeedId(const uInt recordNo, Int columnValue) {
     376  virtual void enterFeedId(const uInt /*recordNo*/, Int columnValue) {
    377377    //printf("%u: FeedId: %d\n", recordNo, columnValue);
    378378
     
    387387    *focusIdRF = (uInt)0 ;
    388388  }
    389   virtual void leaveFeedId(const uInt recordNo, Int columnValue) {
    390     Int nelem = (Int)feedEntry.nelements() ;
     389  virtual void leaveFeedId(const uInt /*recordNo*/, Int /*columnValue*/) {
     390    uInt nelem = feedEntry.nelements() ;
    391391    if ( nbeam > nelem ) {
    392392      feedEntry.resize( nelem+64, True ) ;
     
    395395    }
    396396  }
    397   virtual void enterFieldId(const uInt recordNo, Int columnValue) {
     397  virtual void enterFieldId(const uInt /*recordNo*/, Int columnValue) {
    398398    //printf("%u: FieldId: %d\n", recordNo, columnValue);
    399399    // update sourceId and fieldName
     
    406406    *fieldNameRF = fieldName ;
    407407  }
    408   virtual void leaveFieldId(const uInt recordNo, Int columnValue) {
     408  virtual void leaveFieldId(const uInt /*recordNo*/, Int /*columnValue*/) {
    409409    sourceId = -1 ;
    410410  }
    411   virtual void enterDataDescId(const uInt recordNo, Int columnValue) {
     411  virtual void enterDataDescId(const uInt /*recordNo*/, Int columnValue) {
    412412    //printf("%u: DataDescId: %d\n", recordNo, columnValue);
    413413    // update polarization and spectral window ids
     
    486486    }
    487487  }
    488   virtual void leaveDataDescId(const uInt recordNo, Int columnValue) {
     488  virtual void leaveDataDescId(const uInt /*recordNo*/, Int /*columnValue*/) {
    489489    npol = 0 ;
    490490    nchan = 0 ;
    491491    numSysCalRow = 0 ;
    492492  }
    493   virtual void enterScanNo(const uInt recordNo, Int columnValue) {
     493  virtual void enterScanNo(const uInt /*recordNo*/, Int columnValue) {
    494494    //printf("%u: ScanNo: %d\n", recordNo, columnValue);
    495495    // put value
     
    497497    *scanNoRF = (uInt)columnValue - 1 ;
    498498  }
    499   virtual void leaveScanNo(const uInt recordNo, Int columnValue) {
     499  virtual void leaveScanNo(const uInt /*recordNo*/, Int /*columnValue*/) {
    500500    cycleNo = 0 ;
    501501  }
    502   virtual void enterStateId(const uInt recordNo, Int columnValue) {
     502  virtual void enterStateId(const uInt /*recordNo*/, Int columnValue) {
    503503    //printf("%u: StateId: %d\n", recordNo, columnValue);
    504504    // SRCTYPE
     
    512512    *sourceTypeRF = srcType ;
    513513  }
    514   virtual void leaveStateId(const uInt recordNo, Int columnValue) { }
     514  virtual void leaveStateId(const uInt /*recordNo*/, Int /*columnValue*/) { }
    515515  virtual void enterTime(const uInt recordNo, Double columnValue) {
    516516    //printf("%u: Time: %f\n", recordNo, columnValue);
     
    543543    *weatherIdRF = wid ;
    544544  }
    545   virtual void leaveTime(const uInt recordNo, Double columnValue) { }
     545  virtual void leaveTime(const uInt /*recordNo*/, Double /*columnValue*/) { }
    546546  virtual Bool visitRecord(const uInt recordNo,
    547                            const Int observationId,
    548                            const Int feedId,
    549                            const Int fieldId,
    550                            const Int dataDescId,
    551                            const Int scanNo,
    552                            const Int stateId,
    553                            const Double time)
     547                           const Int /*observationId*/,
     548                           const Int /*feedId*/,
     549                           const Int /*fieldId*/,
     550                           const Int /*dataDescId*/,
     551                           const Int /*scanNo*/,
     552                           const Int /*stateId*/,
     553                           const Double /*time*/)
    554554  {
    555555    //printf("%u: %d, %d, %d, %d, %d, %d, %f\n", recordNo,
     
    580580      tcalids = getTcalId( syscalTime[scIdx] ) ;
    581581    }
     582//     else {
     583//       tcalids = getDummyTcalId( spwId ) ;
     584//     }
    582585
    583586    // put value
     
    610613    // remove redundant rows
    611614    //cout << "filled " << rowidx << " rows out of " << scantable.nrow() << " rows" << endl ;
    612     if ( scantable.nrow() > rowidx ) {
     615    if ( scantable.nrow() > (Int)rowidx ) {
    613616      uInt numRemove = scantable.nrow() - rowidx ;
    614617      //cout << "numRemove = " << numRemove << endl ;
     
    982985      srate = d.column( 1 ) ;
    983986  }
    984   void getSourceDirection( Vector<Double> &dir, Vector<Double> &azel, Vector<Double> &srate )
     987  void getSourceDirection( Vector<Double> &dir, Vector<Double> &azel, Vector<Double> &/*srate*/ )
    985988  {
    986989    dir = sourceDir.getAngle( "rad" ).getValue() ;
     
    12431246    }
    12441247    return tcalids ;
     1248  }
     1249  Block<uInt> getDummyTcalId( Int spwId )
     1250  {
     1251    Block<uInt> idList(4, 0);
     1252    uInt nfields = syscalRecord.nfields();
     1253    Int idx = -1;
     1254    for (uInt i = 0; i< nfields ; i++ ) {
     1255      String spw = "SPW" + String::toString(spwId);
     1256      if (syscalRecord.name(i).find(spw) != String::npos) {
     1257        idx = i;
     1258        break;
     1259      }
     1260    }
     1261    if ( idx > -1) {
     1262      Vector<uInt> tmp = syscalRecord.asArrayuInt(idx);
     1263      for (uInt j = 0 ; j < 4 ; j++) {
     1264        idList[j] = tmp[0];
     1265      }
     1266      cout << "tmp=" << tmp << endl;
     1267    }
     1268    return idList;
    12451269  }
    12461270  uInt maxNumPol()
     
    13431367  }
    13441368 
    1345   virtual void enterAntennaId(const uInt recordNo, Int columnValue) { }
    1346   virtual void leaveAntennaId(const uInt recordNo, Int columnValue) { }
    1347   virtual void enterFeedId(const uInt recordNo, Int columnValue) { }
    1348   virtual void leaveFeedId(const uInt recordNo, Int columnValue) { }
    1349   virtual void enterSpwId(const uInt recordNo, Int columnValue) { }
    1350   virtual void leaveSpwId(const uInt recordNo, Int columnValue) { }
    1351   virtual void enterTime(const uInt recordNo, Double columnValue) { }
    1352   virtual void leaveTime(const uInt recordNo, Double columnValue) { }
    1353 
    1354   virtual Bool visitRecord(const uInt recordNo,
    1355                            const Int antennaId,
    1356                            const Int feedId,
    1357                            const Int spwId,
    1358                            const Double time) { return True ; }
     1369  virtual void enterAntennaId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     1370  virtual void leaveAntennaId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     1371  virtual void enterFeedId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     1372  virtual void leaveFeedId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     1373  virtual void enterSpwId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     1374  virtual void leaveSpwId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     1375  virtual void enterTime(const uInt /*recordNo*/, Double /*columnValue*/) { }
     1376  virtual void leaveTime(const uInt /*recordNo*/, Double /*columnValue*/) { }
     1377
     1378  virtual Bool visitRecord(const uInt /*recordNo*/,
     1379                           const Int /*antennaId*/,
     1380                           const Int /*feedId*/,
     1381                           const Int /*spwId*/,
     1382                           const Double /*time*/) { return True ; }
    13591383
    13601384  virtual Bool visit(Bool isFirst, const uInt recordNo,
     
    14701494  }
    14711495
    1472   virtual void enterAntennaId(const uInt recordNo, Int columnValue) {
     1496  virtual void enterAntennaId(const uInt /*recordNo*/, Int columnValue) {
    14731497    if ( columnValue == antenna )
    14741498      process = True ;
    14751499  }
    1476   virtual void leaveAntennaId(const uInt recordNo, Int columnValue) {
     1500  virtual void leaveAntennaId(const uInt /*recordNo*/, Int /*columnValue*/) {
    14771501    process = False ;
    14781502  }
    1479   virtual void enterFeedId(const uInt recordNo, Int columnValue) { }
    1480   virtual void leaveFeedId(const uInt recordNo, Int columnValue) { }
    1481   virtual void enterSpwId(const uInt recordNo, Int columnValue) { }
    1482   virtual void leaveSpwId(const uInt recordNo, Int columnValue) { }
    1483   virtual void enterTime(const uInt recordNo, Double columnValue) {
     1503  virtual void enterFeedId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     1504  virtual void leaveFeedId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     1505  virtual void enterSpwId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     1506  virtual void leaveSpwId(const uInt /*recordNo*/, Int /*columnValue*/) { }
     1507  virtual void enterTime(const uInt recordNo, Double /*columnValue*/) {
    14841508    qtime = timeCol( recordNo ) ;
    14851509  }
    1486   virtual void leaveTime(const uInt recordNo, Double columnValue) { }
     1510  virtual void leaveTime(const uInt /*recordNo*/, Double /*columnValue*/) { }
    14871511  virtual Bool visitRecord(const uInt recordNo,
    1488                            const Int antennaId,
     1512                           const Int /*antennaId*/,
    14891513                           const Int feedId,
    14901514                           const Int spwId,
    1491                            const Double time)
     1515                           const Double /*time*/)
    14921516  {
    14931517    //cout << "(" << recordNo << "," << antennaId << "," << feedId << "," << spwId << ")" << endl ;
     
    20492073  traverseTable(sctab, cols, tms, &visitor);
    20502074
     2075  infillTcal();
     2076
    20512077  //tcalrec_.print( std::cout ) ;
    20522078  //double endSec = mathutil::gettimeofday_sec() ;
    20532079  //os_ << "end MSFiller::fillTcal() endSec=" << endSec << " (" << endSec-startSec << "sec)" << LogIO::POST ;
     2080}
     2081
     2082void MSFiller::infillTcal()
     2083{
     2084  uInt nfields = tcalrec_.nfields() ;
     2085  set<Int> spwAvailable;
     2086  for (uInt i = 0; i < nfields; i++) {
     2087    String name = tcalrec_.name(i);
     2088    size_t pos1 = name.find(':') + 4;
     2089    size_t pos2 = name.find(':',pos1);
     2090    Int spwid = String::toInt(name.substr(pos1,pos2-pos1));
     2091    //cout << "spwid=" << spwid << endl;
     2092    spwAvailable.insert(spwid);
     2093  }
     2094  Table spwtab = mstable_.spectralWindow();
     2095  Table tcaltab = table_->tcal().table();
     2096  ScalarColumn<uInt> idCol(tcaltab, "ID");
     2097  ScalarColumn<String> timeCol(tcaltab, "TIME");
     2098  ArrayColumn<Float> tcalCol(tcaltab, "TCAL");
     2099  ROScalarColumn<Int> numChanCol(spwtab, "NUM_CHAN");
     2100  Int numSpw = spwtab.nrow();
     2101  Int dummyFeed = 0;
     2102  Double dummyTime = 0.0;
     2103  Vector<uInt> idminmax(2);
     2104  for (Int i = 0; i < numSpw; i++) {
     2105    if (spwAvailable.find(i) == spwAvailable.end()) {
     2106      String key = keyTcal(dummyFeed, i, dummyTime);
     2107      Vector<Float> tcal(numChanCol(i), 1.0);
     2108      uInt nrow = tcaltab.nrow();
     2109      tcaltab.addRow(1);
     2110      idCol.put(nrow, nrow);
     2111      timeCol.put(nrow, "");
     2112      tcalCol.put(nrow, tcal);
     2113      idminmax = nrow;
     2114      tcalrec_.define(key, idminmax);
     2115    }
     2116  }
     2117  //tcalrec_.print(cout);
    20542118}
    20552119
  • trunk/src/MSFiller.h

    r2293 r2744  
    121121};
    122122
    123 class MSFiller
     123class MSFiller : public MSFillerUtils
    124124{
    125125public:
     
    148148  //void fillFit() ;
    149149  void fillTcal() ;
    150 
    151   // create key for TCAL table
    152   String keyTcal( Int feedid, Int spwid, String stime ) ;
     150  void infillTcal() ;
    153151
    154152  // get frequency frame
Note: See TracChangeset for help on using the changeset viewer.