lsst.afw  19.0.0-22-gd98cb7f78
Functions
lsst.afw.image.testUtils Namespace Reference

Functions

def makeGaussianNoiseMaskedImage (dimensions, sigma, variance=1.0)
 
def makeRampImage (bbox, start=0, stop=None, imageClass=ImageF)
 Make an image whose values are a linear ramp. More...
 
def assertImagesAlmostEqual (testCase, image0, image1, skipMask=None, rtol=1.0e-05, atol=1e-08, msg="Images differ")
 Assert that two images are almost equal, including non-finite values. More...
 
def assertImagesEqual (*args, **kwds)
 Assert that two images are exactly equal, including non-finite values. More...
 
def assertMasksEqual (testCase, mask0, mask1, skipMask=None, msg="Masks differ")
 Assert that two masks are equal. More...
 
def assertMaskedImagesAlmostEqual (testCase, maskedImage0, maskedImage1, doImage=True, doMask=True, doVariance=True, skipMask=None, rtol=1.0e-05, atol=1e-08, msg="Masked images differ")
 Assert that two masked images are nearly equal, including non-finite values. More...
 
def assertMaskedImagesEqual (*args, **kwds)
 Assert that two masked images are exactly equal, including non-finite values. More...
 
def imagesDiffer (image0, image1, skipMask=None, rtol=1.0e-05, atol=1e-08)
 Compare the pixels of two image or mask arrays; return True if close, False otherwise. More...
 

Function Documentation

◆ assertImagesAlmostEqual()

def lsst.afw.image.testUtils.assertImagesAlmostEqual (   testCase,
  image0,
  image1,
  skipMask = None,
  rtol = 1.0e-05,
  atol = 1e-08,
  msg = "Images differ" 
)

Assert that two images are almost equal, including non-finite values.

Parameters
[in]testCaseunittest.TestCase instance the test is part of; an object supporting one method: fail(self, msgStr)
[in]image0image 0, an lsst.afw.image.Image, lsst.afw.image.Mask, or transposed numpy array (see warning)
[in]image1image 1, an lsst.afw.image.Image, lsst.afw.image.Mask, or transposed numpy array (see warning)
[in]skipMaskmask of pixels to skip, or None to compare all pixels; an lsst.afw.image.Mask, lsst.afw.image.Image, or transposed numpy array (see warning); all non-zero pixels are skipped
[in]rtolmaximum allowed relative tolerance; more info below
[in]atolmaximum allowed absolute tolerance; more info below
[in]msgexception message prefix; details of the error are appended after ": "

The images are nearly equal if all pixels obey: |val1 - val0| <= rtol*|val1| + atol or, for float types, if nan/inf/-inf pixels match.

Warning
the comparison equation is not symmetric, so in rare cases the assertion may give different results depending on which image comes first.
the axes of numpy arrays are transposed with respect to Image and Mask data. Thus for example if image0 and image1 are both lsst.afw.image.ImageD with dimensions (2, 3) and skipMask is a numpy array, then skipMask must have shape (3, 2).
Exceptions
self.failureException(usually AssertionError) if any of the following are true for un-skipped pixels:
  • non-finite values differ in any way (e.g. one is "nan" and another is not)
  • finite values differ by too much, as defined by atol and rtol
TypeErrorif the dimensions of image0, image1 and skipMask do not match, or any are not of a numeric data type.

Definition at line 75 of file testUtils.py.

◆ assertImagesEqual()

def lsst.afw.image.testUtils.assertImagesEqual ( args,
**  kwds 
)

Assert that two images are exactly equal, including non-finite values.

All arguments are forwarded to assertAnglesAlmostEqual aside from atol and rtol, which are set to zero.

Definition at line 118 of file testUtils.py.

◆ assertMaskedImagesAlmostEqual()

def lsst.afw.image.testUtils.assertMaskedImagesAlmostEqual (   testCase,
  maskedImage0,
  maskedImage1,
  doImage = True,
  doMask = True,
  doVariance = True,
  skipMask = None,
  rtol = 1.0e-05,
  atol = 1e-08,
  msg = "Masked images differ" 
)

Assert that two masked images are nearly equal, including non-finite values.

Parameters
[in]testCaseunittest.TestCase instance the test is part of; an object supporting one method: fail(self, msgStr)
[in]maskedImage0masked image 0 (an lsst.afw.image.MaskedImage or collection of three transposed numpy arrays: image, mask, variance)
[in]maskedImage1masked image 1 (an lsst.afw.image.MaskedImage or collection of three transposed numpy arrays: image, mask, variance)
[in]doImagecompare image planes if True
[in]doMaskcompare mask planes if True
[in]doVariancecompare variance planes if True
[in]skipMaskmask of pixels to skip, or None to compare all pixels; an lsst.afw.image.Mask, lsst.afw.image.Image, or transposed numpy array; all non-zero pixels are skipped
[in]rtolmaximum allowed relative tolerance; more info below
[in]atolmaximum allowed absolute tolerance; more info below
[in]msgexception message prefix; details of the error are appended after ": "

The mask planes must match exactly. The image and variance planes are nearly equal if all pixels obey: |val1 - val0| <= rtol*|val1| + atol or, for float types, if nan/inf/-inf pixels match.

