LSSTApplications  19.0.0-14-gb0260a2+72efe9b372,20.0.0+7927753e06,20.0.0+8829bf0056,20.0.0+995114c5d2,20.0.0+b6f4b2abd1,20.0.0+bddc4f4cbe,20.0.0-1-g253301a+8829bf0056,20.0.0-1-g2b7511a+0d71a2d77f,20.0.0-1-g5b95a8c+7461dd0434,20.0.0-12-g321c96ea+23efe4bbff,20.0.0-16-gfab17e72e+fdf35455f6,20.0.0-2-g0070d88+ba3ffc8f0b,20.0.0-2-g4dae9ad+ee58a624b3,20.0.0-2-g61b8584+5d3db074ba,20.0.0-2-gb780d76+d529cf1a41,20.0.0-2-ged6426c+226a441f5f,20.0.0-2-gf072044+8829bf0056,20.0.0-2-gf1f7952+ee58a624b3,20.0.0-20-geae50cf+e37fec0aee,20.0.0-25-g3dcad98+544a109665,20.0.0-25-g5eafb0f+ee58a624b3,20.0.0-27-g64178ef+f1f297b00a,20.0.0-3-g4cc78c6+e0676b0dc8,20.0.0-3-g8f21e14+4fd2c12c9a,20.0.0-3-gbd60e8c+187b78b4b8,20.0.0-3-gbecbe05+48431fa087,20.0.0-38-ge4adf513+a12e1f8e37,20.0.0-4-g97dc21a+544a109665,20.0.0-4-gb4befbc+087873070b,20.0.0-4-gf910f65+5d3db074ba,20.0.0-5-gdfe0fee+199202a608,20.0.0-5-gfbfe500+d529cf1a41,20.0.0-6-g64f541c+d529cf1a41,20.0.0-6-g9a5b7a1+a1cd37312e,20.0.0-68-ga3f3dda+5fca18c6a4,20.0.0-9-g4aef684+e18322736b,w.2020.45
LSSTDataManagementBasePackage
Classes | Functions
lsst.cp.pipe.cpCombine Namespace Reference

Classes

class  CalibCombineConfig
 
class  CalibCombineConnections
 
class  CalibCombineTask
 
class  CalibStatsConfig
 
class  CalibStatsTask
 

Functions

def VignetteExposure (exposure, polygon=None, doUpdateMask=True, maskPlane='BAD', doSetValue=False, vignetteValue=0.0, log=None)
 

Function Documentation

◆ VignetteExposure()

def lsst.cp.pipe.cpCombine.VignetteExposure (   exposure,
  polygon = None,
  doUpdateMask = True,
  maskPlane = 'BAD',
  doSetValue = False,
  vignetteValue = 0.0,
  log = None 
)
Apply vignetted polygon to image pixels.

Parameters
----------
exposure : `lsst.afw.image.Exposure`
    Image to be updated.
doUpdateMask : `bool`, optional
    Update the exposure mask for vignetted area?
maskPlane : `str`, optional,
    Mask plane to assign.
doSetValue : `bool`, optional
    Set image value for vignetted area?
vignetteValue : `float`, optional
    Value to assign.
log : `lsst.log.Log`, optional
    Log to write to.

Raises
------
RuntimeError
    Raised if no valid polygon exists.

Definition at line 528 of file cpCombine.py.

528 def VignetteExposure(exposure, polygon=None,
529  doUpdateMask=True, maskPlane='BAD',
530  doSetValue=False, vignetteValue=0.0,
531  log=None):
532  """Apply vignetted polygon to image pixels.
533 
534  Parameters
535  ----------
536  exposure : `lsst.afw.image.Exposure`
537  Image to be updated.
538  doUpdateMask : `bool`, optional
539  Update the exposure mask for vignetted area?
540  maskPlane : `str`, optional,
541  Mask plane to assign.
542  doSetValue : `bool`, optional
543  Set image value for vignetted area?
544  vignetteValue : `float`, optional
545  Value to assign.
546  log : `lsst.log.Log`, optional
547  Log to write to.
548 
549  Raises
550  ------
551  RuntimeError
552  Raised if no valid polygon exists.
553  """
554  polygon = polygon if polygon else exposure.getInfo().getValidPolygon()
555  if not polygon:
556  raise RuntimeError("Could not find valid polygon!")
557  log = log if log else Log.getLogger(__name__.partition(".")[2])
558 
559  fullyIlluminated = True
560  for corner in exposure.getBBox().getCorners():
561  if not polygon.contains(Point2D(corner)):
562  fullyIlluminated = False
563 
564  log.info("Exposure is fully illuminated? %s", fullyIlluminated)
565 
566  if not fullyIlluminated:
567  # Scan pixels.
568  mask = exposure.getMask()
569  numPixels = mask.getBBox().getArea()
570 
571  xx, yy = np.meshgrid(np.arange(0, mask.getWidth(), dtype=int),
572  np.arange(0, mask.getHeight(), dtype=int))
573 
574  vignMask = np.array([not polygon.contains(Point2D(x, y)) for x, y in
575  zip(xx.reshape(numPixels), yy.reshape(numPixels))])
576  vignMask = vignMask.reshape(mask.getHeight(), mask.getWidth())
577 
578  if doUpdateMask:
579  bitMask = mask.getPlaneBitMask(maskPlane)
580  maskArray = mask.getArray()
581  maskArray[vignMask] |= bitMask
582  if doSetValue:
583  imageArray = exposure.getImage().getArray()
584  imageArray[vignMask] = vignetteValue
585  log.info("Exposure contains %d vignetted pixels.",
586  np.count_nonzero(vignMask))
lsst.cp.pipe.cpCombine.VignetteExposure
def VignetteExposure(exposure, polygon=None, doUpdateMask=True, maskPlane='BAD', doSetValue=False, vignetteValue=0.0, log=None)
Definition: cpCombine.py:528
lsst::geom::Point2D
Point< double, 2 > Point2D
Definition: Point.h:324