source: branches/alma/external/atnf/PKSIO/PKSwriter.h @ 1453

Last change on this file since 1453 was 1453, checked in by TakTsutsumi, 15 years ago

New Development: No

JIRA Issue: No

Ready to Release: Yes

Interface Changes: Yes

What Interface Changed: many

Test Programs: sd.scantable(), sd.scantable.save()

Put in Release Notes: N/A

Description: copied from current casapy code tree


File size: 4.2 KB
Line 
1//#---------------------------------------------------------------------------
2//# PKSwriter.h: Class to write out Parkes multibeam data.
3//#---------------------------------------------------------------------------
4//# Copyright (C) 2000-2006
5//# Associated Universities, Inc. Washington DC, USA.
6//#
7//# This library is free software; you can redistribute it and/or modify it
8//# under the terms of the GNU Library General Public License as published by
9//# the Free Software Foundation; either version 2 of the License, or (at your
10//# option) any later version.
11//#
12//# This library is distributed in the hope that it will be useful, but WITHOUT
13//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14//# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
15//# License for more details.
16//#
17//# You should have received a copy of the GNU Library General Public License
18//# along with this library; if not, write to the Free Software Foundation,
19//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
20//#
21//# Correspondence concerning AIPS++ should be addressed as follows:
22//#        Internet email: aips2-request@nrao.edu.
23//#        Postal address: AIPS++ Project Office
24//#                        National Radio Astronomy Observatory
25//#                        520 Edgemont Road
26//#                        Charlottesville, VA 22903-2475 USA
27//#
28//# $Id$
29//#---------------------------------------------------------------------------
30
31#ifndef ATNF_PKSWRITER_H
32#define ATNF_PKSWRITER_H
33
34#include <casa/aips.h>
35#include <casa/Arrays/Matrix.h>
36#include <casa/Arrays/Vector.h>
37#include <casa/BasicSL/Complex.h>
38#include <casa/BasicSL/String.h>
39
40// <summary>
41// Class to write out Parkes multibeam data.
42// </summary>
43
44#include <casa/namespace.h>
45class PKSwriter
46{
47  public:
48    // Destructor.
49    virtual ~PKSwriter() {};
50
51    // Create the output file and and write static data.
52    virtual Int create(
53        const String outName,
54        const String observer,
55        const String project,
56        const String antName,
57        const Vector<Double> antPosition,
58        const String obsMode,
59        const Float  equinox,
60        const String dopplerFrame,
61        const Vector<uInt> nChan,
62        const Vector<uInt> nPol,
63        const Vector<Bool> haveXPol,
64        const Bool havebase,
65        const String fluxUnit) = 0;
66
67    // Write the next data record.
68    virtual Int write (
69        const Int             scanNo,
70        const Int             cycleNo,
71        const Double          mjd,
72        const Double          interval,
73        const String          fieldName,
74        const String          srcName,
75        const Vector<Double>  srcDir,
76        const Vector<Double>  srcPM,
77        const Double          srcVel,
78        const String          obsMode,
79        const Int             IFno,
80        const Double          refFreq,
81        const Double          bandwidth,
82        const Double          freqInc,
83        //const Double          restFreq,
84        const Vector<Double>  restFreq,
85        const Vector<Float>   tcal,
86        const String          tcalTime,
87        const Float           azimuth,
88        const Float           elevation,
89        const Float           parAngle,
90        const Float           focusAxi,
91        const Float           focusTan,
92        const Float           focusRot,
93        const Float           temperature,
94        const Float           pressure,
95        const Float           humidity,
96        const Float           windSpeed,
97        const Float           windAz,
98        const Int             refBeam,
99        const Int             beamNo,
100        const Vector<Double>  direction,
101        const Vector<Double>  scanRate,
102        const Vector<Float>   tsys,
103        const Vector<Float>   sigma,
104        const Vector<Float>   calFctr,
105        const Matrix<Float>   baseLin,
106        const Matrix<Float>   baseSub,
107        const Matrix<Float>   &spectra,
108        const Matrix<uChar>   &flagged,
109        const Complex         xCalFctr,
110        const Vector<Complex> &xPol) = 0;
111
112    // Close the output file.
113    virtual void close() = 0;
114
115  protected:
116    Bool cHaveBase;
117    uInt cNIF;
118    Vector<Bool> cHaveXPol;
119    Vector<uInt> cNChan, cNPol;
120};
121
122#endif
Note: See TracBrowser for help on using the repository browser.