LSST Applications g0da5cf3356+25b44625d0,g17e5ecfddb+50a5ac4092,g1c76d35bf8+585f0f68a2,g295839609d+8ef6456700,g2e2c1a68ba+cc1f6f037e,g38293774b4+62d12e78cb,g3b44f30a73+2891c76795,g48ccf36440+885b902d19,g4b2f1765b6+0c565e8f25,g5320a0a9f6+bd4bf1dc76,g56364267ca+403c24672b,g56b687f8c9+585f0f68a2,g5c4744a4d9+78cd207961,g5ffd174ac0+bd4bf1dc76,g6075d09f38+3075de592a,g667d525e37+cacede5508,g6f3e93b5a3+da81c812ee,g71f27ac40c+cacede5508,g7212e027e3+eb621d73aa,g774830318a+18d2b9fa6c,g7985c39107+62d12e78cb,g79ca90bc5c+fa2cc03294,g881bdbfe6c+cacede5508,g91fc1fa0cf+82a115f028,g961520b1fb+2534687f64,g96f01af41f+f2060f23b6,g9ca82378b8+cacede5508,g9d27549199+78cd207961,gb065e2a02a+ad48cbcda4,gb1df4690d6+585f0f68a2,gb35d6563ee+62d12e78cb,gbc3249ced9+bd4bf1dc76,gbec6a3398f+bd4bf1dc76,gd01420fc67+bd4bf1dc76,gd59336e7c4+c7bb92e648,gf46e8334de+81c9a61069,gfed783d017+bd4bf1dc76,v25.0.1.rc3
LSST Data Management Base Package
Loading...
Searching...
No Matches
Classes | Functions
lsst.afw.image.exposure._multiband Namespace Reference

Classes

class  IncompleteDataError
 
class  MultibandExposure
 

Functions

def computePsfImage (psfModels, position, bands, useKernelImage=True)
 

Function Documentation

◆ computePsfImage()

def lsst.afw.image.exposure._multiband.computePsfImage (   psfModels,
  position,
  bands,
  useKernelImage = True 
)
Get a multiband PSF image

The PSF Kernel Image is computed for each band
and combined into a (filter, y, x) array.

Parameters
----------
psfList : `list` of `lsst.afw.detection.Psf`
    The list of PSFs in each band.
position : `Point2D` or `tuple`
    Coordinates to evaluate the PSF.
bands: `list` or `str`
        List of names for each band
Returns
-------
psfs: `np.ndarray`
    The multiband PSF image.

Definition at line 41 of file _multiband.py.

41def computePsfImage(psfModels, position, bands, useKernelImage=True):
42 """Get a multiband PSF image
43
44 The PSF Kernel Image is computed for each band
45 and combined into a (filter, y, x) array.
46
47 Parameters
48 ----------
49 psfList : `list` of `lsst.afw.detection.Psf`
50 The list of PSFs in each band.
51 position : `Point2D` or `tuple`
52 Coordinates to evaluate the PSF.
53 bands: `list` or `str`
54 List of names for each band
55 Returns
56 -------
57 psfs: `np.ndarray`
58 The multiband PSF image.
59 """
60 psfs = []
61 # Make the coordinates into a Point2D (if necessary)
62 if not isinstance(position, Point2D):
63 position = Point2D(position[0], position[1])
64
65 for bidx, psfModel in enumerate(psfModels):
66 try:
67 if useKernelImage:
68 psf = psfModel.computeKernelImage(position)
69 else:
70 psf = psfModel.computeImage(position)
71 psfs.append(psf)
72 except InvalidParameterError:
73 # This band failed to compute the PSF due to incomplete data
74 # at that location. This is unlikely to be a problem for Rubin,
75 # however the edges of some HSC COSMOS fields contain incomplete
76 # data in some bands, so we track this error to distinguish it
77 # from unknown errors.
78 msg = "Failed to compute PSF at {} in band {}"
79 raise IncompleteDataError(msg.format(position, bands[bidx])) from None
80
81 left = np.min([psf.getBBox().getMinX() for psf in psfs])
82 bottom = np.min([psf.getBBox().getMinY() for psf in psfs])
83 right = np.max([psf.getBBox().getMaxX() for psf in psfs])
84 top = np.max([psf.getBBox().getMaxY() for psf in psfs])
85 bbox = Box2I(Point2I(left, bottom), Point2I(right, top))
86 psfs = np.array([projectImage(psf, bbox).array for psf in psfs])
87 return psfs
88
89
A polymorphic base class for representing an image's Point Spread Function.
Definition: Psf.h:76