source: branches/newfiller/src/STFiller.h @ 1815

Last change on this file since 1815 was 1684, checked in by Takeshi Nakazato, 14 years ago

New Development: No

JIRA Issue: Yes CAS-1810

Ready to Release: Yes

Interface Changes: Yes

What Interface Changed: Added 'antenna' parameter to scantable constructor

Test Programs: List test programs

Put in Release Notes: Yes

Module(s): atnf

Description: Describe your changes here...

I have added 'antenna' parameter to scantable constructor to be able to
select specific antenna from MS data with multiple antenna data.
Currently, only single antenna selection is working. For multiple antenna
selection, only first selection is used.


  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.0 KB
Line 
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
14
15#include <vector>
16#include <string>
17
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>
23
24#include "Scantable.h"
25#include "STHeader.h"
26#include "Logger.h"
27
28class PKSreader;
29class NROReader;
30
31namespace asap {
32
33/**
34This class fills a Scantable from external data formats using the PKSReader class.
35
36@brief    A filler object for data import into Scantable
37@author   Malte Marquarding
38@date     2006/01/16
39@version  2.0a
40*/
41class STFiller : public Logger {
42public:
43
44  /**
45   * Default constructor
46   */
47  STFiller();
48
49
50  /**
51   * Constructor taking an existing Scantable to fill
52   * @param stbl
53   */
54  explicit STFiller(casa::CountedPtr< Scantable > stbl);
55
56
57  /**
58    * A constructor for a filler with associated input file
59    * @param filename the input file (rpf,sdfite or ms)
60    * @param whichIF read a specific IF only (default -1 means all IFs)
61    * @param whichBeam read a specific beam only (default -1 means all beams)
62    */
63  explicit STFiller( const std::string& filename, int whichIF=-1,
64                     int whichBeam=-1 );
65
66  /**
67   * Destructor
68   */
69  virtual ~STFiller();
70
71  /**
72   * associate the Filler with a file on disk
73   * @param filename the input file (rpf,sdfite or ms)
74   * @param whichIF read a specific IF only (default -1 means all IFs)
75   * @param whichBeam read a specific beam only (default -1 means all beams)
76   * @exception AipsError Creation of PKSreader failed
77   */
78  void open( const std::string& filename, const std::string& antenna, int whichIF=-1, int whichBeam=-1, casa::Bool getPt=casa::False );
79
80  /**
81   * detach from file and clean up pointers
82   */
83  void close( );
84
85  /**
86   * Read in "rows" from the source file attached with open()
87   * @return a status flag passed on by PKSreader
88   *
89   * @li @c 0: ok
90   * @li >0: failed
91   */
92  int read( );
93
94  casa::CountedPtr<Scantable> getTable() const { return table_;}
95
96  /**
97   * For NRO data
98   *
99   * 2008/11/11 Takeshi Nakazato
100   *
101   * openNRO  : NRO version of open(), which performs to open file and
102   *            read header data.
103   * 
104   * readNRO  : NRO version of read(), which performs to read scan
105   *            records.
106   *
107   * fileCheck: Identify a type (NRO data or not) of filename_.
108   **/
109  void openNRO( int whichIF=-1, int whichBeam=-1 ) ;
110  int readNRO() ;
111  casa::Bool fileCheck() ;
112
113  void setReferenceExpr(const std::string& rx) { refRx_ = rx; }
114
115private:
116
117  PKSreader* reader_;
118  STHeader* header_;
119  casa::String filename_;
120  casa::CountedPtr< Scantable > table_;
121  casa::Int nIF_, nBeam_, nPol_, nChan_, nInDataRow;
122  casa::uInt ifOffset_, beamOffset_;
123  casa::Vector<casa::Bool> haveXPol_;
124  casa::String refRx_;
125  NROReader *nreader_ ;
126  casa::Bool isNRO_ ;
127};
128
129} // namespace
130
131#endif
Note: See TracBrowser for help on using the repository browser.