VLAFiller.h

Classes

VLAFiller -- Functions to convert from VLA archive format to a MeasurementSet (full description)

class VLAFiller: public MSColumns

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)

Description

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Etymology

Synopsis

Example

Motivation

Template Type Argument Requirements (T)

Thrown Exceptions

To Do

Member Description

VLAFiller(MeasurementSet& output, VLALogicalRecord& input, Double freqTolerance=0.0 )

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.

~VLAFiller()

Does nothing special

void setFilter(const VLAFilterSet& filter)

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.

Bool fillOne()

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.

void logCurrentRecord(IterationStatus& counts)

Send to the logger info about how the filler is going

void logChanges(IterationStatus& counts)

void summarise()

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 addField(const MDirection& refDir)

uInt addPointing(const MDirection& antennaDir, const MDirection& fieldDir, 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)

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)