LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Types | Public Member Functions | Protected Attributes | List of all members
lsst::afw::math::BackgroundMI Class Reference

A class to evaluate image background levels. More...

#include <Background.h>

Inheritance diagram for lsst::afw::math::BackgroundMI:
lsst::afw::math::Background

Public Types

using InternalPixelT = float
 type used for any internal images, and returned by getApproximate More...
 

Public Member Functions

template<typename ImageT >
 BackgroundMI (ImageT const &img, BackgroundControl const &bgCtrl)
 Constructor for BackgroundMI. More...
 
 BackgroundMI (lsst::geom::Box2I const imageDimensions, image::MaskedImage< InternalPixelT > const &statsImage)
 Recreate a BackgroundMI from the statsImage and the original Image's BBox. More...
 
 BackgroundMI (BackgroundMI const &)=delete
 
 BackgroundMI (BackgroundMI &&)=delete
 
BackgroundMIoperator= (BackgroundMI const &)=delete
 
BackgroundMIoperator= (BackgroundMI &&)=delete
 
 ~BackgroundMI () override=default
 
BackgroundMIoperator+= (float const delta) override
 Add a scalar to the Background (equivalent to adding a constant to the original image) More...
 
BackgroundMIoperator-= (float const delta) override
 Subtract a scalar from the Background (equivalent to subtracting a constant from the original image) More...
 
lsst::afw::image::MaskedImage< InternalPixelTgetStatsImage () const
 Return the image of statistical quantities extracted from the image. More...
 
template<typename PixelT >
std::shared_ptr< lsst::afw::image::Image< PixelT > > getImage (Interpolate::Style const interpStyle, UndersampleStyle const undersampleStyle=THROW_EXCEPTION) const
 Method to interpolate and return the background for entire image. More...
 
template<typename PixelT >
std::shared_ptr< lsst::afw::image::Image< PixelT > > getImage (std::string const &interpStyle, std::string const &undersampleStyle="THROW_EXCEPTION") const
 Method to interpolate and return the background for entire image. More...
 
template<typename PixelT >
std::shared_ptr< lsst::afw::image::Image< PixelT > > getImage (lsst::geom::Box2I const &bbox, Interpolate::Style const interpStyle, UndersampleStyle const undersampleStyle=THROW_EXCEPTION) const
 
template<typename PixelT >
std::shared_ptr< lsst::afw::image::Image< PixelT > > getImage (lsst::geom::Box2I const &bbox, std::string const &interpStyle, std::string const &undersampleStyle="THROW_EXCEPTION") const
 
template<typename PixelT >
std::shared_ptr< lsst::afw::image::Image< PixelT > > getImage () const
 Method to interpolate and return the background for entire image. More...
 
Interpolate::Style getAsUsedInterpStyle () const
 Return the Interpolate::Style that we actually used in the last call to getImage() More...
 
UndersampleStyle getAsUsedUndersampleStyle () const
 Return the UndersampleStyle that we actually used in the last call to getImage() More...
 
std::shared_ptr< math::Approximate< InternalPixelT > > getApproximate (ApproximateControl const &actrl, UndersampleStyle const undersampleStyle=THROW_EXCEPTION) const
 Method to return an approximation to the background. More...
 
lsst::geom::Box2I getImageBBox () const
 Return the input image's (PARENT) bounding box. More...
 
std::shared_ptr< BackgroundControlgetBackgroundControl ()
 
std::shared_ptr< BackgroundControl const > getBackgroundControl () const
 

Protected Attributes

lsst::geom::Box2I _imgBBox
 size and origin of input image More...
 
std::shared_ptr< BackgroundControl_bctrl
 control info set by user. More...
 
Interpolate::Style _asUsedInterpStyle
 the style we actually used More...
 
UndersampleStyle _asUsedUndersampleStyle
 the undersampleStyle we actually used More...
 
std::vector< double > _xcen
 x center pix coords of sub images More...
 
std::vector< double > _ycen
 y center ... More...
 
std::vector< int > _xorig
 x origin pix coords of sub images More...
 
std::vector< int > _yorig
 y origin ... More...
 
std::vector< int > _xsize
 x size of sub images More...
 
std::vector< int > _ysize
 y size ... More...
 

Detailed Description

A class to evaluate image background levels.

Break an image up into nx*ny sub-images and use a statistical to estimate the background levels in each square. Then use a user-specified or algorithm to estimate background at a given pixel coordinate.

Methods are available to return the background at a point (inefficiently), or an entire background image. BackgroundControl contains a public StatisticsControl member to allow user control of how the backgrounds are computed.

math::BackgroundControl bctrl(7, 7);  // number of sub-image squares in {x,y}-dimensions
bctrl.sctrl.setNumSigmaClip(5.0);     // use 5-sigma clipping for the sub-image means
std::shared_ptr<math::Background> backobj = math::makeBackground(img, bctrl);
// get a whole background image
Image<PixelT> back = backobj->getImage<PixelT>(math::Interpolate::NATURAL_SPLINE);

