casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::MSFitsInput Class Reference

UV FITS to MeasurementSet filler. More...

#include <MSFitsInput.h>

Public Member Functions

 MSFitsInput ()=delete
 This is an implementation helper class used to store 'local' data during the filling process. More...
 
 MSFitsInput (const String &msFile, const String &fitsFile, const Bool NewNameStyle=False)
 Create from output and input file names. More...
 
 MSFitsInput (const MSFitsInput &other)=delete
 
 ~MSFitsInput ()
 The destructor is fairly trivial. More...
 
MSFitsInputoperator= (const MSFitsInput &other)=delete
 
void readFitsFile (Int obsType=MSTileLayout::Standard)
 Read all the data from the FITS file and create the MeasurementSet. More...
 

Private Member Functions

Bool _checkInput (FitsInput &infile)
 Check that the input is a UV fits file with required contents. More...
 
void getPrimaryGroupAxisInfo ()
 Read the axis info of the primary group, throws an exception if required axes are missing. More...
 
void setupMeasurementSet (const String &MSFileName, Bool useTSM=True, Int obsType=MSTileLayout::Standard)
 Set up the MeasurementSet, including StorageManagers and fixed columns. More...
 
Read a binary table extension
of type AIPS AN and create an
antenna table *void 
fillAntennaTable (BinaryTable &bt)
 
void fillHistoryTable (ConstFitsKeywordList &kwl)
 Read a binary table extension and update history table. More...
 
void fillObservationTable (ConstFitsKeywordList &kwl)
 Read a binary table extension and update history table. More...
 
void getAxisInfo (ConstFitsKeywordList &)
 extract axis information More...
 
void sortPolarizations ()
 extract axis information More...
 
void fillPolarizationTable ()
 
void checkRequiredAxis ()
 verify that the fits contains visibility data More...
 
void fillSpectralWindowTable (BinaryTable &bt)
 
void fillFieldTable (BinaryTable &bt)
 fill Field table More...
 
void fillFieldTable (double, double, String)
 
void fillMSMainTable (BinaryTable &bt)
 
void fillPointingTable ()
 
void fillSourceTable ()
 
void fillFeedTable ()
 fill the Feed table with minimal info needed for synthesis processing More...
 
Fill the Observation and
ObsLog tables *void 
fillObsTables ()
 
void fillMSMainTableColWise (Int &nField, Int &nSpW)
 Fill the main table from the Primary group data if we have enough memory try to do it in mem. More...
 
void fillMSMainTable (Int &nField, Int &nSpW)
 else do it row by row More...
 
void fillSpectralWindowTable (BinaryTable &bt, Int nSpW)
 fill spectralwindow table from FITS FQ table + header info More...
 
void fillSpectralWindowTable ()
 fill spectralwindow table from header More...
 
void fillFieldTable (BinaryTable &bt, Int nField)
 fill Field table from FITS SU table More...
 
void fillFieldTable (Int nField)
 fill Field table from header (single source fits) More...
 
void fillExtraTables ()
 fill the Pointing table (from Field table, all antennas are assumed to point in the field direction) and possibly the Source table. More...
 
void fixEpochReferences ()
 fix up the EPOCH MEASURE_REFERENCE keywords using the value found in the (last) AN table More...
 
MDirection::Types getDirectionFrame (Double epoch)
 Returns the Direction Measure reference for UVW and other appropriate columns in msc_p (which must exist but have empty columns before you can set it!). More...
 
void setFreqFrameVar (BinaryTable &binTab)
 Check the frame if there is an SU table. More...
 
void updateSpectralWindowTable ()
 update a the Spectral window post filling if necessary More...
 
void readRandomGroupUVFits (Int obsType)
 
void readPrimaryTableUVFits (Int obsType)
 
std::pair< Int, Int_extractAntennas (Int antenna1, Int antenna2)
 
std::pair< Int, Int_extractAntennas (Float baseline)
 
void _fillSysPowerTable (BinaryTable &bt)
 
