Source
xxxxxxxxxx
//# RegriddingTVI.h: This file contains the interface definition of the MSTransformManager class.
//#
//# CASA - Common Astronomy Software Applications (http://casa.nrao.edu/)
//# Copyright (C) Associated Universities, Inc. Washington DC, USA 2011, All rights reserved.
//# Copyright (C) European Southern Observatory, 2011, All rights reserved.
//#
//# This library is free software; you can redistribute it and/or
//# modify it under the terms of the GNU Lesser General Public
//# License as published by the Free software Foundation; either
//# version 2.1 of the License, or (at your option) any later version.
//#
//# This library 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
//# Lesser General Public License for more details.
//#
//# You should have received a copy of the GNU Lesser General Public
//# License along with this library; if not, write to the Free Software
//# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
//# MA 02111-1307 USA
//# $Id: $
// Base class
// To handle variant parameters
// casacore::MS Access
// To get observatory position from observatory name
// calcChanFreqs
// 1d interpolation methods
namespace casa { //# NAMESPACE CASA - BEGIN
namespace vi { //# NAMESPACE VI - BEGIN
//////////////////////////////////////////////////////////////////////////
// Enumerations (see equivalences in InterpolateArray1D.h)
//////////////////////////////////////////////////////////////////////////
enum RegriddingMethod {
// nearest neighbour
nearestNeighbour,
// linear
linear,
// cubic
cubic,
// cubic spline
spline,
// fft shift
fftshift
};
const casacore::Unit Hz(casacore::String("Hz"));
//////////////////////////////////////////////////////////////////////////
// RegriddingTVI class
//////////////////////////////////////////////////////////////////////////
class RegriddingTVI : public FreqAxisTVI
{
public:
RegriddingTVI( ViImplementation2 * inputVii,
const casacore::Record &configuration);
// Report the the ViImplementation type
virtual casacore::String ViiType() const { return casacore::String("Regridding( ")+getVii()->ViiType()+" )"; };
// Navigation methods
void origin ();
// Frequency specification methods
casacore::Int getReportingFrameOfReference () const; // Used by VisBufferImpl2 to determine default ref. frame
casacore::Vector<casacore::Double> getFrequencies ( casacore::Double time, casacore::Int frameOfReference,
casacore::Int spectralWindowId, casacore::Int msId) const;
// casacore::Data accessors
void flag(casacore::Cube<casacore::Bool>& flagCube) const;
void floatData (casacore::Cube<casacore::Float> & vis) const;