there is also

// get the background at a pixel at i_x,i_y
double someValue = backobj.getPixel(math::Interpolate::LINEAR, i_x, i_y);

Definition at line 434 of file Background.h.

Member Typedef Documentation

◆ InternalPixelT

type used for any internal images, and returned by getApproximate

Definition at line 262 of file Background.h.

Constructor & Destructor Documentation

◆ BackgroundMI() [1/4]

template<typename ImageT >
lsst::afw::math::BackgroundMI::BackgroundMI ( ImageT const &  img,
BackgroundControl const &  bgCtrl 
)
explicit

Constructor for BackgroundMI.

Estimate the statistical properties of the Image in a grid of cells; we'll later call getImage() to interpolate those values, creating an image the same size as the original

Parameters
imgImageT (or MaskedImage) whose properties we want
bgCtrlControl how the BackgroundMI is estimated
Note
If there are heavily masked or Nan regions in the image we may not be able to estimate all the cells in the "statsImage". Interpolation will still work, but if you want to prevent the code wildly extrapolating, it may be better to set the values directly; e.g.
defaultValue = 10
statsImage = afwMath.cast_BackgroundMI(bkgd).getStatsImage()
sim = statsImage.getImage().getArray()
sim[np.isnan(sim)] = defaultValue # replace NaN by defaultValue
bkgdImage = bkgd.getImageF(afwMath.Interpolate.NATURAL_SPLINE, afwMath.REDUCE_INTERP_ORDER)
There is a ticket (#2825) to allow getImage to specify a default value to use when interpolation fails

Definition at line 80 of file BackgroundMI.cc.

81  : Background(img, bgCtrl), _statsImage(image::MaskedImage<InternalPixelT>()) {
82  // =============================================================
83  // Loop over the cells in the image, computing statistical properties
84  // of each cell in turn and using them to set _statsImage
85  int const nxSample = bgCtrl.getNxSample();
86  int const nySample = bgCtrl.getNySample();
87  _statsImage = image::MaskedImage<InternalPixelT>(nxSample, nySample);
88 
91 
92  for (int iX = 0; iX < nxSample; ++iX) {
93  for (int iY = 0; iY < nySample; ++iY) {
94  ImageT subimg = ImageT(img,
97  image::LOCAL);
98 
99  std::pair<double, double> res = makeStatistics(subimg, bgCtrl.getStatisticsProperty() | ERRORS,
100  *bgCtrl.getStatisticsControl())
101  .getResult();
102  im(iX, iY) = res.first;
103  var(iX, iY) = res.second;
104  }
105  }
106 }
VariancePtr getVariance() const
Return a (shared_ptr to) the MaskedImage's variance.
Definition: MaskedImage.h:1051
ImagePtr getImage() const
Return a (shared_ptr to) the MaskedImage's image.
Definition: MaskedImage.h:1018
Background(ImageT const &img, BackgroundControl const &bgCtrl)
Constructor for Background.
Definition: Background.cc:44
std::vector< int > _xsize
x size of sub images
Definition: Background.h:372
std::vector< int > _xorig
x origin pix coords of sub images
Definition: Background.h:370
std::vector< int > _ysize
y size ...
Definition: Background.h:373
std::vector< int > _yorig
y origin ...
Definition: Background.h:371
Value getResult(Property const prop=NOTHING) const
Return the value and error in the specified statistic (e.g.
Definition: Statistics.cc:922
An integer coordinate rectangle.
Definition: Box.h:55
Statistics makeStatistics(lsst::afw::image::Image< Pixel > const &img, lsst::afw::image::Mask< image::MaskPixel > const &msk, int const flags, StatisticsControl const &sctrl=StatisticsControl())
Handle a watered-down front-end to the constructor (no variance)
Definition: Statistics.h:359
@ ERRORS
Include errors of requested quantities.
Definition: Statistics.h:64

◆ BackgroundMI() [2/4]

lsst::afw::math::BackgroundMI::BackgroundMI ( lsst::geom::Box2I const  imageDimensions,
image::MaskedImage< InternalPixelT > const &  statsImage 
)
explicit

Recreate a BackgroundMI from the statsImage and the original Image's BBox.

Parameters
imageDimensionsunbinned Image's BBox
statsImageInternal stats image

Definition at line 107 of file BackgroundMI.cc.

109  : Background(imageBBox, statsImage.getWidth(), statsImage.getHeight()), _statsImage(statsImage) {}
int getHeight() const
Return the number of rows in the image.
Definition: MaskedImage.h:1056
int getWidth() const
Return the number of columns in the image.
Definition: MaskedImage.h:1054

◆ BackgroundMI() [3/4]

lsst::afw::math::BackgroundMI::BackgroundMI ( BackgroundMI const &  )
delete

◆ BackgroundMI() [4/4]

lsst::afw::math::BackgroundMI::BackgroundMI ( BackgroundMI &&  )
delete

◆ ~BackgroundMI()

lsst::afw::math::BackgroundMI::~BackgroundMI ( )
overridedefault

Member Function Documentation

◆ getApproximate()

std::shared_ptr<math::Approximate<InternalPixelT> > lsst::afw::math::Background::getApproximate ( ApproximateControl const &  actrl,
UndersampleStyle const  undersampleStyle = THROW_EXCEPTION 
) const
inlineinherited

Method to return an approximation to the background.

Parameters
actrlApproximation style
undersampleStyleBehaviour if there are too few points

Definition at line 348 of file Background.h.

350  {
351  InternalPixelT disambiguate = 0;
352  return _getApproximate(actrl, undersampleStyle, disambiguate);
353  }
float InternalPixelT
type used for any internal images, and returned by getApproximate
Definition: Background.h:262

◆ getAsUsedInterpStyle()

Interpolate::Style lsst::afw::math::Background::getAsUsedInterpStyle ( ) const
inlineinherited

Return the Interpolate::Style that we actually used in the last call to getImage()

N.b. Interpolate can fallback to a lower order if there aren't enough samples

Definition at line 337 of file Background.h.

337 { return _asUsedInterpStyle; }
Interpolate::Style _asUsedInterpStyle
the style we actually used
Definition: Background.h:365

◆ getAsUsedUndersampleStyle()

UndersampleStyle lsst::afw::math::Background::getAsUsedUndersampleStyle ( ) const
inlineinherited

Return the UndersampleStyle that we actually used in the last call to getImage()

Definition at line 341 of file Background.h.

341 { return _asUsedUndersampleStyle; }
UndersampleStyle _asUsedUndersampleStyle
the undersampleStyle we actually used
Definition: Background.h:366

◆ getBackgroundControl() [1/2]

std::shared_ptr<BackgroundControl> lsst::afw::math::Background::getBackgroundControl ( )
inlineinherited

Definition at line 359 of file Background.h.

359 { return _bctrl; }
std::shared_ptr< BackgroundControl > _bctrl
control info set by user.
Definition: Background.h:364

◆ getBackgroundControl() [2/2]

std::shared_ptr<BackgroundControl const> lsst::afw::math::Background::getBackgroundControl ( ) const
inlineinherited

Definition at line 360 of file Background.h.

360 { return _bctrl; }

◆ getImage() [1/5]

template<typename PixelT >
std::shared_ptr<lsst::afw::image::Image<PixelT> > lsst::afw::math::Background::getImage ( ) const
inlineinherited

Method to interpolate and return the background for entire image.

Definition at line 329 of file Background.h.

329  {
330  return getImage<PixelT>(_bctrl->getInterpStyle(), _bctrl->getUndersampleStyle());
331  }

◆ getImage() [2/5]

template<typename PixelT >
std::shared_ptr<lsst::afw::image::Image<PixelT> > lsst::afw::math::Background::getImage ( Interpolate::Style const  interpStyle,
UndersampleStyle const  undersampleStyle = THROW_EXCEPTION 
) const
inlineinherited

Method to interpolate and return the background for entire image.

Parameters
interpStyleStyle of the interpolation
undersampleStyleBehaviour if there are too few points
Returns
A boost shared-pointer to an image containing the estimated background

Definition at line 283 of file Background.h.

285  {
286  return getImage<PixelT>(_imgBBox, interpStyle, undersampleStyle);
287  }
lsst::geom::Box2I _imgBBox
size and origin of input image
Definition: Background.h:363

◆ getImage() [3/5]

template<typename PixelT >
std::shared_ptr<lsst::afw::image::Image<PixelT> > lsst::afw::math::Background::getImage ( lsst::geom::Box2I const &  bbox,
Interpolate::Style const  interpStyle,
UndersampleStyle const  undersampleStyle = THROW_EXCEPTION 
) const
inlineinherited
Parameters
bboxBounding box for sub-image
interpStyleStyle of the interpolation
undersampleStyleBehaviour if there are too few points

Definition at line 307 of file Background.h.

309  {
310  return _getImage(bbox, interpStyle, undersampleStyle, static_cast<PixelT>(0));
311  }
AmpInfoBoxKey bbox
Definition: Amplifier.cc:117

◆ getImage() [4/5]

template<typename PixelT >
std::shared_ptr<lsst::afw::image::Image<PixelT> > lsst::afw::math::Background::getImage ( lsst::geom::Box2I const &  bbox,
std::string const &  interpStyle,
std::string const &  undersampleStyle = "THROW_EXCEPTION" 
) const
inlineinherited
Parameters
bboxBounding box for sub-image
interpStyleStyle of the interpolation
undersampleStyleBehaviour if there are too few points

Definition at line 318 of file Background.h.

320  {
321  return _getImage(bbox, math::stringToInterpStyle(interpStyle),
322  stringToUndersampleStyle(undersampleStyle), static_cast<PixelT>(0));
323  }
Interpolate::Style stringToInterpStyle(std::string const &style)
Conversion function to switch a string to an Interpolate::Style.
Definition: Interpolate.cc:256
UndersampleStyle stringToUndersampleStyle(std::string const &style)
Conversion function to switch a string to an UndersampleStyle.
Definition: Background.cc:117

◆ getImage() [5/5]

template<typename PixelT >
std::shared_ptr<lsst::afw::image::Image<PixelT> > lsst::afw::math::Background::getImage ( std::string const &  interpStyle,
std::string const &  undersampleStyle = "THROW_EXCEPTION" 
) const
inlineinherited

Method to interpolate and return the background for entire image.

Parameters
interpStyleStyle of the interpolation
undersampleStyleBehaviour if there are too few points
Returns
A boost shared-pointer to an image containing the estimated background

Definition at line 296 of file Background.h.

297  {
298  return getImage<PixelT>(math::stringToInterpStyle(interpStyle),
299  stringToUndersampleStyle(undersampleStyle));
300  }

◆ getImageBBox()

lsst::geom::Box2I lsst::afw::math::Background::getImageBBox ( ) const
inlineinherited

Return the input image's (PARENT) bounding box.

Definition at line 357 of file Background.h.

357 { return _imgBBox; }

◆ getStatsImage()

lsst::afw::image::MaskedImage<InternalPixelT> lsst::afw::math::BackgroundMI::getStatsImage ( ) const
inline

Return the image of statistical quantities extracted from the image.

Definition at line 490 of file Background.h.

490 { return _statsImage; }

◆ operator+=()

BackgroundMI & lsst::afw::math::BackgroundMI::operator+= ( float const  delta)
overridevirtual

Add a scalar to the Background (equivalent to adding a constant to the original image)

Parameters
deltaValue to add

Implements lsst::afw::math::Background.

Definition at line 169 of file BackgroundMI.cc.

169  {
170  _statsImage += delta;
171  return *this;
172 }

◆ operator-=()

BackgroundMI & lsst::afw::math::BackgroundMI::operator-= ( float const  delta)
overridevirtual

Subtract a scalar from the Background (equivalent to subtracting a constant from the original image)

Parameters
deltaValue to subtract

Implements lsst::afw::math::Background.

Definition at line 174 of file BackgroundMI.cc.

174  {
175  _statsImage -= delta;
176  return *this;
177 }

◆ operator=() [1/2]

BackgroundMI& lsst::afw::math::BackgroundMI::operator= ( BackgroundMI &&  )
delete

◆ operator=() [2/2]

BackgroundMI& lsst::afw::math::BackgroundMI::operator= ( BackgroundMI const &  )
delete

Member Data Documentation

◆ _asUsedInterpStyle

Interpolate::Style lsst::afw::math::Background::_asUsedInterpStyle
mutableprotectedinherited

the style we actually used

Definition at line 365 of file Background.h.

◆ _asUsedUndersampleStyle

UndersampleStyle lsst::afw::math::Background::_asUsedUndersampleStyle
mutableprotectedinherited

the undersampleStyle we actually used

Definition at line 366 of file Background.h.

◆ _bctrl

std::shared_ptr<BackgroundControl> lsst::afw::math::Background::_bctrl
protectedinherited

control info set by user.

Definition at line 364 of file Background.h.

◆ _imgBBox

lsst::geom::Box2I lsst::afw::math::Background::_imgBBox
protectedinherited

size and origin of input image

Definition at line 363 of file Background.h.

◆ _xcen

std::vector<double> lsst::afw::math::Background::_xcen
protectedinherited

x center pix coords of sub images

Definition at line 368 of file Background.h.

◆ _xorig

std::vector<int> lsst::afw::math::Background::_xorig
protectedinherited

x origin pix coords of sub images

Definition at line 370 of file Background.h.

◆ _xsize

std::vector<int> lsst::afw::math::Background::_xsize
protectedinherited

x size of sub images

Definition at line 372 of file Background.h.

◆ _ycen

std::vector<double> lsst::afw::math::Background::_ycen
protectedinherited

y center ...

Definition at line 369 of file Background.h.

◆ _yorig

std::vector<int> lsst::afw::math::Background::_yorig
protectedinherited

y origin ...

Definition at line 371 of file Background.h.

◆ _ysize

std::vector<int> lsst::afw::math::Background::_ysize
protectedinherited

y size ...

Definition at line 373 of file Background.h.


The documentation for this class was generated from the following files: