source: trunk/src/STFiller.h @ 1504

Last change on this file since 1504 was 1504, checked in by Malte Marquarding, 15 years ago

Fix for ticket #151: added facilities to help with on/off scan identification/setting

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.4 KB
RevLine 
[805]1//
2// C++ Interface: STFiller
3//
4// Description:
5//
6//
7// Author: Malte Marquarding <asap@atnf.csiro.au>, (C) 2006
8//
9// Copyright: See COPYING file that comes with this distribution
10//
11//
12#ifndef STFILLER_H
13#define STFILLER_H
[2]14
15#include <vector>
16#include <string>
17
[81]18#include <casa/aips.h>
19#include <casa/iostream.h>
20#include <casa/Utilities/CountedPtr.h>
21#include <casa/BasicSL/String.h>
22#include <casa/Arrays/Vector.h>
[2]23
[805]24#include "Scantable.h"
[901]25#include "STHeader.h"
[894]26#include "Logger.h"
[2]27
28class PKSreader;
29
[83]30namespace asap {
[2]31
[805]32/**
33This class fills a Scantable from external data formats using the PKSReader class.
34
[846]35@brief    A filler object for data import into Scantable
[805]36@author   Malte Marquarding
37@date     2006/01/16
38@version  2.0a
39*/
[890]40class STFiller : public Logger {
[2]41public:
42
[846]43  /**
44   * Default constructor
45   */
[805]46  STFiller();
[2]47
[846]48
49  /**
50   * Constructor taking an existing Scantable to fill
51   * @param stbl
52   */
[1353]53  explicit STFiller(casa::CountedPtr< Scantable > stbl);
[2]54
55
[805]56  /**
57    * A constructor for a filler with associated input file
58    * @param filename the input file (rpf,sdfite or ms)
59    * @param whichIF read a specific IF only (default -1 means all IFs)
60    * @param whichBeam read a specific beam only (default -1 means all beams)
61    */
[1353]62  explicit STFiller( const std::string& filename, int whichIF=-1,
[805]63                  int whichBeam=-1 );
[2]64
[846]65  /**
66   * Destructor
67   */
[996]68  virtual ~STFiller();
[717]69
[805]70  /**
71   * associate the Filler with a file on disk
72   * @param filename the input file (rpf,sdfite or ms)
73   * @param whichIF read a specific IF only (default -1 means all IFs)
74   * @param whichBeam read a specific beam only (default -1 means all beams)
75   * @exception AipsError Creation of PKSreader failed
76   */
77  void open( const std::string& filename, int whichIF=-1, int whichBeam=-1 );
78
79  /**
[846]80   * detach from file and clean up pointers
[805]81   */
82  void close( );
83
84  /**
85   * Read in "rows" from the source file attached with open()
86   * @return a status flag passed on by PKSreader
[846]87   *
88   * @li @c 0: ok
89   * @li >0: failed
[805]90   */
91  int read( );
92
93  casa::CountedPtr<Scantable> getTable() const { return table_;}
94
[1504]95  void setReferenceExpr(const std::string& rx) { refRx_ = rx; }
96
[2]97private:
[805]98
99  PKSreader* reader_;
[901]100  STHeader* header_;
[125]101  casa::String filename_;
[805]102  casa::CountedPtr< Scantable > table_;
[1391]103  casa::Int nIF_, nBeam_, nPol_, nChan_, nInDataRow;
[805]104  casa::uInt ifOffset_, beamOffset_;
[1060]105  casa::Vector<casa::Bool> haveXPol_;
[1504]106  casa::String refRx_;
[2]107};
108
[805]109} // namespace
110
[2]111#endif
Note: See TracBrowser for help on using the repository browser.