Changeset 2955 for trunk/src


Ignore:
Timestamp:
06/25/14 15:28:36 (11 years ago)
Author:
Takeshi Nakazato
Message:

New Development: No

JIRA Issue: Yes CAS-6585, CAS-6571

Ready for Test: Yes

Interface Changes: Yes/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...

Added FLAGTRA column to sky and Tsys caltable.
To support previous versions of caltabls that don't have FLAGTRA
column, the code automatically add FLAGTRA column and initialize
it with initial value (uChar)0 if no FLAGTRA exists.


Location:
trunk/src
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/STCalSkyPSAlma.cpp

    r2915 r2955  
    5353                                uInt beamno, uInt ifno, uInt polno,
    5454                                uInt freqid, Double time, Float elevation,
    55                                 Vector<Float> any_data)
     55                                const Vector<Float> &any_data,
     56                                const Vector<uChar> &channel_flag)
    5657{
    5758  STCalSkyTable *p = dynamic_cast<STCalSkyTable *>(&(*applytable_));
    5859  p->appenddata(scanno, cycleno, beamno, ifno, polno,
    59                 freqid, time, elevation, any_data);
     60                freqid, time, elevation, any_data, channel_flag);
    6061}
    6162
  • trunk/src/STCalSkyPSAlma.h

    r2915 r2955  
    4646                          casa::uInt beamno, casa::uInt ifno, casa::uInt polno,
    4747                          casa::uInt freqid, casa::Double time, casa::Float elevation,
    48                           casa::Vector<casa::Float> any_data);
     48                          const casa::Vector<casa::Float> &any_data,
     49                          const casa::Vector<casa::uChar> &channel_flag);
    4950};
    5051
  • trunk/src/STCalSkyTable.cpp

    r2727 r2955  
    1919#include <tables/Tables/ScaColDesc.h>
    2020#include <tables/Tables/TableRecord.h>
     21#include <tables/Tables/TableIter.h>
    2122#include <measures/TableMeasures/TableMeasDesc.h>
    2223#include <measures/TableMeasures/TableMeasRefDesc.h>
     
    4344  : STApplyTable(name)
    4445{
     46  if (!table_.tableDesc().isColumn("FLAGTRA")) {
     47    LogIO os(LogOrigin("STCalSkyTable", "STCalSkyTable", WHERE));
     48    os << "Adding FLAGTRA column to " << name << " with initial value of 0 (all data valid)." << LogIO::POST;
     49    table_.addColumn(ArrayColumnDesc<uChar>("FLAGTRA"));
     50    TableIterator iter(table_, "IFNO");
     51    while (!iter.pastEnd()) {
     52      Table t = iter.table();
     53      ArrayColumn<Float> spectraCol(t, "SPECTRA");
     54      IPosition shape(2, spectraCol.shape(0)[0], t.nrow());
     55      ArrayColumn<uChar> flagtraCol(t, "FLAGTRA");
     56      Array<uChar> flagtra(shape, (uChar)0);
     57      flagtraCol.putColumn(flagtra);
     58      iter.next();
     59    }
     60  }
     61
    4562  attachOptionalColumns();
    4663}
     
    5370{
    5471  table_.addColumn(ArrayColumnDesc<Float>("SPECTRA"));
     72  table_.addColumn(ArrayColumnDesc<uChar>("FLAGTRA"));
    5573  table_.addColumn(ScalarColumnDesc<Float>("ELEVATION"));
    5674
     
    6684{
    6785  spectraCol_.attach(table_, "SPECTRA");
     86  flagtraCol_.attach(table_, "FLAGTRA");
    6887  elCol_.attach(table_,"ELEVATION");
    69  
    7088}
    7189
    7290void STCalSkyTable::setdata(uInt irow, uInt scanno, uInt cycleno,
    7391                            uInt beamno, uInt ifno, uInt polno, uInt freqid, 
    74                             Double time, Float elevation, Vector<Float> spectra)
     92                            Double time, Float elevation,
     93                            const Vector<Float> &spectra,
     94                            const Vector<uChar> &flagtra)
    7595{
    7696  if (irow >= (uInt)nrow()) {
     
    86106  elCol_.put(irow, elevation);
    87107  spectraCol_.put(irow, spectra);
     108  flagtraCol_.put(irow, flagtra);
    88109}
    89110
    90111void STCalSkyTable::appenddata(uInt scanno, uInt cycleno,
    91112                               uInt beamno, uInt ifno, uInt polno, uInt freqid,
    92                                Double time, Float elevation, Vector<Float> spectra)
     113                               Double time, Float elevation,
     114                               const Vector<Float> &spectra,
     115                               const Vector<uChar> &flagtra)
    93116{
    94117  uInt irow = nrow();
    95118  table_.addRow(1, True);
    96   setdata(irow, scanno, cycleno, beamno, ifno, polno, freqid, time, elevation, spectra);
     119  setdata(irow, scanno, cycleno, beamno, ifno, polno, freqid, time, elevation,
     120          spectra, flagtra);
    97121}
    98122
  • trunk/src/STCalSkyTable.h

    r2742 r2955  
    4747               casa::uInt beamno, casa::uInt ifno, casa::uInt polno,
    4848               casa::uInt freqid, casa::Double time, casa::Float elevation,
    49                casa::Vector<casa::Float> spectra);
     49               const casa::Vector<casa::Float> &spectra,
     50               const casa::Vector<casa::uChar> &flagtra);
    5051  void appenddata(casa::uInt scanno, casa::uInt cycleno, casa::uInt beamno,
    5152                  casa::uInt ifno, casa::uInt polno, casa::uInt freqid, 
    5253                  casa::Double time, casa::Float elevation,
    53                   casa::Vector<casa::Float> spectra);
     54                  const casa::Vector<casa::Float> &spectra,
     55                  const casa::Vector<casa::uChar> &flagtra);
    5456 
    5557  casa::Vector<casa::Float> getElevation() {return elCol_.getColumn();}
     
    6365  const casa::String caltype_;
    6466  casa::ArrayColumn<casa::Float> spectraCol_;
     67  casa::ArrayColumn<casa::uChar> flagtraCol_;
    6568  casa::ScalarColumn<casa::Float> elCol_;
    6669};
  • trunk/src/STCalTsys.cpp

    r2924 r2955  
    7575                           uInt beamno, uInt ifno, uInt polno,
    7676                           uInt freqid, Double time, Float elevation,
    77                            Vector<Float> any_data)
     77                           const Vector<Float> &any_data,
     78                           const Vector<uChar> &channel_flag)
    7879{
    7980  STCalTsysTable *p = dynamic_cast<STCalTsysTable *>(&(*applytable_));
     
    8182    LogIO os(LogOrigin("STCalTsys", "appenddata", WHERE));
    8283    Vector<Float> averaged_data(any_data.size());
     84    Vector<uChar> averaged_flag(any_data.size(), 0);
    8385    Float averaged_value = 0.0;
    8486    size_t num_value = 0;
     
    104106    os << LogIO::DEBUGGING << "any_data = " << any_data << LogIO::POST;
    105107    p->appenddata(scanno, cycleno, beamno, ifno, polno,
    106                   freqid, time, elevation, averaged_data);
     108                  freqid, time, elevation, averaged_data,
     109                  averaged_flag);
    107110  }
    108111  else {
    109112    p->appenddata(scanno, cycleno, beamno, ifno, polno,
    110                   freqid, time, elevation, any_data);
     113                  freqid, time, elevation, any_data,
     114                  channel_flag);
    111115  }
    112116}
  • trunk/src/STCalTsys.h

    r2923 r2955  
    4949                          casa::uInt beamno, casa::uInt ifno, casa::uInt polno,
    5050                          casa::uInt freqid, casa::Double time, casa::Float elevation,
    51                           casa::Vector<casa::Float> any_data);
     51                          const casa::Vector<casa::Float> &any_data,
     52                          const casa::Vector<casa::uChar> &channel_flag);
    5253
    5354  vector<int> iflist_;
  • trunk/src/STCalTsysTable.cpp

    r2756 r2955  
    1919#include <tables/Tables/ScaColDesc.h>
    2020#include <tables/Tables/TableRecord.h>
     21#include <tables/Tables/TableIter.h>
    2122#include <measures/TableMeasures/TableMeasDesc.h>
    2223#include <measures/TableMeasures/TableMeasRefDesc.h>
     
    4243  : STApplyTable(name)
    4344{
     45  if (!table_.tableDesc().isColumn("FLAGTRA")) {
     46    LogIO os(LogOrigin("STCalTsysTable", "STCalTsysTable", WHERE));
     47    os << "Adding FLAGTRA column to " << name << " with initial value of 0 (all data valid)." << LogIO::POST;
     48    table_.addColumn(ArrayColumnDesc<uChar>("FLAGTRA"));
     49    TableIterator iter(table_, "IFNO");
     50    while (!iter.pastEnd()) {
     51      Table t = iter.table();
     52      ArrayColumn<Float> tsysCol(t, "TSYS");
     53      IPosition shape(2, tsysCol.shape(0)[0], t.nrow());
     54      ArrayColumn<uChar> flagtraCol(t, "FLAGTRA");
     55      Array<uChar> flagtra(shape, (uChar)0);
     56      flagtraCol.putColumn(flagtra);
     57      iter.next();
     58    }
     59  }
     60 
    4461  attachOptionalColumns();
    4562}
     
    5269{
    5370  table_.addColumn(ArrayColumnDesc<Float>("TSYS"));
     71  table_.addColumn(ArrayColumnDesc<uChar>("FLAGTRA"));
    5472  table_.addColumn(ScalarColumnDesc<Float>("ELEVATION"));
    5573
     
    6280{
    6381  tsysCol_.attach(table_, "TSYS");
     82  flagtraCol_.attach(table_, "FLAGTRA");
    6483  elCol_.attach(table_,"ELEVATION");
    6584 
     
    6887void STCalTsysTable::setdata(uInt irow, uInt scanno, uInt cycleno,
    6988                             uInt beamno, uInt ifno, uInt polno, uInt freqid, 
    70                              Double time, Float elevation, Vector<Float> tsys)
     89                             Double time, Float elevation,
     90                             const Vector<Float> &tsys,
     91                             const Vector<uChar> &flagtra)
    7192{
    7293  if (irow >= (uInt)nrow()) {
     
    82103  elCol_.put(irow, elevation);
    83104  tsysCol_.put(irow, tsys);
     105  flagtraCol_.put(irow, flagtra);
    84106}
    85107
    86108void STCalTsysTable::appenddata(uInt scanno, uInt cycleno,
    87109                                uInt beamno, uInt ifno, uInt polno, uInt freqid,
    88                                 Double time, Float elevation, Vector<Float> tsys)
     110                                Double time, Float elevation,
     111                                const Vector<Float> &tsys,
     112                                const Vector<uChar> &flagtra)
    89113{
    90114  uInt irow = nrow();
    91115  table_.addRow(1, True);
    92   setdata(irow, scanno, cycleno, beamno, ifno, polno, freqid, time, elevation, tsys);
     116  setdata(irow, scanno, cycleno, beamno, ifno, polno, freqid, time, elevation,
     117          tsys, flagtra);
    93118}
    94119
  • trunk/src/STCalTsysTable.h

    r2720 r2955  
    4545               casa::uInt beamno, casa::uInt ifno, casa::uInt polno,
    4646               casa::uInt freqid, casa::Double time, casa::Float elevation,
    47                casa::Vector<casa::Float> tsys);
     47               const casa::Vector<casa::Float> &tsys,
     48               const casa::Vector<casa::uChar> &flagtra);
    4849  void appenddata(casa::uInt scanno, casa::uInt cycleno,
    4950                  casa::uInt beamno, casa::uInt ifno, casa::uInt polno,
    5051                  casa::uInt freqid, casa::Double time, casa::Float elevation,
    51                   casa::Vector<casa::Float> tsys);
     52                  const casa::Vector<casa::Float> &tsys,
     53                  const casa::Vector<casa::uChar> &flagtra);
    5254 
    5355  casa::Vector<casa::Float> getElevation() {return elCol_.getColumn();}
     
    6062  static const casa::String name_ ;
    6163  casa::ArrayColumn<casa::Float> tsysCol_;
     64  casa::ArrayColumn<casa::uChar> flagtraCol_;
    6265  casa::ScalarColumn<casa::Float> elCol_;
    6366};
  • trunk/src/STCalibration.cpp

    r2916 r2955  
    7979      uInt irow = rows[0];
    8080      appenddata(0, 0, current.asuInt("BEAMNO"), current.asuInt("IFNO"), current.asuInt("POLNO"),
    81                  freqidCol(irow), timeSec[irow], elevation[irow], specCol(irow));
     81                 freqidCol(irow), timeSec[irow], elevation[irow], specCol(irow),
     82                 flagCol(irow));
    8283      iter.next();
    8384      continue;
     
    126127          timeCen /= (Double)count * 86400.0; // sec->day
    127128          elCen /= (Float)count;
    128           appenddata(0, 0, current.asuInt("BEAMNO"), current.asuInt("IFNO"), current.asuInt("POLNO"),
    129                      freqidCol(irow), timeCen, elCen, acc.getSpectrum());
     129          const Vector<Bool> &mask = acc.getMask();
     130          Vector<uChar> flag(mask.shape(), (uChar)0);
     131          const uChar userFlag = 1 << 7;
     132          for (uInt k = 0; k < flag.nelements(); ++k) {
     133            if (mask[k] == True)
     134              flag[k] = userFlag;
     135          }
     136          appenddata(0, 0, current.asuInt("BEAMNO"), current.asuInt("IFNO"),
     137                     current.asuInt("POLNO"),
     138                     freqidCol(irow), timeCen, elCen,
     139                     acc.getSpectrum(), flag);
    130140        }
    131141        acc.reset() ;
  • trunk/src/STCalibration.h

    r2915 r2955  
    5353                          casa::uInt beamno, casa::uInt ifno, casa::uInt polno,
    5454                          casa::uInt freqid, casa::Double time, casa::Float elevation,
    55                           casa::Vector<casa::Float> any_data) = 0;
     55                          const casa::Vector<casa::Float> &any_data,
     56                          const casa::Vector<casa::uChar> &channel_flag) = 0;
    5657
    5758  STSelector sel_;
Note: See TracChangeset for help on using the changeset viewer.