void _doFillSysPowerSingleIF (const String &casaTableName, const ScalarColumn< Double > &timeCol, const ScalarColumn< Float > &intervalCol, const ScalarColumn< Int > &antNoCol, const ScalarColumn< Int > &freqIDCol, const ScalarColumn< Float > &powerDif1Col, const ScalarColumn< Float > &powerSum1Col, const ScalarColumn< Float > &postGain1Col, const ScalarColumn< Float > &powerDif2Col, const ScalarColumn< Float > &powerSum2Col, const ScalarColumn< Float > &postGain2Col)
 

Private Attributes

FitsInput_infile
 
String _msFile
 
MSPrimaryGroupHolder _priGroup
 
MSPrimaryTableHolder _priTable
 
MeasurementSet _ms
 
MSColumns_msc
 
Int _nIF
 
Vector< Int_nPixel
 
Vector< Int_corrType
 
Block< Int_corrIndex
 
Matrix< Int_corrProduct
 
Vector< String_coordType
 
Vector< Double_refVal
 
Vector< Double_refPix
 
Vector< Double_delta
 
String _array
 
String _object
 
String _timsys
 
Double _epoch
 
MDirection::Types _epochRef
 
std::set< Int_uniqueAnts
 determined by epoch_p, hence the name and type. More...
 
Int _nAntRow
 number of rows in the created MS ANTENNA table More...
 
Int _nArray
 
Vector< Double_receptorAngle
 
MFrequency::Types _freqsys
 
Double _restfreq
 
Bool _addSourceTable
 
LogIO _log
 
Record _header
 
Double _refFreq
 
Bool _useAltrval
 
Vector< Double_chanFreq
 
Bool _newNameStyle
 
Vector< Double_obsTime
 
Matrix< Double_restFreq
 
Matrix< Double_sysVel
 
Bool _msCreated
 

Detailed Description

UV FITS to MeasurementSet filler.

Intended use:

Public interface

Prerequisite

Etymology

MSFitsInput handles the conversion of FITS files to MeasurementSets

Synopsis

UV FITS to MeasurementSet filler. This can handle single source fits and multi source fits as written by classic AIPS. Also copes with multiple arrays (i.e. multiple AN tables) but doesn't correct for 5 day offsets introduced by DBCON.

Definition at line 268 of file MSFitsInput.h.

Constructor & Destructor Documentation

casacore::MSFitsInput::MSFitsInput ( )
delete

This is an implementation helper class used to store 'local' data during the filling process.

casacore::MSFitsInput::MSFitsInput ( const String msFile,
const String fitsFile,
const Bool  NewNameStyle = False 
)

Create from output and input file names.

This function opens the input file, and checks the output file is writable.

casacore::MSFitsInput::MSFitsInput ( const MSFitsInput other)
delete
casacore::MSFitsInput::~MSFitsInput ( )

The destructor is fairly trivial.

Member Function Documentation

Bool casacore::MSFitsInput::_checkInput ( FitsInput infile)
private

Check that the input is a UV fits file with required contents.

Returns False if not ok.

void casacore::MSFitsInput::_doFillSysPowerSingleIF ( const String casaTableName,
const ScalarColumn< Double > &  timeCol,
const ScalarColumn< Float > &  intervalCol,
const ScalarColumn< Int > &  antNoCol,
const ScalarColumn< Int > &  freqIDCol,
const ScalarColumn< Float > &  powerDif1Col,
const ScalarColumn< Float > &  powerSum1Col,
const ScalarColumn< Float > &  postGain1Col,
const ScalarColumn< Float > &  powerDif2Col,
const ScalarColumn< Float > &  powerSum2Col,
const ScalarColumn< Float > &  postGain2Col 
)
private
std::pair<Int, Int> casacore::MSFitsInput::_extractAntennas ( Int  antenna1,
Int  antenna2 
)
private
std::pair<Int, Int> casacore::MSFitsInput::_extractAntennas ( Float  baseline)
private
void casacore::MSFitsInput::_fillSysPowerTable ( BinaryTable bt)
private
void casacore::MSFitsInput::checkRequiredAxis ( )
private

verify that the fits contains visibility data

Read a binary table extension of type AIPS AN and create an antenna table* void casacore::MSFitsInput::fillAntennaTable ( BinaryTable bt)
private
void casacore::MSFitsInput::fillExtraTables ( )
private

fill the Pointing table (from Field table, all antennas are assumed to point in the field direction) and possibly the Source table.

void casacore::MSFitsInput::fillFeedTable ( )
private

fill the Feed table with minimal info needed for synthesis processing

void casacore::MSFitsInput::fillFieldTable ( BinaryTable bt)
private

fill Field table

void casacore::MSFitsInput::fillFieldTable ( double  ,
double  ,
String   
)
private
void casacore::MSFitsInput::fillFieldTable ( BinaryTable bt,
Int  nField 
)
private

fill Field table from FITS SU table

void casacore::MSFitsInput::fillFieldTable ( Int  nField)
private

fill Field table from header (single source fits)

void casacore::MSFitsInput::fillHistoryTable ( ConstFitsKeywordList kwl)
private

Read a binary table extension and update history table.

void casacore::MSFitsInput::fillMSMainTable ( BinaryTable bt)
private
void casacore::MSFitsInput::fillMSMainTable ( Int nField,
Int nSpW 
)
private

else do it row by row

void casacore::MSFitsInput::fillMSMainTableColWise ( Int nField,
Int nSpW 
)
private

Fill the main table from the Primary group data if we have enough memory try to do it in mem.

void casacore::MSFitsInput::fillObservationTable ( ConstFitsKeywordList kwl)
private

Read a binary table extension and update history table.

Fill the Observation and ObsLog tables* void casacore::MSFitsInput::fillObsTables ( )
private
void casacore::MSFitsInput::fillPointingTable ( )
private
void casacore::MSFitsInput::fillPolarizationTable ( )
private
void casacore::MSFitsInput::fillSourceTable ( )
private
void casacore::MSFitsInput::fillSpectralWindowTable ( BinaryTable bt)
private
void casacore::MSFitsInput::fillSpectralWindowTable ( BinaryTable bt,
Int  nSpW 
)
private

fill spectralwindow table from FITS FQ table + header info

void casacore::MSFitsInput::fillSpectralWindowTable ( )
private

fill spectralwindow table from header

void casacore::MSFitsInput::fixEpochReferences ( )
private

fix up the EPOCH MEASURE_REFERENCE keywords using the value found in the (last) AN table

void casacore::MSFitsInput::getAxisInfo ( ConstFitsKeywordList )
private

extract axis information

MDirection::Types casacore::MSFitsInput::getDirectionFrame ( Double  epoch)
private

Returns the Direction Measure reference for UVW and other appropriate columns in msc_p (which must exist but have empty columns before you can set it!).

void casacore::MSFitsInput::getPrimaryGroupAxisInfo ( )
private

Read the axis info of the primary group, throws an exception if required axes are missing.

MSFitsInput& casacore::MSFitsInput::operator= ( const MSFitsInput other)
delete
void casacore::MSFitsInput::readFitsFile ( Int  obsType = MSTileLayout::Standard)

Read all the data from the FITS file and create the MeasurementSet.

Throws an exception when it has severe trouble interpreting the FITS file.

void casacore::MSFitsInput::readPrimaryTableUVFits ( Int  obsType)
private
void casacore::MSFitsInput::readRandomGroupUVFits ( Int  obsType)
private
void casacore::MSFitsInput::setFreqFrameVar ( BinaryTable binTab)
private

Check the frame if there is an SU table.

void casacore::MSFitsInput::setupMeasurementSet ( const String MSFileName,
Bool  useTSM = True,
Int  obsType = MSTileLayout::Standard 
)
private

Set up the MeasurementSet, including StorageManagers and fixed columns.

If useTSM is True, the Tiled Storage Manager will be used to store DATA, FLAG and WEIGHT_SPECTRUM. Use obsType to choose the tiling scheme.

void casacore::MSFitsInput::sortPolarizations ( )
private

extract axis information

void casacore::MSFitsInput::updateSpectralWindowTable ( )
private

update a the Spectral window post filling if necessary

Member Data Documentation

Bool casacore::MSFitsInput::_addSourceTable
private

Definition at line 317 of file MSFitsInput.h.

String casacore::MSFitsInput::_array
private

Definition at line 304 of file MSFitsInput.h.

Vector<Double> casacore::MSFitsInput::_chanFreq
private