Warning
the comparison equation is not symmetric, so in rare cases the assertion may give different results depending on which masked image comes first.
the axes of numpy arrays are transposed with respect to MaskedImage data. Thus for example if maskedImage0 and maskedImage1 are both lsst.afw.image.MaskedImageD with dimensions (2, 3) and skipMask is a numpy array, then skipMask must have shape (3, 2).
Exceptions
self.failureException(usually AssertionError) if any of the following are true for un-skipped pixels:
  • non-finite image or variance values differ in any way (e.g. one is "nan" and another is not)
  • finite values differ by too much, as defined by atol and rtol
  • mask pixels differ at all
TypeErrorif the dimensions of maskedImage0, maskedImage1 and skipMask do not match, either image or variance plane is not of a numeric data type, either mask plane is not of an integer type (unsigned or signed), or skipMask is not of a numeric data type.

Definition at line 157 of file testUtils.py.

◆ assertMaskedImagesEqual()

def lsst.afw.image.testUtils.assertMaskedImagesEqual ( args,
**  kwds 
)

Assert that two masked images are exactly equal, including non-finite values.

All arguments are forwarded to assertMaskedImagesAlmostEqual aside from atol and rtol, which are set to zero.

Definition at line 247 of file testUtils.py.

◆ assertMasksEqual()

def lsst.afw.image.testUtils.assertMasksEqual (   testCase,
  mask0,
  mask1,
  skipMask = None,
  msg = "Masks differ" 
)

Assert that two masks are equal.

Parameters
[in]testCaseunittest.TestCase instance the test is part of; an object supporting one method: fail(self, msgStr)
[in]mask0mask 0, an lsst.afw.image.Mask, lsst.afw.image.Image, or transposed numpy array (see warning)
[in]mask1mask 1, an lsst.afw.image.Mask, lsst.afw.image.Image, or transposed numpy array (see warning)
[in]skipMaskmask of pixels to skip, or None to compare all pixels; an lsst.afw.image.Mask, lsst.afw.image.Image, or transposed numpy array (see warning); all non-zero pixels are skipped
[in]msgexception message prefix; details of the error are appended after ": "
Warning
the axes of numpy arrays are transposed with respect to Mask and Image. Thus for example if mask0 and mask1 are both lsst.afw.image.Mask with dimensions (2, 3) and skipMask is a numpy array, then skipMask must have shape (3, 2).
Exceptions
self.failureException(usually AssertionError) if any any un-skipped pixels differ
TypeErrorif the dimensions of mask0, mask1 and skipMask do not match, or any are not of a numeric data type.

Definition at line 128 of file testUtils.py.

◆ imagesDiffer()

def lsst.afw.image.testUtils.imagesDiffer (   image0,
  image1,
  skipMask = None,
  rtol = 1.0e-05,
  atol = 1e-08 
)

Compare the pixels of two image or mask arrays; return True if close, False otherwise.

Parameters
[in]image0image 0, an lsst.afw.image.Image, lsst.afw.image.Mask, or transposed numpy array (see warning)
[in]image1image 1, an lsst.afw.image.Image, lsst.afw.image.Mask, or transposed numpy array (see warning)
[in]skipMaskmask of pixels to skip, or None to compare all pixels; an lsst.afw.image.Mask, lsst.afw.image.Image, or transposed numpy array (see warning); all non-zero pixels are skipped
[in]rtolmaximum allowed relative tolerance; more info below
[in]atolmaximum allowed absolute tolerance; more info below

The images are nearly equal if all pixels obey: |val1 - val0| <= rtol*|val1| + atol or, for float types, if nan/inf/-inf pixels match.

Warning
the comparison equation is not symmetric, so in rare cases the assertion may give different results depending on which image comes first.
the axes of numpy arrays are transposed with respect to Image and Mask data. Thus for example if image0 and image1 are both lsst.afw.image.ImageD with dimensions (2, 3) and skipMask is a numpy array, then skipMask must have shape (3, 2).
Returns
a string which is non-empty if the images differ
Exceptions
TypeErrorif the dimensions of image0, image1 and skipMask do not match, or any are not of a numeric data type.

Definition at line 256 of file testUtils.py.

◆ makeGaussianNoiseMaskedImage()

def lsst.afw.image.testUtils.makeGaussianNoiseMaskedImage (   dimensions,
  sigma,
  variance = 1.0 
)
Make a gaussian noise MaskedImageF

Inputs:
- dimensions: dimensions of output array (cols, rows)
- sigma; sigma of image plane's noise distribution
- variance: constant value for variance plane

Definition at line 35 of file testUtils.py.

◆ makeRampImage()

def lsst.afw.image.testUtils.makeRampImage (   bbox,
  start = 0,
  stop = None,
  imageClass = ImageF 
)

Make an image whose values are a linear ramp.

Parameters
[in]bboxbounding box of image (an lsst.geom.Box2I)
[in]startstarting ramp value, inclusive
[in]stopending ramp value, inclusive; if None, increase by integer values
[in]imageClasstype of image (e.g. lsst.afw.image.ImageF)

Definition at line 52 of file testUtils.py.