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 Member Functions | Static Public Attributes | List of all members
lsst.pipe.tasks.scaleZeroPoint.SpatialScaleZeroPointTask Class Reference
Inheritance diagram for lsst.pipe.tasks.scaleZeroPoint.SpatialScaleZeroPointTask:
lsst.pipe.tasks.scaleZeroPoint.ScaleZeroPointTask

Public Member Functions

def __init__ (self, *args, **kwargs)
 
def run (self, exposure, dataRef)
 
def computeImageScaler (self, exposure, dataRef)
 
def getPhotoCalib (self)
 
def scaleFromPhotoCalib (self, calib)
 
def scaleFromFluxMag0 (self, fluxMag0)
 

Static Public Attributes

 ConfigClass = SpatialScaleZeroPointConfig
 

Detailed Description

Compute spatially varying scale factor to scale exposures to a desired photometric zero point

Definition at line 215 of file scaleZeroPoint.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.pipe.tasks.scaleZeroPoint.SpatialScaleZeroPointTask.__init__ (   self,
args,
**  kwargs 
)
Construct a ScaleZeroPointTask

Reimplemented from lsst.pipe.tasks.scaleZeroPoint.ScaleZeroPointTask.

Definition at line 221 of file scaleZeroPoint.py.

221  def __init__(self, *args, **kwargs):
222  ScaleZeroPointTask.__init__(self, *args, **kwargs)
223  self.makeSubtask("selectFluxMag0")
224 

Member Function Documentation

◆ computeImageScaler()

def lsst.pipe.tasks.scaleZeroPoint.SpatialScaleZeroPointTask.computeImageScaler (   self,
  exposure,
  dataRef 
)
Compute image scaling object for a given exposure.

@param[in] exposure: exposure for which scaling is desired. Only wcs and bbox are used.
@param[in] dataRef: dataRef of exposure
                    dataRef.dataId used to retrieve all applicable fluxMag0's from a database.
@return a SpatialImageScaler

Reimplemented from lsst.pipe.tasks.scaleZeroPoint.ScaleZeroPointTask.

Definition at line 241 of file scaleZeroPoint.py.

241  def computeImageScaler(self, exposure, dataRef):
242  """Compute image scaling object for a given exposure.
243 
244  @param[in] exposure: exposure for which scaling is desired. Only wcs and bbox are used.
245  @param[in] dataRef: dataRef of exposure
246  dataRef.dataId used to retrieve all applicable fluxMag0's from a database.
247  @return a SpatialImageScaler
248  """
249 
250  wcs = exposure.getWcs()
251 
252  fluxMagInfoList = self.selectFluxMag0.run(dataRef.dataId).fluxMagInfoList
253 
254  xList = []
255  yList = []
256  scaleList = []
257 
258  for fluxMagInfo in fluxMagInfoList:
259  # find center of field in tract coordinates
260  if not fluxMagInfo.coordList:
261  raise RuntimeError("no x,y data for fluxMagInfo")
262  ctr = geom.Extent2D()
263  for coord in fluxMagInfo.coordList:
264  # accumulate x, y
265  ctr += geom.Extent2D(wcs.skyToPixel(coord))
266  # and find average x, y as the center of the chip
267  ctr = geom.Point2D(ctr / len(fluxMagInfo.coordList))
268  xList.append(ctr.getX())
269  yList.append(ctr.getY())
270  scaleList.append(self.scaleFromFluxMag0(fluxMagInfo.fluxMag0).scale)
271 
272  self.log.info("Found %d flux scales for interpolation: %s",
273  len(scaleList), [f"{s:%0.4f}" for s in scaleList])
274  return SpatialImageScaler(
275  interpStyle=self.config.interpStyle,
276  xList=xList,
277  yList=yList,
278  scaleList=scaleList,
279  )
def run(self, coaddExposures, bbox, wcs)
Definition: getTemplate.py:603

◆ getPhotoCalib()

def lsst.pipe.tasks.scaleZeroPoint.ScaleZeroPointTask.getPhotoCalib (   self)
inherited
Get desired PhotoCalib

@return calibration (lsst.afw.image.PhotoCalib) with fluxMag0 set appropriately for config.zeroPoint

Definition at line 177 of file scaleZeroPoint.py.

