Source
xxxxxxxxxx
//# VisImagingWeight.h: Calculate Imaging Weights for a buffer from weight
//# Copyright (C) 2009-2018
//# Associated Universities, Inc. Washington DC, USA.
//#
//# This library 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 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 General Public
//# License for more details.
//#
//# You should have received a copy of the GNU General Public License
//# along with this library; if not, write to the Free Software Foundation,
//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
//#
//# Correspondence concerning AIPS++ should be adressed as follows:
//# Internet email: aips2-request@nrao.edu.
//# Postal address: AIPS++ Project Office
//# National Radio Astronomy Observatory
//# 520 Edgemont Road
//# Charlottesville, VA 22903-2475 USA
//#
//#
//# $Id$
namespace casacore{
template<class T> class Matrix;
template<class T> class Vector;
template<class T> class ImageInterface;
template<class T> class TempLattice;
}
namespace casa { //# NAMESPACE CASA - BEGIN
//#forward
class ROVisibilityIterator;
// <summary>
// Object to hold type of imaging weight scheme to be used on the fly and to provide
// facilities to do that.
// </summary>
// <reviewed reviewer="" date="" tests="" demos="">
// <prerequisite>
// </prerequisite>
//
// <etymology>
// </etymology>
//
// <synopsis>
// </synopsis>
//
// <example>
// <srcblock>
// </srcblock>
// </example>
//
// <motivation>
// </motivation>
//
// <todo asof="">
// </todo>
class VisImagingWeight {
public:
//empty constructor
VisImagingWeight();
//Constructor to calculate natural and radial weights
VisImagingWeight(const casacore::String& type);
//Constructor to calculate uniform weight schemes; include Brigg's and super/uniform
//If multiField=true, the weight density calcution is done on a per field basis,
//else it is all fields combined
VisImagingWeight(ROVisibilityIterator& vi, const casacore::String& rmode, const casacore::Quantity& noise,
const casacore::Double robust, const casacore::Int nx, const casacore::Int ny,
const casacore::Quantity& cellx, const casacore::Quantity& celly,
const casacore::Int uBox, const casacore::Int vBox, const casacore::Bool multiField=false);
//Constructor for uniform style weighting when the weight density is calculated
//elsewhere
VisImagingWeight(ROVisibilityIterator& vi, casacore::Block<casacore::CountedPtr<casacore::TempLattice<casacore::Float> > >& grids, const casacore::String& rmode, const casacore::Quantity& noise,