QuickFrameMeasurementTask#

class lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask(config, *, display=None, **kwargs)#

Bases: Task

WARNING: An experimental new task with changable API! Do not rely on yet!

This task finds the centroid of the brightest source in a given CCD-image and returns its centroid and a rough estimate of the seeing/PSF.

It is designed for speed, such that it can be used in observing scripts to provide pointing offsets, allowing subsequent pointings to place a source at an exact pixel position.

The approach taken here is deliberately sub-optimal in the detection and measurement sense, with all optimisation being done for speed and robustness of the result.

A small set of unit tests exist for this task, which run automatically if afwdata is setup. These, however, are stricky unit tests, and will not catch algorithmic regressions. TODO: DM-29038 exists to merge a regression real test which runs against 1,000 LATISS images, but is therefore slow and requires access to the data.

Parameters#

configlsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTaskConfig

Configuration class for the QuickFrameMeasurementTask.

displaylsst.afw.display.Display, optional

The display to use for showing the images, detections and centroids.

Returns#

resultlsst.pipe.base.Struct

Return strucure containing whether the task was successful, the main source’s centroid, its the aperture fluxes, the ixx and iyy of the source, and the median ixx, iyy of the detections in the exposure. See run() method for further details.

Raises#

This task should never raise, as the run() method is enclosed in an except Exception block, so that it will never fail during observing. Failure modes should be limited to returning a return Struct() with the same structure as the success case, with all value set to np.nan but with result.success=False.

Methods Summary

checkResult(exp, centroid, srcNum, percentile)

Perform a final check that centroid location is actually bright.

detectObjectsInExp(exp, nSigma, nPixMin[, grow])

Run a very basic but fast threshold-based object detection on an exposure Return the footPrintSet for the objects in a postISR exposure.

run(exp, *[, donutDiameter, doDisplay])

Calculate position, flux and shape of the brightest star in an image.

Methods Documentation

static checkResult(exp, centroid, srcNum, percentile)#

Perform a final check that centroid location is actually bright.

Parameters#

explsst.afw.image.Exposure

The exposure on which to operate

centroidtuple of float

Location of the centroid in pixel coordinates

scrNumint

Number of the source in the source catalog. Only used if the check is failed, for debug purposes.

percentilefloat

Image’s percentile above which the pixel containing the centroid must be in order to pass the check.

Raises#

ValueError

Raised if the centroid’s pixel is not above the percentile threshold

static detectObjectsInExp(exp, nSigma, nPixMin, grow=0)#

Run a very basic but fast threshold-based object detection on an exposure Return the footPrintSet for the objects in a postISR exposure.

Parameters#

explsst.afw.image.Exposure

Image in which to detect objects.

nSigmafloat

nSigma above image’s stddev at which to set the detection threshold.

nPixMinint

Minimum number of pixels for detection.

growint

Grow the detected footprint by this many pixels.

Returns#

footPrintSetlsst.afw.detection.FootprintSet

FootprintSet containing the detections.

run(exp, *, donutDiameter=None, doDisplay=False)#

Calculate position, flux and shape of the brightest star in an image.

Given an an assembled (and at least minimally ISRed exposure), quickly and robustly calculate the centroid of the brightest star in the image.

Parameters#

explsst.afw.image.Exposure

The exposure in which to find and measure the brightest star.

donutDiameterint or float, optional

The expected diameter of donuts in pixels for use in the centre of mass centroid measurement. If None is provided, the config option is used.

doDisplaybool

Display the image and found sources. A diplay object must have been passed to the task constructor.

Returns#

resultlsst.pipe.base.Struct
Struct containing:

Whether the task ran successfully and found the object (bool) The object’s centroid (float, float) The object’s ixx, iyy (float, float) The object’s 70 pixel aperture flux (float) The object’s 25 pixel aperture flux (float) The images’s median ixx, iyy (float, float)

If unsuccessful, the success field is False and all other results are np.nan of the expected shape.

Notes#

Because of this task’s involvement in observing scripts, the run method should never raise. Failure modes are noted by returning a Struct with the same structure as the success case, with all value set to np.nan and result.success=False.