QuickFrameMeasurementTask#
- class lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask(config, *, display=None, **kwargs)#
Bases:
TaskWARNING: 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#
- config
lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTaskConfig Configuration class for the QuickFrameMeasurementTask.
- display
lsst.afw.display.Display, optional The display to use for showing the images, detections and centroids.
Returns#
- result
lsst.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#
- exp
lsst.afw.image.Exposure The exposure on which to operate
- centroid
tupleoffloat Location of the centroid in pixel coordinates
- scrNum
int Number of the source in the source catalog. Only used if the check is failed, for debug purposes.
- percentile
float 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
- exp
- 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#
- exp
lsst.afw.image.Exposure Image in which to detect objects.
- nSigma
float nSigma above image’s stddev at which to set the detection threshold.
- nPixMin
int Minimum number of pixels for detection.
- grow
int Grow the detected footprint by this many pixels.
Returns#
- footPrintSet
lsst.afw.detection.FootprintSet FootprintSet containing the detections.
- exp
- 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#
- exp
lsst.afw.image.Exposure The exposure in which to find and measure the brightest star.
- donutDiameter
intorfloat, 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.
- doDisplay
bool Display the image and found sources. A diplay object must have been passed to the task constructor.
Returns#
- result
lsst.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.
- exp
- config