Loading...
Searching...
No Matches
MSFitsInput.h
Go to the documentation of this file.
//# MSFitsInput: simple uvfits (random group) to MeasurementSet conversion
//# Copyright (C) 1996,1997,1998,1999,2000,2001,2002,2003
//# Associated Universities, Inc. Washington DC, USA.
//#
//# This program is free software; you can redistribute it and/or modify
//# it under the terms of the GNU General Public License as published by
//# the Free Software Foundation; either version 2 of the License, or
//# (at your option) any later version.
//#
//# This program is distributed in the hope that it will be useful,
//# but WITHOUT ANY WARRANTY; without even the implied warranty of
//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
//# GNU General Public License for more details.
//#
//# You should have received a copy of the GNU General Public License
//# along with this program; if not, write to the Free Software
//# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
//#
//# Correspondence concerning AIPS++ should be addressed as follows:
//# Internet email: casa-feedback@nrao.edu.
//# Postal address: AIPS++ Project Office
//# National Radio Astronomy Observatory
//# 520 Edgemont Road
//# Charlottesville, VA 22903-2475 USA
#ifndef MS_MSFITSINPUT_H
#define MS_MSFITSINPUT_H
#include <casacore/casa/aips.h>
#include <casacore/casa/Arrays/Matrix.h>
#include <casacore/casa/Arrays/Vector.h>
#include <casacore/casa/Containers/Block.h>
#include <casacore/casa/Containers/Record.h>
#include <casacore/fits/FITS/fits.h>
#include <casacore/fits/FITS/hdu.h>
#include <casacore/casa/Logging/LogIO.h>
#include <casacore/ms/MeasurementSets/MeasurementSet.h>
#include <casacore/measures/Measures/MDirection.h>
#include <casacore/measures/Measures/MFrequency.h>
#include <casacore/casa/BasicSL/String.h>
#include <casacore/ms/MeasurementSets/MSTileLayout.h>
#include <casacore/tables/Tables/BaseTable.h>
namespace casacore { //# NAMESPACE CASACORE - BEGIN
class FitsInput;
class BinaryTable;
class MSColumns;
template <class T> class ScalarColumn;
// <summary>
// A helper class for MSFitsInput
// </summary>
// <use visibility=local>
// <etymology>
// This class can hold a primary array of several datatypes
// </etymology>
// <synopsis>
// This is a helper class to avoid cumbersome switch statements on the
// template type of the primary array
// It forwards all the PrimaryArray member functions we need in the filler.
// </synopsis>
class MSPrimaryTableHolder
{
// This is a helper class to avoid cumbersome switch statements on the
// template type of the primary array
// It forwards all the PrimaryTable member function we need in the filler.
public:
// Construct an empty holder, used to attach to later
MSPrimaryTableHolder();
// Construct from an input file containing a FITS primary group hdu.
// Throws an exception if the datatype is not Short, FitsLong or Float
MSPrimaryTableHolder(FitsInput& infile);
~MSPrimaryTableHolder();
// Attach to the input file, create the appropriate PrimaryArray.
// Throws an exception if the datatype is not Short, FitsLong or Float
void attach(FitsInput& infile);
// Detach from the input file
void detach();
//# forwarding functions
// Number of dimensions
Int dims()
{return hdu_p->dims();}
// Length of i'th axis
Int dim(Int i)
{return hdu_p->dim(i);}
// Coordinate type
Char* ctype(Int i)
{ return pf ? pf->ctype(i) : (pl ? pl->ctype(i) : ps->ctype(i));}
// Coordinate reference value
Double crval(Int i)
{ return pf ? pf->crval(i) : (pl ? pl->crval(i) : ps->crval(i));}
// Coordinate reference pixel
Double crpix(Int i)
{ return pf ? pf->crpix(i) : (pl ? pl->crpix(i) : ps->crpix(i));}
// Coordinate delta
Double cdelt(Int i)
{ return pf ? pf->cdelt(i) : (pl ? pl->cdelt(i) : ps->cdelt(i));}
// Keyword of given type
const FitsKeyword* kw(const FITS::ReservedName& n)
{ return hdu_p->kw(n);}
// All keywords
ConstFitsKeywordList& kwlist()
{ return hdu_p->kwlist();}
// Advance to next keyword
const FitsKeyword* nextkw()
{ return hdu_p->nextkw();}
// Read the next group
Int read() {
if (pf) return pf->read();
else if (pl) return pl->read();
else if (ps) return ps->read();
else if (pb) return pb->read();
else cout << "can not read the table" << endl;
return 0;
}
private:
HeaderDataUnit* hdu_p;
PrimaryTable<Short>* ps;
PrimaryTable<FitsLong>* pl;
PrimaryTable<Float>* pf;
PrimaryTable<uChar>* pb;
};
// <summary>
// A helper class for MSFitsInput
// </summary>
// <use visibility=local>
// <etymology>
// This class can hold a primary group of several datatypes
// </etymology>
// <synopsis>
// This is a helper class to avoid cumbersome switch statements on the
// template type of the primary group
// It forwards all the PrimaryGroup member functions we need in the filler.
// </synopsis>
class MSPrimaryGroupHolder
{
// This is a helper class to avoid cumbersome switch statements on the
// template type of the primary group
// It forwards all the PrimaryGroup member function we need in the filler.
public:
// Construct an empty holder, used to attach to later
MSPrimaryGroupHolder();
// Construct from an input file containing a FITS primary group hdu.
// Throws an exception if the datatype is not Short, FitsLong or Float
MSPrimaryGroupHolder(FitsInput& infile);
~MSPrimaryGroupHolder();
// Attach to the input file, create the appropriate PrimaryGroup.
// Throws an exception if the datatype is not Short, FitsLong or Float
void attach(FitsInput& infile);
// Detach from the input file
void detach();
//# forwarding functions
// Number of dimensions
Int dims()
{return hdu_p->dims();}
// Length of i'th axis
Int dim(Int i)
{return hdu_p->dim(i);}
// Coordinate type
Char* ctype(Int i)
{ return pf ? pf->ctype(i) : (pl ? pl->ctype(i) : ps->ctype(i));}
// Coordinate reference value
Double crval(Int i)
{ return pf ? pf->crval(i) : (pl ? pl->crval(i) : ps->crval(i));}
// Coordinate reference pixel
Double crpix(Int i)
{ return pf ? pf->crpix(i) : (pl ? pl->crpix(i) : ps->crpix(i));}
// Coordinate delta
Double cdelt(Int i)
{ return pf ? pf->cdelt(i) : (pl ? pl->cdelt(i) : ps->cdelt(i));}
// Keyword of given type
const FitsKeyword* kw(const FITS::ReservedName& n)
{ return hdu_p->kw(n);}
// All keywords
ConstFitsKeywordList& kwlist()
{ return hdu_p->kwlist();}
// Advance to next keyword
const FitsKeyword* nextkw()
{ return hdu_p->nextkw();}
// Number of groups
Int gcount() const
{ return pf ? pf->gcount() : ( pl ? pl->gcount() : ps->gcount());}
// Number of parameters
Int pcount() const
{ return pf ? pf->pcount() : ( pl ? pl->pcount() : ps->pcount());}
// Parameter type
Char* ptype(Int i) const
{ return pf ? pf->ptype(i) : ( pl ? pl->ptype(i) : ps->ptype(i));}
// Read the next group
Int read()
{ return pf ? pf->read() : ( pl ? pl->read() : ps->read());}
// Get i'th parameter
Double parm(Int i)
{ return pf ? pf->parm(i) : ( pl ? pl->parm(i) : ps->parm(i));}
// Get group data with index i, scaled and converted to Double
Double operator () (Int i) const
{ return pf ? (*pf)(i) : ( pl ? (*pl)(i) : (*ps)(i));}
private:
HeaderDataUnit* hdu_p;
PrimaryGroup<Short>* ps;
PrimaryGroup<FitsLong>* pl;
PrimaryGroup<Float>* pf;
};
// <summary>
// UV FITS to MeasurementSet filler
// </summary>
// <use visibility=export>
// <prerequisite>
// <li> MeasurementSet
// <li> FITS classes
// </prerequisite>
//
// <etymology>
// MSFitsInput handles the conversion of FITS files to MeasurementSets
// </etymology>
//
// <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.
// </synopsis>
class MSFitsInput
{
// This is an implementation helper class used to store 'local' data
// during the filling process.
public:
MSFitsInput() = delete;
// Create from output and input file names. This function opens the input
// file, and checks the output file is writable.
MSFitsInput(const String& msFile, const String& fitsFile, const Bool NewNameStyle=False);
MSFitsInput(const MSFitsInput& other) = delete;
// The destructor is fairly trivial.
~MSFitsInput();
MSFitsInput& operator=(const MSFitsInput& other) = delete;
// 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 readFitsFile(Int obsType = MSTileLayout::Standard);
private:
FitsInput* _infile;
String _msFile;
MSPrimaryGroupHolder _priGroup;
MSPrimaryTableHolder _priTable;
MeasurementSet _ms;
MSColumns* _msc;
Int _nIF;
Vector<Int> _nPixel, _corrType;
Block<Int> _corrIndex;
Matrix<Int> _corrProduct;
Vector<String> _coordType;
Vector<Double> _refVal, _refPix, _delta;
String _array, _object, _timsys;
Double _epoch;
MDirection::Types _epochRef; // This is a direction measure reference code
// determined by epoch_p, hence the name and type.
// unique antennas found in the visibility data
// NOTE These are 1-based
std::set<Int> _uniqueAnts;
// number of rows in the created MS ANTENNA table
Int _nAntRow;
Int _nArray;
Vector<Double> _receptorAngle;
MFrequency::Types _freqsys;
Double _restfreq; // used for images
Bool _addSourceTable;
LogIO _log;
Record _header;
Double _refFreq;
Bool _useAltrval;
Vector<Double> _chanFreq;
Bool _newNameStyle;
Vector<Double> _obsTime;
Matrix<Double> _restFreq; // used for UVFITS
Matrix<Double> _sysVel;
Bool _msCreated;
// Check that the input is a UV fits file with required contents.
// Returns False if not ok.
Bool _checkInput(FitsInput& infile);
// Read the axis info of the primary group, throws an exception if required
// axes are missing.
void getPrimaryGroupAxisInfo();
// 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 setupMeasurementSet(const String& MSFileName, Bool useTSM=True,
Int obsType = MSTileLayout::Standard);
// Read a binary table extension of type AIPS AN and create an antenna table
void fillAntennaTable(BinaryTable& bt);
// Read a binary table extension and update history table
void fillHistoryTable(ConstFitsKeywordList& kwl);
// Read a binary table extension and update history table
void fillObservationTable(ConstFitsKeywordList& kwl);
//extract axis information
void getAxisInfo(ConstFitsKeywordList&);
//extract axis information
void sortPolarizations();
void fillPolarizationTable();
//verify that the fits contains visibility data
void checkRequiredAxis();
void fillSpectralWindowTable(BinaryTable& bt);
// fill Field table
void fillFieldTable(BinaryTable& bt);
void fillFieldTable(double, double, String);
void fillMSMainTable(BinaryTable& bt);
void fillPointingTable();
void fillSourceTable();
// fill the Feed table with minimal info needed for synthesis processing
void fillFeedTable();
// Fill the Observation and ObsLog tables
void fillObsTables();
// Fill the main table from the Primary group data
// if we have enough memory try to do it in mem
void fillMSMainTableColWise(Int& nField, Int& nSpW);
//else do it row by row
void fillMSMainTable(Int& nField, Int& nSpW);
// fill spectralwindow table from FITS FQ table + header info
void fillSpectralWindowTable(BinaryTable& bt, Int nSpW);
// fill spectralwindow table from header
void fillSpectralWindowTable();
// fill Field table from FITS SU table
void fillFieldTable(BinaryTable& bt, Int nField);
// fill Field table from header (single source fits)
void fillFieldTable(Int nField);
// fill the Pointing table (from Field table, all antennas are assumed
// to point in the field direction) and possibly the Source table.
void fillExtraTables();
// fix up the EPOCH MEASURE_REFERENCE keywords using the value found
// in the (last) AN table
void fixEpochReferences();
// 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!).
MDirection::Types getDirectionFrame(Double epoch);
// Check the frame if there is an SU table
void setFreqFrameVar(BinaryTable& binTab);
// update a the Spectral window post filling if necessary
void updateSpectralWindowTable();
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
);
};
} //# NAMESPACE CASACORE - END
#endif
casacore::type
casacore::BinaryTable
Definition BinTable.h:109
casacore::Block
Definition Block.h:140
casacore::ConstFitsKeywordList
list of read-only FITS keywords
Definition fits.h:1070
casacore::FITS::ReservedName
ReservedName
FITS Reserved Names.
Definition fits.h:238
casacore::FitsInput
fixed-length sequential blocked FITS input
Definition fitsio.h:154
casacore::FitsKeyword
FITS keyword.
Definition fits.h:634
casacore::HeaderDataUnit
Definition hdu.h:69
casacore::LogIO
Definition LogIO.h:165
casacore::MDirection::Types
Types
Types of known MDirections Warning: The order defines the order in the translation matrix FromTo in ...
Definition MDirection.h:185
casacore::MFrequency::Types
Types
Types of known MFrequencies Warning: The order defines the order in the translation matrix FromTo in...
Definition MFrequency.h:173
casacore::MSColumns
Definition MSColumns.h:115
casacore::MSFitsInput::_newNameStyle
Bool _newNameStyle
Definition MSFitsInput.h:321
casacore::MSFitsInput::_epochRef
MDirection::Types _epochRef
Definition MSFitsInput.h:304
casacore::MSFitsInput::_coordType
Vector< String > _coordType
Definition MSFitsInput.h:300
casacore::MSFitsInput::_refPix
Vector< Double > _refPix
Definition MSFitsInput.h:301
casacore::MSFitsInput::_uniqueAnts
std::set< Int > _uniqueAnts
determined by epoch_p, hence the name and type.
Definition MSFitsInput.h:308
casacore::MSFitsInput::_extractAntennas
std::pair< Int, Int > _extractAntennas(Float baseline)
casacore::MSFitsInput::fixEpochReferences
void fixEpochReferences()
fix up the EPOCH MEASURE_REFERENCE keywords using the value found in the (last) AN table
casacore::MSFitsInput::readPrimaryTableUVFits
void readPrimaryTableUVFits(Int obsType)
casacore::MSFitsInput::_nAntRow
Int _nAntRow
number of rows in the created MS ANTENNA table
Definition MSFitsInput.h:310
casacore::MSFitsInput::_object
String _object
Definition MSFitsInput.h:302
casacore::MSFitsInput::fillPolarizationTable
void fillPolarizationTable()
casacore::MSFitsInput::readFitsFile
void readFitsFile(Int obsType=MSTileLayout::Standard)
Read all the data from the FITS file and create the MeasurementSet.
casacore::MSFitsInput::_corrProduct
Matrix< Int > _corrProduct
Definition MSFitsInput.h:299
casacore::MSFitsInput::fillMSMainTable
void fillMSMainTable(Int &nField, Int &nSpW)
else do it row by row
casacore::MSFitsInput::_ms
MeasurementSet _ms
Definition MSFitsInput.h:294
casacore::MSFitsInput::fillSpectralWindowTable
void fillSpectralWindowTable(BinaryTable &bt, Int nSpW)
fill spectralwindow table from FITS FQ table + header info
casacore::MSFitsInput::_priTable
MSPrimaryTableHolder _priTable
Definition MSFitsInput.h:293
casacore::MSFitsInput::operator=
MSFitsInput & operator=(const MSFitsInput &other)=delete
casacore::MSFitsInput::_nPixel
Vector< Int > _nPixel
Definition MSFitsInput.h:297
casacore::MSFitsInput::_doFillSysPowerSingleIF
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)
casacore::MSFitsInput::_extractAntennas
std::pair< Int, Int > _extractAntennas(Int antenna1, Int antenna2)
casacore::MSFitsInput::readRandomGroupUVFits
void readRandomGroupUVFits(Int obsType)
casacore::MSFitsInput::_priGroup
MSPrimaryGroupHolder _priGroup
Definition MSFitsInput.h:292
casacore::MSFitsInput::_nIF
Int _nIF
Definition MSFitsInput.h:296
casacore::MSFitsInput::MSFitsInput
MSFitsInput(const String &msFile, const String &fitsFile, const Bool NewNameStyle=False)
Create from output and input file names.
casacore::MSFitsInput::fillObsTables
Fill the Observation and ObsLog tables *void fillObsTables()
casacore::MSFitsInput::_restfreq
Double _restfreq
Definition MSFitsInput.h:314
casacore::MSFitsInput::_array
String _array
Definition MSFitsInput.h:302
casacore::MSFitsInput::fillObservationTable
void fillObservationTable(ConstFitsKeywordList &kwl)
Read a binary table extension and update history table.
casacore::MSFitsInput::_obsTime
Vector< Double > _obsTime
Definition MSFitsInput.h:322
casacore::MSFitsInput::fillSpectralWindowTable
void fillSpectralWindowTable()
fill spectralwindow table from header
casacore::MSFitsInput::_sysVel
Matrix< Double > _sysVel
Definition MSFitsInput.h:325
casacore::MSFitsInput::MSFitsInput
MSFitsInput(const MSFitsInput &other)=delete
casacore::MSFitsInput::getAxisInfo
void getAxisInfo(ConstFitsKeywordList &)
extract axis information
casacore::MSFitsInput::_nArray
Int _nArray
Definition MSFitsInput.h:311
casacore::MSFitsInput::_chanFreq
Vector< Double > _chanFreq
Definition MSFitsInput.h:320
casacore::MSFitsInput::fillHistoryTable
void fillHistoryTable(ConstFitsKeywordList &kwl)
Read a binary table extension and update history table.
casacore::MSFitsInput::_msc
MSColumns * _msc
Definition MSFitsInput.h:295
casacore::MSFitsInput::getPrimaryGroupAxisInfo
void getPrimaryGroupAxisInfo()
Read the axis info of the primary group, throws an exception if required axes are missing.
casacore::MSFitsInput::updateSpectralWindowTable
void updateSpectralWindowTable()
update a the Spectral window post filling if necessary
casacore::MSFitsInput::fillAntennaTable
Read a binary table extension of type AIPS AN and create an antenna table *void fillAntennaTable(BinaryTable &bt)
casacore::MSFitsInput::fillExtraTables
void fillExtraTables()
fill the Pointing table (from Field table, all antennas are assumed to point in the field direction) ...
casacore::MSFitsInput::sortPolarizations
void sortPolarizations()
extract axis information
casacore::MSFitsInput::setupMeasurementSet
void setupMeasurementSet(const String &MSFileName, Bool useTSM=True, Int obsType=MSTileLayout::Standard)
Set up the MeasurementSet, including StorageManagers and fixed columns.
casacore::MSFitsInput::_corrType
Vector< Int > _corrType
Definition MSFitsInput.h:297
casacore::MSFitsInput::fillMSMainTable
void fillMSMainTable(BinaryTable &bt)
casacore::MSFitsInput::_log
LogIO _log
Definition MSFitsInput.h:316
casacore::MSFitsInput::_receptorAngle
Vector< Double > _receptorAngle
Definition MSFitsInput.h:312
casacore::MSFitsInput::_refVal
Vector< Double > _refVal
Definition MSFitsInput.h:301
casacore::MSFitsInput::_restFreq
Matrix< Double > _restFreq
Definition MSFitsInput.h:324
casacore::MSFitsInput::fillFieldTable
void fillFieldTable(Int nField)
fill Field table from header (single source fits)
casacore::MSFitsInput::_delta
Vector< Double > _delta
Definition MSFitsInput.h:301
casacore::MSFitsInput::checkRequiredAxis
void checkRequiredAxis()
verify that the fits contains visibility data
casacore::MSFitsInput::_infile
FitsInput * _infile
Definition MSFitsInput.h:290
casacore::MSFitsInput::getDirectionFrame
MDirection::Types getDirectionFrame(Double epoch)
Returns the Direction Measure reference for UVW and other appropriate columns in msc_p (which must ex...
casacore::MSFitsInput::_addSourceTable
Bool _addSourceTable
Definition MSFitsInput.h:315
casacore::MSFitsInput::fillPointingTable
void fillPointingTable()
casacore::MSFitsInput::fillFieldTable
void fillFieldTable(BinaryTable &bt, Int nField)
fill Field table from FITS SU table
casacore::MSFitsInput::fillFeedTable
void fillFeedTable()
fill the Feed table with minimal info needed for synthesis processing
casacore::MSFitsInput::_epoch
Double _epoch
Definition MSFitsInput.h:303
casacore::MSFitsInput::_useAltrval
Bool _useAltrval
Definition MSFitsInput.h:319
casacore::MSFitsInput::_msCreated
Bool _msCreated
Definition MSFitsInput.h:326
casacore::MSFitsInput::_fillSysPowerTable
void _fillSysPowerTable(BinaryTable &bt)
casacore::MSFitsInput::fillSourceTable
void fillSourceTable()
casacore::MSFitsInput::fillSpectralWindowTable
void fillSpectralWindowTable(BinaryTable &bt)
casacore::MSFitsInput::~MSFitsInput
~MSFitsInput()
The destructor is fairly trivial.
casacore::MSFitsInput::_checkInput
Bool _checkInput(FitsInput &infile)
Check that the input is a UV fits file with required contents.
casacore::MSFitsInput::_freqsys
MFrequency::Types _freqsys
Definition MSFitsInput.h:313
casacore::MSFitsInput::_msFile
String _msFile
Definition MSFitsInput.h:291
casacore::MSFitsInput::_refFreq
Double _refFreq
Definition MSFitsInput.h:318
casacore::MSFitsInput::fillFieldTable
void fillFieldTable(BinaryTable &bt)
fill Field table
casacore::MSFitsInput::fillFieldTable
void fillFieldTable(double, double, String)
casacore::MSFitsInput::MSFitsInput
MSFitsInput()=delete
This is an implementation helper class used to store 'local' data during the filling process.
casacore::MSFitsInput::_corrIndex
Block< Int > _corrIndex
Definition MSFitsInput.h:298
casacore::MSFitsInput::_header
Record _header
Definition MSFitsInput.h:317
casacore::MSFitsInput::fillMSMainTableColWise
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.
casacore::MSFitsInput::setFreqFrameVar
void setFreqFrameVar(BinaryTable &binTab)
Check the frame if there is an SU table.
casacore::MSFitsInput::_timsys
String _timsys
Definition MSFitsInput.h:302
casacore::MSPrimaryGroupHolder
A helper class for MSFitsInput.
Definition MSFitsInput.h:154
casacore::MSPrimaryGroupHolder::pf
PrimaryGroup< Float > * pf
Definition MSFitsInput.h:241
casacore::MSPrimaryGroupHolder::gcount
Int gcount() const
Number of groups.
Definition MSFitsInput.h:214
casacore::MSPrimaryGroupHolder::ctype
Char * ctype(Int i)
Coordinate type.
Definition MSFitsInput.h:186
casacore::MSPrimaryGroupHolder::MSPrimaryGroupHolder
MSPrimaryGroupHolder(FitsInput &infile)
Construct from an input file containing a FITS primary group hdu.
casacore::MSPrimaryGroupHolder::kwlist
ConstFitsKeywordList & kwlist()
All keywords.
Definition MSFitsInput.h:206
casacore::MSPrimaryGroupHolder::~MSPrimaryGroupHolder
~MSPrimaryGroupHolder()
casacore::MSPrimaryGroupHolder::detach
void detach()
Detach from the input file.
casacore::MSPrimaryGroupHolder::crval
Double crval(Int i)
Coordinate reference value.
Definition MSFitsInput.h:190
casacore::MSPrimaryGroupHolder::dim
Int dim(Int i)
Length of i'th axis.
Definition MSFitsInput.h:182
casacore::MSPrimaryGroupHolder::operator()
Double operator()(Int i) const
Get group data with index i, scaled and converted to Double.
Definition MSFitsInput.h:234
casacore::MSPrimaryGroupHolder::crpix
Double crpix(Int i)
Coordinate reference pixel.
Definition MSFitsInput.h:194
casacore::MSPrimaryGroupHolder::ptype
Char * ptype(Int i) const
Parameter type.
Definition MSFitsInput.h:222
casacore::MSPrimaryGroupHolder::pcount
Int pcount() const
Number of parameters.
Definition MSFitsInput.h:218
casacore::MSPrimaryGroupHolder::kw
const FitsKeyword * kw(const FITS::ReservedName &n)
Keyword of given type.
Definition MSFitsInput.h:202
casacore::MSPrimaryGroupHolder::nextkw
const FitsKeyword * nextkw()
Advance to next keyword.
Definition MSFitsInput.h:210
casacore::MSPrimaryGroupHolder::dims
Int dims()
Number of dimensions.
Definition MSFitsInput.h:178
casacore::MSPrimaryGroupHolder::hdu_p
HeaderDataUnit * hdu_p
Definition MSFitsInput.h:238
casacore::MSPrimaryGroupHolder::cdelt
Double cdelt(Int i)
Coordinate delta.
Definition MSFitsInput.h:198
casacore::MSPrimaryGroupHolder::pl
PrimaryGroup< FitsLong > * pl
Definition MSFitsInput.h:240
casacore::MSPrimaryGroupHolder::ps
PrimaryGroup< Short > * ps
Definition MSFitsInput.h:239
casacore::MSPrimaryGroupHolder::MSPrimaryGroupHolder
MSPrimaryGroupHolder()
This is a helper class to avoid cumbersome switch statements on the template type of the primary grou...
casacore::MSPrimaryGroupHolder::read
Int read()
Read the next group.
Definition MSFitsInput.h:226
casacore::MSPrimaryGroupHolder::attach
void attach(FitsInput &infile)
Attach to the input file, create the appropriate PrimaryGroup.
casacore::MSPrimaryGroupHolder::parm
Double parm(Int i)
Get i'th parameter.
Definition MSFitsInput.h:230
casacore::MSPrimaryTableHolder
Definition MSFitsInput.h:64
casacore::MSPrimaryTableHolder::pf
PrimaryTable< Float > * pf
Definition MSFitsInput.h:137
casacore::MSPrimaryTableHolder::read
Int read()
Read the next group.
Definition MSFitsInput.h:124
casacore::MSPrimaryTableHolder::kw
const FitsKeyword * kw(const FITS::ReservedName &n)
Keyword of given type.
Definition MSFitsInput.h:112
casacore::MSPrimaryTableHolder::nextkw
const FitsKeyword * nextkw()
Advance to next keyword.
Definition MSFitsInput.h:120
casacore::MSPrimaryTableHolder::pl
PrimaryTable< FitsLong > * pl
Definition MSFitsInput.h:136
casacore::MSPrimaryTableHolder::hdu_p
HeaderDataUnit * hdu_p
Definition MSFitsInput.h:134
casacore::MSPrimaryTableHolder::pb
PrimaryTable< uChar > * pb
Definition MSFitsInput.h:138
casacore::MSPrimaryTableHolder::dim
Int dim(Int i)
Length of i'th axis.
Definition MSFitsInput.h:92
casacore::MSPrimaryTableHolder::ctype
Char * ctype(Int i)
Coordinate type.
Definition MSFitsInput.h:96
casacore::MSPrimaryTableHolder::dims
Int dims()
Number of dimensions.
Definition MSFitsInput.h:88
casacore::MSPrimaryTableHolder::kwlist
ConstFitsKeywordList & kwlist()
All keywords.
Definition MSFitsInput.h:116
casacore::MSPrimaryTableHolder::detach
void detach()
Detach from the input file.
casacore::MSPrimaryTableHolder::~MSPrimaryTableHolder
~MSPrimaryTableHolder()
casacore::MSPrimaryTableHolder::crpix
Double crpix(Int i)
Coordinate reference pixel.
Definition MSFitsInput.h:104
casacore::MSPrimaryTableHolder::ps
PrimaryTable< Short > * ps
Definition MSFitsInput.h:135
casacore::MSPrimaryTableHolder::attach
void attach(FitsInput &infile)
Attach to the input file, create the appropriate PrimaryArray.
casacore::MSPrimaryTableHolder::cdelt
Double cdelt(Int i)
Coordinate delta.
Definition MSFitsInput.h:108
casacore::MSPrimaryTableHolder::MSPrimaryTableHolder
MSPrimaryTableHolder()
This is a helper class to avoid cumbersome switch statements on the template type of the primary arra...
casacore::MSPrimaryTableHolder::crval
Double crval(Int i)
Coordinate reference value.
Definition MSFitsInput.h:100
casacore::MSPrimaryTableHolder::MSPrimaryTableHolder
MSPrimaryTableHolder(FitsInput &infile)
Construct from an input file containing a FITS primary group hdu.
casacore::MSTileLayout::Standard
@ Standard
Standard, optimizes i/o by using large tiles (128 kB).
Definition MSTileLayout.h:85
casacore::Matrix
Definition Matrix.h:87
casacore::MeasurementSet
Definition MeasurementSet.h:278
casacore::PrimaryGroup
Random Group datastructure.
Definition hdu.h:592
casacore::PrimaryTable
Primary Table structure.
Definition hdu.h:704
casacore::ScalarColumn
Definition ScalarColumn.h:83
casacore::String
String: the storage and methods of handling collections of characters.
Definition String.h:223
casacore::Vector
Definition Vector.h:82
casacore::Record
Record()
casacore
this file contains all the compiler specific defines
Definition mainpage.dox:28
casacore::False
const Bool False
Definition aipstype.h:42
casacore::Float
float Float
Definition aipstype.h:52
casacore::Int
int Int
Definition aipstype.h:48
casacore::Bool
bool Bool
Define the standard types used by Casacore.
Definition aipstype.h:40
casacore::True
const Bool True
Definition aipstype.h:41
casacore::Double
double Double
Definition aipstype.h:53
casacore::Char
char Char
Definition aipstype.h:44