177  def getPhotoCalib(self):
178  """Get desired PhotoCalib
179 
180  @return calibration (lsst.afw.image.PhotoCalib) with fluxMag0 set appropriately for config.zeroPoint
181  """
182  return self._photoCalib
183 

◆ run()

def lsst.pipe.tasks.scaleZeroPoint.SpatialScaleZeroPointTask.run (   self,
  exposure,
  dataRef 
)
Scale the specified exposure to the desired photometric zeropoint

@param[in,out] exposure: exposure to scale; masked image is scaled in place
@param[in] dataRef: dataRef for exposure

@return a pipeBase.Struct containing:
- imageScaler: the image scaling object used to scale exposure

Reimplemented from lsst.pipe.tasks.scaleZeroPoint.ScaleZeroPointTask.

Definition at line 225 of file scaleZeroPoint.py.

225  def run(self, exposure, dataRef):
226  """Scale the specified exposure to the desired photometric zeropoint
227 
228  @param[in,out] exposure: exposure to scale; masked image is scaled in place
229  @param[in] dataRef: dataRef for exposure
230 
231  @return a pipeBase.Struct containing:
232  - imageScaler: the image scaling object used to scale exposure
233  """
234  imageScaler = self.computeImageScaler(exposure=exposure, dataRef=dataRef)
235  mi = exposure.getMaskedImage()
236  imageScaler.scaleMaskedImage(mi)
237  return pipeBase.Struct(
238  imageScaler=imageScaler,
239  )
240 

◆ scaleFromFluxMag0()

def lsst.pipe.tasks.scaleZeroPoint.ScaleZeroPointTask.scaleFromFluxMag0 (   self,
  fluxMag0 
)
inherited
Compute the scale for the specified fluxMag0

This is a wrapper around scaleFromPhotoCalib, which see for more information

@param[in] fluxMag0
@return a pipeBase.Struct containing:
- scale, as described in scaleFromPhotoCalib.

Definition at line 202 of file scaleZeroPoint.py.

202  def scaleFromFluxMag0(self, fluxMag0):
203  """Compute the scale for the specified fluxMag0
204 
205  This is a wrapper around scaleFromPhotoCalib, which see for more information
206 
207  @param[in] fluxMag0
208  @return a pipeBase.Struct containing:
209  - scale, as described in scaleFromPhotoCalib.
210  """
211  calib = afwImage.makePhotoCalibFromCalibZeroPoint(fluxMag0, 0.0)
212  return self.scaleFromPhotoCalib(calib)
213 
214 
std::shared_ptr< PhotoCalib > makePhotoCalibFromCalibZeroPoint(double instFluxMag0, double instFluxMag0Err)
Construct a PhotoCalib from the deprecated Calib-style instFluxMag0/instFluxMag0Err values.
Definition: PhotoCalib.cc:613

◆ scaleFromPhotoCalib()

def lsst.pipe.tasks.scaleZeroPoint.ScaleZeroPointTask.scaleFromPhotoCalib (   self,
  calib 
)
inherited
Compute the scale for the specified PhotoCalib

Compute scale, such that if pixelCalib describes the photometric zeropoint of a pixel
then the following scales that pixel to the photometric zeropoint specified by config.zeroPoint:
    scale = computeScale(pixelCalib)
    pixel *= scale

@return a pipeBase.Struct containing:
- scale, as described above.

@note: returns a struct to leave room for scaleErr in a future implementation.

Definition at line 184 of file scaleZeroPoint.py.

184  def scaleFromPhotoCalib(self, calib):
185  """Compute the scale for the specified PhotoCalib
186 
187  Compute scale, such that if pixelCalib describes the photometric zeropoint of a pixel
188  then the following scales that pixel to the photometric zeropoint specified by config.zeroPoint:
189  scale = computeScale(pixelCalib)
190  pixel *= scale
191 
192  @return a pipeBase.Struct containing:
193  - scale, as described above.
194 
195  @note: returns a struct to leave room for scaleErr in a future implementation.
196  """
197  fluxAtZeroPoint = calib.magnitudeToInstFlux(self.config.zeroPoint)
198  return pipeBase.Struct(
199  scale=1.0 / fluxAtZeroPoint,
200  )
201 

Member Data Documentation

◆ ConfigClass

lsst.pipe.tasks.scaleZeroPoint.SpatialScaleZeroPointTask.ConfigClass = SpatialScaleZeroPointConfig
static

Definition at line 218 of file scaleZeroPoint.py.


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