VLAFiller.h
Classes
- VLAFiller -- Functions to convert from VLA archive format to a MeasurementSet (full description)
Interface
- Public Members
- VLAFiller(MeasurementSet& output, VLALogicalRecord& input, Double freqTolerance=0.0 )
- ~VLAFiller()
- void setFilter(const VLAFilterSet& filter)
- void fill(Int verbose=1)
- static MeasurementSet emptyMS(const Path& tableName, const Bool overwrite=False)
- static MeasurementSet openMS(const Path& tableName, const Bool readonly=False)
- static MeasurementSet getMS(const Path& tableName, const Bool overwrite=False)
- Private Members
- Bool fillOne()
- void logCurrentRecord(IterationStatus& counts)
- void logChanges(IterationStatus& counts)
- void summarise()
- uInt addAntenna(const MPosition& antennaPos, uInt whichAnt)
- void addFeed(uInt whichAnt)
- uInt addField(const MDirection& refDir)
- uInt addPointing(const MDirection& antennaDir, const MDirection& fieldDir, uInt whichAnt)
- uInt addDoppler( const VLAEnum::CDA cda )
- uInt addSpectralWindow(const VLAEnum::CDA cda, const MFrequency& refFreq, const uInt nChan, const Double bandwidth, const uInt ifChain)
- uInt addPolarization(const Vector<Stokes::StokesTypes>& pol)
- uInt addDataDescription(uInt spwId, uInt polId)
- uInt addSource(const MDirection& dir )
- void addHypercubes(uInt nPol, uInt nChan)
- void extendHypercubes(const Block<uInt>& nPol, const Block<uInt>& nChan, uInt rows)
- Int polIndexer(Stokes::StokesTypes& stokes)
Review Status
- Date Reviewed:
- yyyy/mm/dd
Prerequisite
- SomeClass
- SomeOtherClass
- some concept
Etymology
Synopsis
Example
Motivation
Template Type Argument Requirements (T)
Thrown Exceptions
To Do
- add this feature
- fix this bug
- start discussion of this possible extension
Member Description
Construct a VLAFiller object that will data from the specified input, and
writes it to the supplied MeasurementSet.
We set the default tolerance for frequency to be 6 times of the
channel width and also give user the ability to pass in a tolerance
for frequency into vlafillerfromdisk(). The default tolerance of frequency
works for dataset G192. But for dataset NGC7538, one has to give a tolerance
as larger as 60 times its channel width ( 60000000Hz ). For other dataset, the
user has to try out the proper tolerance.
Does nothing special
Set the filter that will be used to restrict which input records get
copied to the output MS.
void fill(Int verbose=1)
fill the supplied MeasurementSet from the the supplied VLABuffer. The
number/type of messages describing the progress sent to the logger are
controlled using the verbose argument. If verbose is -1 or less then no
messages are sent to the logger. If verbose is zero then a summary is sent
to the logger just before this function completes. If verbose is one then
a message is sent for every record copied to the output MS. If verbose is
two a message is sent every second record and so on.
static MeasurementSet emptyMS(const Path& tableName, const Bool overwrite=False)
Construct an empty MeasurementSet with the supplied table name. Throw
an exception (AipsError) if the specified Table already exists unless the
overwrite argument is set to True.
static MeasurementSet openMS(const Path& tableName, const Bool readonly=False)
Open the MeasurementSet with the supplied name. Throw an exception
(AipsError) if the specified Table does not exist. By default the Table is
opened for read/write access. The Type/SubType MUST be "Measurement
Set/VLA" ie., the MS must have been created with this class. Otherwise an
exception is thrown.
static MeasurementSet getMS(const Path& tableName, const Bool overwrite=False)
Return an empty MeasurementSet with the supplied table name. Creates a
empty measurement set unless one with the specified name already exists
and overwrite is False. Then it opens the existing measurement set for
read/write access.
Read one record from the input and copies it to the MS if it is not
filtered out. Returns False if a record could not be read.
Send to the logger info about how the filler is going
void logChanges(IterationStatus& counts)
Send to the logger info about how much data is in the (sub)tables
uInt addAntenna(const MPosition& antennaPos, uInt whichAnt)
void addFeed(uInt whichAnt)
uInt addDoppler( const VLAEnum::CDA cda )
# Add an entry to the doppler dubtable
uInt addSpectralWindow(const VLAEnum::CDA cda, const MFrequency& refFreq, const uInt nChan, const Double bandwidth, const uInt ifChain)
void addHypercubes(uInt nPol, uInt nChan)
void extendHypercubes(const Block<uInt>& nPol, const Block<uInt>& nChan, uInt rows)