Source
// moved from ImageAnalysis. this needs to be moved to a more appropriate class at some point
//# Copyright (C) 1995,1996,1999-2001
//# 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 Library 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 Library General Public
//# License for more details.
//#
//# You should have received a copy of the GNU Library 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 addressed 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
namespace casacore{
class GaussianBeam;
class ImageInfo;
template <class T> class ImageInterface;
}
namespace casa {
class SkyComponentFactory {
public:
typedef casacore::GaussianBeam Angular2DGaussian;
// These functions convert between a vector of doubles holding SkyComponent values
// (the output from SkyComponent::toPixel) and a SkyComponent. The coordinate
// values are in the 'x' and 'y' frames. It is possible that the x and y axes of
// the pixel array are lat/long (xIsLong=false) rather than long/lat.
// facToJy converts the brightness units from whatevers per whatever
// to Jy per whatever (e.g. mJy/beam to Jy/beam). It is unity if it
// can't be done and you get a warning. In the SkyComponent the flux
// is integral. In the parameters vector it is peak.
//
// pars(0) = FLux image units (e.g. Jy/beam).
// pars(1) = x cen abs pix
// pars(2) = y cen abs pix
// pars(3) = major pix
// pars(4) = minor pix
// pars(5) = pa radians (pos +x -> +y)
//
// 5 values for ComponentType::Gaussian, CT::Disk. 3 values for CT::Point.
//