Definition at line 322 of file MSFitsInput.h.

Vector<String> casacore::MSFitsInput::_coordType
private

Definition at line 302 of file MSFitsInput.h.

Block<Int> casacore::MSFitsInput::_corrIndex
private

Definition at line 300 of file MSFitsInput.h.

Matrix<Int> casacore::MSFitsInput::_corrProduct
private

Definition at line 301 of file MSFitsInput.h.

Vector<Int> casacore::MSFitsInput::_corrType
private

Definition at line 299 of file MSFitsInput.h.

Vector<Double> casacore::MSFitsInput::_delta
private

Definition at line 303 of file MSFitsInput.h.

Double casacore::MSFitsInput::_epoch
private

Definition at line 305 of file MSFitsInput.h.

MDirection::Types casacore::MSFitsInput::_epochRef
private

Definition at line 306 of file MSFitsInput.h.

MFrequency::Types casacore::MSFitsInput::_freqsys
private

Definition at line 315 of file MSFitsInput.h.

Record casacore::MSFitsInput::_header
private

Definition at line 319 of file MSFitsInput.h.

FitsInput* casacore::MSFitsInput::_infile
private

Definition at line 292 of file MSFitsInput.h.

LogIO casacore::MSFitsInput::_log
private

Definition at line 318 of file MSFitsInput.h.

MeasurementSet casacore::MSFitsInput::_ms
private

Definition at line 296 of file MSFitsInput.h.

MSColumns* casacore::MSFitsInput::_msc
private

Definition at line 297 of file MSFitsInput.h.

Bool casacore::MSFitsInput::_msCreated
private

Definition at line 328 of file MSFitsInput.h.

String casacore::MSFitsInput::_msFile
private

Definition at line 293 of file MSFitsInput.h.

Int casacore::MSFitsInput::_nAntRow
private

number of rows in the created MS ANTENNA table

Definition at line 312 of file MSFitsInput.h.

Int casacore::MSFitsInput::_nArray
private

Definition at line 313 of file MSFitsInput.h.

Bool casacore::MSFitsInput::_newNameStyle
private

Definition at line 323 of file MSFitsInput.h.

Int casacore::MSFitsInput::_nIF
private

Definition at line 298 of file MSFitsInput.h.

Vector<Int> casacore::MSFitsInput::_nPixel
private

Definition at line 299 of file MSFitsInput.h.

String casacore::MSFitsInput::_object
private

Definition at line 304 of file MSFitsInput.h.

Vector<Double> casacore::MSFitsInput::_obsTime
private

Definition at line 324 of file MSFitsInput.h.

MSPrimaryGroupHolder casacore::MSFitsInput::_priGroup
private

Definition at line 294 of file MSFitsInput.h.

MSPrimaryTableHolder casacore::MSFitsInput::_priTable
private

Definition at line 295 of file MSFitsInput.h.

Vector<Double> casacore::MSFitsInput::_receptorAngle
private

Definition at line 314 of file MSFitsInput.h.

Double casacore::MSFitsInput::_refFreq
private

Definition at line 320 of file MSFitsInput.h.

Vector<Double> casacore::MSFitsInput::_refPix
private

Definition at line 303 of file MSFitsInput.h.

Vector<Double> casacore::MSFitsInput::_refVal
private

Definition at line 303 of file MSFitsInput.h.

Double casacore::MSFitsInput::_restfreq
private

Definition at line 316 of file MSFitsInput.h.

Matrix<Double> casacore::MSFitsInput::_restFreq
private

Definition at line 326 of file MSFitsInput.h.

Matrix<Double> casacore::MSFitsInput::_sysVel
private

Definition at line 327 of file MSFitsInput.h.

String casacore::MSFitsInput::_timsys
private

Definition at line 304 of file MSFitsInput.h.

std::set<Int> casacore::MSFitsInput::_uniqueAnts
private

determined by epoch_p, hence the name and type.

unique antennas found in the visibility data NOTE These are 1-based

Definition at line 310 of file MSFitsInput.h.

Bool casacore::MSFitsInput::_useAltrval
private

Definition at line 321 of file MSFitsInput.h.


The documentation for this class was generated from the following file: