LSST Applications g063fba187b+fee0456c91,g0f08755f38+ea96e5a5a3,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g1a2382251a+90257ff92a,g20f6ffc8e0+ea96e5a5a3,g217e2c1bcf+937a289c59,g28da252d5a+daa7da44eb,g2bbee38e9b+253935c60e,g2bc492864f+253935c60e,g3156d2b45e+6e55a43351,g32e5bea42b+31359a2a7a,g347aa1857d+253935c60e,g35bb328faa+a8ce1bb630,g3a166c0a6a+253935c60e,g3b1af351f3+a8ce1bb630,g3e281a1b8c+c5dd892a6c,g414038480c+416496e02f,g41af890bb2+afe91b1188,g599934f4f4+0db33f7991,g7af13505b9+e36de7bce6,g80478fca09+da231ba887,g82479be7b0+a4516e59e3,g858d7b2824+ea96e5a5a3,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,ga5288a1d22+bc6ab8dfbd,gb58c049af0+d64f4d3760,gc28159a63d+253935c60e,gcab2d0539d+3f2b72788c,gcf0d15dbbd+4ea9c45075,gda6a2b7d83+4ea9c45075,gdaeeff99f8+1711a396fd,ge79ae78c31+253935c60e,gef2f8181fd+3031e3cf99,gf0baf85859+c1f95f4921,gfa517265be+ea96e5a5a3,gfa999e8aa5+17cd334064,w.2024.50
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Protected Member Functions | List of all members
lsst.afw.cameraGeom.utils.ButlerImage Class Reference
Inheritance diagram for lsst.afw.cameraGeom.utils.ButlerImage:
lsst.afw.cameraGeom.utils.FakeImageDataSource

Public Member Functions

 __init__ (self, butler=None, type="raw", isTrimmed=True, verbose=False, background=numpy.nan, callback=None, *args, **kwargs)
 
 getCcdImage (self, ccd, imageFactory=afwImage.ImageF, binSize=1, asMaskedImage=False)
 

Public Attributes

 isTrimmed
 
 type
 
 butler
 
 kwargs
 
 isRaw
 
 background
 
 verbose
 
 callback
 

Protected Member Functions

 _prepareImage (self, ccd, im, binSize, allowRotate=True)
 

Detailed Description

A class to return an Image of a given Ccd using the butler.

Parameters
----------
butler : `lsst.daf.butler.Butler` or `None`
    The butler to use. If `None`, an empty image is returned. Assumes that
    the instrument was specified during butler construction or is included
    in the ``kwargs`` parameter.
type : `str`
    The type of image to read (e.g. raw, bias, flat, calexp).
isTrimmed : `bool`
    If true, the showCamera command expects to be given trimmed images.
verbose : `bool`
    Be chatty (in particular, log any error messages from the butler)?
background : `float`
    The value of any pixels that lie outside the CCDs.
callback : callable
    A function called with (image, detector, butler) for every image, which
    returns the image to be displayed (e.g. rawCallback). The image must
    be of the correct size, allowing for the value of isTrimmed.
*args : `list`
    Passed to the base class constructor.
**kwargs : `dict`
    Passed to the butler.

Notes
-----
You can define a short named function as a callback::

    def callback(im, ccd, imageSource):
        return cameraGeom.utils.rawCallback(im, ccd, imageSource, correctGain=True)

Definition at line 399 of file utils.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.afw.cameraGeom.utils.ButlerImage.__init__ ( self,
butler = None,
type = "raw",
isTrimmed = True,
verbose = False,
background = numpy.nan,
callback = None,
* args,
** kwargs )

Reimplemented from lsst.afw.cameraGeom.utils.FakeImageDataSource.

Definition at line 432 of file utils.py.

434 callback=None, *args, **kwargs):
435 super().__init__(*args)
436 self.isTrimmed = isTrimmed
437 self.type = type
438 self.butler = butler
439 self.kwargs = kwargs
440 self.isRaw = False
441 self.background = background
442 self.verbose = verbose
443 self.callback = callback
444

Member Function Documentation

◆ _prepareImage()

lsst.afw.cameraGeom.utils.ButlerImage._prepareImage ( self,
ccd,
im,
binSize,
allowRotate = True )
protected

Definition at line 445 of file utils.py.

445 def _prepareImage(self, ccd, im, binSize, allowRotate=True):
446 if binSize > 1:
447 im = afwMath.binImage(im, binSize)
448
449 if allowRotate:
451 im, ccd.getOrientation().getNQuarter())
452
453 return im
454
std::shared_ptr< ImageT > rotateImageBy90(ImageT const &image, int nQuarter)
Rotate an image by an integral number of quarter turns.
std::shared_ptr< ImageT > binImage(ImageT const &inImage, int const binX, int const binY, lsst::afw::math::Property const flags=lsst::afw::math::MEAN)
Definition binImage.cc:44

◆ getCcdImage()

lsst.afw.cameraGeom.utils.ButlerImage.getCcdImage ( self,
ccd,
imageFactory = afwImage.ImageF,
binSize = 1,
asMaskedImage = False )
Return an image of the specified ccd, and also the (possibly updated) ccd

Reimplemented from lsst.afw.cameraGeom.utils.FakeImageDataSource.

Definition at line 455 of file utils.py.

455 def getCcdImage(self, ccd, imageFactory=afwImage.ImageF, binSize=1, asMaskedImage=False):
456 """Return an image of the specified ccd, and also the (possibly updated) ccd"""
457
458 log = _LOG.getChild("ButlerImage")
459
460 if self.isTrimmed:
461 bbox = ccd.getBBox()
462 else:
463 bbox = calcRawCcdBBox(ccd)
464
465 im = None
466 if self.butler is not None:
467 err = None
468 try:
469 im = self.butler.get(self.type, detector=ccd.getId(), **self.kwargs)
470 except FitsError as e:
471 err = IOError(e.args[0].split('\n')[0]) # It's a very chatty error
472 except Exception as e: # try a different dataId
473 err = e
474 else:
475 ccd = im.getDetector() # possibly modified by assembleCcdTask
476
477 if im:
478 if asMaskedImage:
479 im = im.getMaskedImage()
480 else:
481 im = im.getMaskedImage().getImage()
482 else:
483 if self.verbose:
484 # Lost by jupyterlab.
485 print(f"Reading {ccd.getId()}: {err}")
486
487 log.warning("Reading %s: %s", ccd.getId(), err)
488
489 if im is None:
490 return self._prepareImage(ccd, imageFactory(*bbox.getDimensions()), binSize), ccd
491
492 if self.type == "raw":
493 if hasattr(im, 'convertF'):
494 im = im.convertF()
495 if False and self.callback is None: # we need to trim the raw image
496 self.callback = rawCallback
497
498 allowRotate = True
499 if self.callback:
500 try:
501 im = self.callback(im, ccd, imageSource=self)
502 except Exception:
503 if self.verbose:
504 log.exception("callback failed.")
505 im = imageFactory(*bbox.getDimensions())
506 else:
507 allowRotate = False # the callback was responsible for any rotations
508
509 return self._prepareImage(ccd, im, binSize, allowRotate=allowRotate), ccd
510
511

Member Data Documentation

◆ background

lsst.afw.cameraGeom.utils.ButlerImage.background

Definition at line 441 of file utils.py.

◆ butler

lsst.afw.cameraGeom.utils.ButlerImage.butler

Definition at line 438 of file utils.py.

◆ callback

lsst.afw.cameraGeom.utils.ButlerImage.callback

Definition at line 443 of file utils.py.

◆ isRaw

lsst.afw.cameraGeom.utils.ButlerImage.isRaw

Definition at line 440 of file utils.py.

◆ isTrimmed

lsst.afw.cameraGeom.utils.ButlerImage.isTrimmed

Definition at line 436 of file utils.py.

◆ kwargs

lsst.afw.cameraGeom.utils.ButlerImage.kwargs

Definition at line 439 of file utils.py.

◆ type

lsst.afw.cameraGeom.utils.ButlerImage.type

Definition at line 437 of file utils.py.

◆ verbose

lsst.afw.cameraGeom.utils.ButlerImage.verbose

Definition at line 442 of file utils.py.


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