LCOV - code coverage report
Current view: top level - synthesis/ImagerObjects - SimpleSIImageStore.h (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 7 9 77.8 %
Date: 2024-11-06 17:42:47 Functions: 7 9 77.8 %

          Line data    Source code
       1             : /*
       2             :  * SimpleSIImageStore is an implementation without much checking the caller must make sure pointers exist before using them
       3             :  * Copyright (C) 2019  Associated Universities, Inc. Washington DC, USA.
       4             :  *
       5             :  * This program is free software: you can redistribute it and/or modify
       6             :  * it under the terms of the GNU General Public License as published by
       7             :  * the Free Software Foundation, either version 3 of the License, or
       8             :  * (at your option) any later version.
       9             :  *
      10             :  * This program is distributed in the hope that it will be useful,
      11             :  * but WITHOUT ANY WARRANTY; without even the implied warranty of
      12             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      13             :  * GNU General Public License for more details.
      14             :  *
      15             :  * You should have received a copy of the GNU General Public License
      16             :  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
      17             :  * 
      18             :  * 
      19             :  * Queries concerning CASA should be submitted at
      20             :  *        https://help.nrao.edu
      21             :  *
      22             :  *         Postal address: CASA Project Manager 
      23             :  *         National Radio Astronomy Observatory
      24             :  *         520 Edgemont Road
      25             :  *         Charlottesville, VA 22903-2475 USA
      26             :  */
      27             : 
      28             : #ifndef SYNTHESIS_SIMPLESIIMAGESTORE_H
      29             : #define SYNTHESIS_SIMPLESIIMAGESTORE_H
      30             : 
      31             : #include <synthesis/ImagerObjects/SIImageStore.h>
      32             : /**
      33             :  * 
      34             :  */
      35             : namespace casa{//# NAMESPACE CASA - BEGIN
      36             : 
      37             : class SimpleSIImageStore : public SIImageStore
      38             : {
      39             : public:
      40             :         
      41             :         SimpleSIImageStore(casacore::String &imageName,
      42             :                const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &modelim,
      43             :                const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &residim,
      44             :                const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &psfim,
      45             :                const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &weightim,
      46             :                const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &restoredim,
      47             :                const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &maskim,
      48             :                const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &sumwtim,
      49             :                const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &gridwtim,
      50             :                const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &pbim,
      51             :                const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &restoredpbcorim,
      52             :                     const std::shared_ptr<casacore::ImageInterface<casacore::Float> > &tempworkimage=nullptr,       
      53             :                    const casacore::Bool useweightimage=false);
      54             :         
      55         838 :         virtual casacore::String getType(){return "SimpleSIImageStore";};
      56             :         
      57             :         virtual std::shared_ptr<casacore::ImageInterface<casacore::Float> > psf(casacore::uInt term=0);
      58             :         virtual std::shared_ptr<casacore::ImageInterface<casacore::Float> > residual(casacore::uInt term=0);
      59             :     virtual std::shared_ptr<casacore::ImageInterface<casacore::Float> > weight(casacore::uInt term=0);
      60             :     virtual std::shared_ptr<casacore::ImageInterface<casacore::Float> > model(casacore::uInt term=0);
      61             : //    virtual std::shared_ptr<casacore::ImageInterface<casacore::Float> > image(casacore::uInt term=0);
      62             :     virtual std::shared_ptr<casacore::ImageInterface<casacore::Float> > mask(casacore::uInt term=0);
      63             :     virtual std::shared_ptr<casacore::ImageInterface<casacore::Float> > pb(casacore::uInt term=0);
      64             :   virtual std::shared_ptr<casacore::ImageInterface<casacore::Float> > tempworkimage(casacore::uInt term=0);
      65             :     virtual std::shared_ptr<casacore::ImageInterface<casacore::Complex> > forwardGrid(casacore::uInt term=0);
      66             :     virtual std::shared_ptr<casacore::ImageInterface<casacore::Complex> > backwardGrid(casacore::uInt term=0);
      67             :     
      68             :     virtual std::shared_ptr<casacore::ImageInterface<casacore::Float> > sumwt(casacore::uInt term=0);
      69             :         
      70             :         
      71             : 
      72         287 :   virtual casacore::Bool hasSensitivity(){return (bool) itsWeight;}
      73         600 :   virtual casacore::Bool hasPB(){return (bool) itsPB;}
      74             : 
      75         263 :   virtual casacore::Bool hasMask(){return (bool) itsMask; }
      76        1128 :   virtual casacore::Bool hasModel() {return (bool) itsModel;}
      77         253 :   virtual casacore::Bool hasPsf() {return (bool) itsPsf;}
      78           0 :   virtual casacore::Bool hasResidual() {return (bool) itsResidual;}
      79             :   //hasResidualImage is not overloaded 
      80           0 :   virtual casacore::Bool hasResidualImage() {return false;}
      81         759 :   virtual casacore::Bool hasSumWt() {return (bool) itsSumWt;}
      82             :   ///So far no need for overloading this
      83             :   //virtual casacore::Bool hasRestored() {return doesImageExist(itsImageName+imageExts(IMAGE));}
      84             :   virtual std::shared_ptr<SIImageStore> getSubImageStore(const casacore::Int facet=0, const casacore::Int nfacets=1, 
      85             :                                                     const casacore::Int chan=0, const casacore::Int nchanchunks=1, 
      86             :                                                     const casacore::Int pol=0, const casacore::Int npolchunks=1);
      87             :   virtual casacore::Bool releaseLocks();
      88             : 
      89             : private:
      90             :   std::shared_ptr<casacore::ImageInterface<casacore::Float> > itsPsf, itsModel, itsResidual, itsWeight, itsImage, itsSumWt, itsImagePBcor, itsPB, itsTempWorkIm;
      91             :         std::shared_ptr<casacore::ImageInterface<casacore::Complex> > itsForwardGrid, itsBackwardGrid;
      92             : 
      93             : 
      94             :         
      95             : };
      96             : }//# NAMESPACE CASA - END
      97             : #endif // SIMPLESIIMAGESTORE_H

Generated by: LCOV version 1.16