//# CEMemImageSkyModel.h: Definition for CEMemImageSkyModel //# Copyright (C) 1996,1997,1998,1999,2000 //# 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 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$ #ifndef SYNTHESIS_CEMEMIMAGESKYMODEL_H #define SYNTHESIS_CEMEMIMAGESKYMODEL_H #include namespace casa { //# NAMESPACE CASA - BEGIN //forward class SkyEquation; class CEMemProgress; // Image Sky Model for the Cornwell-Evens maximum entropy algorithm // // // //
  • ImageSkyModel class //
  • CEMemModel class // // // // CEMemImageSkyModel implements the Cornwell-Evens MEM algorithm. // It is derived from CleanImageSkyModel. // // // // We need to add more stuff here. // // // // Masking is optionally performed using a mask image: only points // where the mask is non-zero are cleaned. If no mask is specified // all points in the inner quarter of the image are cleaned. // // // // See the example for CleanImageSkyModel. // // // // // // //
      Some of the "CleanImageSkyModel" functionality should be moved to "ImageSkyModel" //
        Create another virtual base class, "MemImageSkyModel", derived from "ImageSkyModel" //
          THEN: derive CEMemImageSkyModel from "MemImageSkyModel" //
            However, now we are just doing what works quickly: deriving from CleanImageSkyModel // class CEMemImageSkyModel : public CleanImageSkyModel { public: // constructor CEMemImageSkyModel(casacore::Float sigma, casacore::Float targetFlux, casacore::Bool constrainFlux, const casacore::Vector& priors, const casacore::String& entropy); // destructor ~CEMemImageSkyModel(); // Solve for this SkyModel virtual casacore::Bool solve (SkyEquation& me); // Set control parameters which are different from Clean: // void setSigma(const casacore::Float targetSigma) {itsSigma = targetSigma; } void setTargetFlux(const casacore::Float targetFlux) {itsTargetFlux = targetFlux; } void setConstrainTargetFlux(const casacore::Bool constrainFlux) { itsConstrainFlux = constrainFlux; } void setPrior(const casacore::Vector& prior) { itsPrior = prior; } void setEntropy(const casacore::String& ent) { itsEntropy = ent; } // // Get the various control parameters which are different from Clean: // casacore::Float sigma() { return itsSigma; } casacore::Float targetFlux() { return itsTargetFlux; } casacore::Bool constrainFlux() { return itsConstrainFlux; } casacore::Vector prior() { return itsPrior; } casacore::String entropy() { return itsEntropy; } // protected: casacore::Bool initializeModel() { return itsInitializeModel; } casacore::Float itsSigma; casacore::Float itsTargetFlux; casacore::Bool itsConstrainFlux; casacore::Vector itsPrior; casacore::String itsEntropy; casacore::Bool itsInitializeModel; CEMemProgress *itsProgress; }; } //# NAMESPACE CASA - END #endif