source: branches/alma/src/STFiller.h@ 3033

Last change on this file since 3033 was 1684, checked in by Takeshi Nakazato, 15 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.