Changeset 18 for trunk/src/SDMemTable.cc


Ignore:
Timestamp:
06/30/04 16:34:24 (20 years ago)
Author:
mmarquar
Message:

Moved SDHeader from SDReader to SDConatiner. Added header to SDMemTable. Added access funtions to nif,nbema,npol,nchan

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/SDMemTable.cc

    r16 r18  
    4747#include <aips/Tables/ScalarColumn.h>
    4848#include <aips/Tables/ArrayColumn.h>
     49#include <aips/Tables/TableRecord.h>
     50
    4951
    5052#include "SDMemTable.h"
     
    5355using namespace atnf_sd;
    5456
     57SDMemTable::SDMemTable() :
     58  IFSel_(0),
     59  beamSel_(0),
     60  polSel_(0) {
     61  setup();
     62}
    5563SDMemTable::SDMemTable(const std::string& name) :
    5664  IFSel_(0),
     
    5866  polSel_(0) {
    5967  name_ = String(name);
    60   setup();
     68  Table tab(name_);
     69  table_ = tab.copyToMemoryTable(name_);
    6170}
    6271
     
    101110  TableDesc td("", "1", TableDesc::Scratch);
    102111  td.comment() = "A SDMemTable";
    103   //td.rwKeywordSet().define("VERSION",Float(0.1));
    104112  td.addColumn(ScalarColumnDesc<Double>("TIME"));
    105113  td.addColumn(ScalarColumnDesc<String>("SRCNAME"));
     
    110118  td.addColumn(ScalarColumnDesc<Double>("INTERVAL")); 
    111119  // Now create a new table from the description.
     120
    112121  SetupNewTable aNewTab(name_, td, Table::New);
    113122  table_ = Table(aNewTab, Table::Memory, 0); 
     
    293302  return true;
    294303}
     304
     305bool SDMemTable::putSDHeader(const SDHeader& sdh) {
     306  table_.lock();
     307  table_.rwKeywordSet().define("nIF", sdh.nif);
     308  table_.rwKeywordSet().define("nBeam", sdh.nbeam);
     309  table_.rwKeywordSet().define("nPol", sdh.npol);
     310  table_.rwKeywordSet().define("nChan", sdh.nchan);
     311  table_.rwKeywordSet().define("Observer", sdh.observer);
     312  table_.rwKeywordSet().define("Project", sdh.project);
     313  table_.rwKeywordSet().define("Obstype", sdh.obstype);
     314  table_.rwKeywordSet().define("AntennaName", sdh.antennaname);
     315  table_.rwKeywordSet().define("AntennaPosition", sdh.antennaposition);
     316  table_.rwKeywordSet().define("Equinox", sdh.equinox);
     317  table_.rwKeywordSet().define("FreqRefFrame", sdh.freqref);
     318  table_.rwKeywordSet().define("FreqRefVal", sdh.reffreq);
     319  table_.rwKeywordSet().define("Bandwidth", sdh.bandwidth);
     320  table_.rwKeywordSet().define("UTC", sdh.utc);
     321  table_.unlock();
     322  cerr << "Table Header set" << endl;
     323  return true;
     324}
     325
    295326void SDMemTable::makePersistent(const std::string& filename) {
    296327  table_.deepCopy(filename,Table::New);
     
    298329
    299330void SDMemTable::summary() const {
    300   cerr << "SDMemTable::summary()" << endl;
    301331  ROScalarColumn<Int> scans(table_, "SCANID");
    302332  ROScalarColumn<String> srcs(table_, "SRCNAME");
     333  cout << "*************** Header ***************" << endl;
     334  cout << "nBeam = " << nBeam() << "\t"
     335       << "nIF   = " << nIF() << endl
     336       << "nPol  = " << nPol() << "\t"
     337       << "nChan = " << nChan() << "\t" << endl;
     338  cout << "*************** Header ***************" << endl;
    303339  uInt count = 0;
    304340  String name;
     
    316352    }
    317353  }
    318   cout << "Table contains " << table_.nrow() << "integrations." << endl;
    319   cout << "in " << count << "scans." << endl;
    320 }
     354  cout << "Table contains " << table_.nrow() << " integration(s)." << endl;
     355  cout << "in " << count << " scan(s)." << endl;
     356}
     357
     358Int SDMemTable::nBeam() const {
     359  Int n;
     360  table_.keywordSet().get("nBeam",n);
     361  return n;
     362}
     363Int SDMemTable::nIF() const {
     364  Int n;
     365  table_.keywordSet().get("nIF",n);
     366  return n;
     367}
     368Int SDMemTable::nPol() const {
     369  Int n;
     370  table_.keywordSet().get("nPol",n);
     371  return n;
     372}
     373Int SDMemTable::nChan() const {
     374  Int n;
     375  table_.keywordSet().get("nChan",n);
     376  return n;
     377}
     378
    321379/*
    322 void maskChannels(const std::vector<Int>& whichChans ) {
     380void SDMemTable::maskChannels(const std::vector<Int>& whichChans ) {
    323381 
    324382  std::vector<int>::iterator it;
Note: See TracChangeset for help on using the changeset viewer.