LSST Applications  21.0.0-147-g0e635eb1+1acddb5be5,22.0.0+052faf71bd,22.0.0+1ea9a8b2b2,22.0.0+6312710a6c,22.0.0+729191ecac,22.0.0+7589c3a021,22.0.0+9f079a9461,22.0.1-1-g7d6de66+b8044ec9de,22.0.1-1-g87000a6+536b1ee016,22.0.1-1-g8e32f31+6312710a6c,22.0.1-10-gd060f87+016f7cdc03,22.0.1-12-g9c3108e+df145f6f68,22.0.1-16-g314fa6d+c825727ab8,22.0.1-19-g93a5c75+d23f2fb6d8,22.0.1-19-gb93eaa13+aab3ef7709,22.0.1-2-g8ef0a89+b8044ec9de,22.0.1-2-g92698f7+9f079a9461,22.0.1-2-ga9b0f51+052faf71bd,22.0.1-2-gac51dbf+052faf71bd,22.0.1-2-gb66926d+6312710a6c,22.0.1-2-gcb770ba+09e3807989,22.0.1-20-g32debb5+b8044ec9de,22.0.1-23-gc2439a9a+fb0756638e,22.0.1-3-g496fd5d+09117f784f,22.0.1-3-g59f966b+1e6ba2c031,22.0.1-3-g849a1b8+f8b568069f,22.0.1-3-gaaec9c0+c5c846a8b1,22.0.1-32-g5ddfab5d3+60ce4897b0,22.0.1-4-g037fbe1+64e601228d,22.0.1-4-g8623105+b8044ec9de,22.0.1-5-g096abc9+d18c45d440,22.0.1-5-g15c806e+57f5c03693,22.0.1-7-gba73697+57f5c03693,master-g6e05de7fdc+c1283a92b8,master-g72cdda8301+729191ecac,w.2021.39
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: