lsst.pipe.tasks g3de15ee5c7+21d867f780
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Static Protected Attributes | List of all members
lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask Class Reference
Inheritance diagram for lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask:

Public Member Functions

 __init__ (self, config, *display=None, **kwargs)
 
 run (self, exp, *donutDiameter=None, doDisplay=False)
 

Static Public Member Functions

 detectObjectsInExp (exp, nSigma, nPixMin, grow=0)
 
 checkResult (exp, centroid, srcNum, percentile)
 

Public Attributes

 display
 
 centroidName
 
 shapeName
 
 schema
 
 control
 
 centroider
 
 sdssShape
 
 shaper
 
 apFluxControl
 
 apFluxer
 
 table
 
 plateScale
 

Static Public Attributes

 ConfigClass = QuickFrameMeasurementTaskConfig
 

Protected Member Functions

 _calcBrightestObjSrcNum (self, objData)
 
 _measureFp (self, fp, exp)
 
 _getDataFromSrcRecord (self, src)
 
 _run (self, exp, *donutDiameter=None, doDisplay=False)
 

Static Protected Member Functions

 _calcMedianXxYy (objData)
 
 _getCenterOfMass (exp, nominalCentroid, boxSize)
 
 _getDataFromFootprintOnly (fp, exp)
 
 _measurementResultToDict (measurementResult)
 
 _makeEmptyReturnStruct ()
 

Static Protected Attributes

str _DefaultName = 'quickFrameMeasurementTask'
 

Detailed Description

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
----------
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.

Definition at line 98 of file quickFrameMeasurement.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.__init__ ( self,
config,
* display = None,
** kwargs )

Definition at line 144 of file quickFrameMeasurement.py.

Member Function Documentation

◆ _calcBrightestObjSrcNum()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask._calcBrightestObjSrcNum ( self,
objData )
protected
Find the brightest source which passes the cuts among the sources.

Parameters
----------
objData : `dict` of `dict`
    Dictionary, keyed by source number, containing the measurements.

Returns
-------
srcNum : `int`
    The source number of the brightest source which passes the cuts.

Definition at line 270 of file quickFrameMeasurement.py.

◆ _calcMedianXxYy()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask._calcMedianXxYy ( objData)
staticprotected
Return the median ixx and iyy for object in the image.

Definition at line 229 of file quickFrameMeasurement.py.

◆ _getCenterOfMass()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask._getCenterOfMass ( exp,
nominalCentroid,
boxSize )
staticprotected
Get the centre of mass around a point in the image.

Parameters
----------
exp : `lsst.afw.image.Exposure`
    The exposure in question.
nominalCentroid : `tuple` of `float`
    Nominal location of the centroid in pixel coordinates.
boxSize : `int`
    The size of the box around the nominalCentroid in which to measure
    the centre of mass.

Returns
-------
com : `tuple` of `float`
    The locaiton of the centre of mass of the brightest source in pixel
    coordinates.

Definition at line 237 of file quickFrameMeasurement.py.

◆ _getDataFromFootprintOnly()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask._getDataFromFootprintOnly ( fp,
exp )
staticprotected
Get the shape, centroid and flux from a footprint.

Parameters
----------
fp : `lsst.afw.detection.Footprint`
    The footprint to measure.
exp : `lsst.afw.image.Exposure`
    The footprint's parent exposure.

Returns
-------
srcData : `lsst.pipe.base.Struct`
    The struct containing the extracted measurements.

Definition at line 382 of file quickFrameMeasurement.py.

◆ _getDataFromSrcRecord()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask._getDataFromSrcRecord ( self,
src )
protected
Extract the shapes and centroids from a source record.

Parameters
----------
src : `lsst.afw.table.SourceRecord`
    The source record from which to extract the measurements.

Returns
-------
srcData : `lsst.pipe.base.Struct`
    The struct containing the extracted measurements.

Definition at line 353 of file quickFrameMeasurement.py.

◆ _makeEmptyReturnStruct()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask._makeEmptyReturnStruct ( )
staticprotected
Make the default/template return struct, with defaults to False/nan.

Returns
-------
objData : `lsst.pipe.base.Struct`
    The default template return structure.

Definition at line 433 of file quickFrameMeasurement.py.

◆ _measureFp()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask._measureFp ( self,
fp,
exp )
protected
Run the measurements on a footprint.

Parameters
----------
fp : `lsst.afw.detection.Footprint`
    The footprint to measure.
exp : `lsst.afw.image.Exposure`
    The footprint's parent exposure.

Returns
-------
src : `lsst.afw.table.SourceRecord`
    The source record containing the measurements.

Definition at line 331 of file quickFrameMeasurement.py.

◆ _measurementResultToDict()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask._measurementResultToDict ( measurementResult)
staticprotected
Convenience function to repackage measurement results to a dict.

Parameters
----------
measurementResult : `lsst.afw.table.SourceRecord`
    The source record to convert to a dict.

Returns
-------
objData : `dict`
    The dict containing the extracted data.

Definition at line 410 of file quickFrameMeasurement.py.

◆ _run()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask._run ( self,
exp,
* donutDiameter = None,
doDisplay = False )
protected
The actual run method, called by run()

Behaviour is documented in detail in the main run().

Definition at line 498 of file quickFrameMeasurement.py.

◆ checkResult()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.checkResult ( exp,
centroid,
srcNum,
percentile )
static
Perform a final check that centroid location is actually bright.

Parameters
----------
exp : `lsst.afw.image.Exposure`
    The exposure on which to operate
centroid : `tuple` of `float`
    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

Definition at line 198 of file quickFrameMeasurement.py.

◆ detectObjectsInExp()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.detectObjectsInExp ( exp,
nSigma,
nPixMin,
grow = 0 )
static
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.

Definition at line 170 of file quickFrameMeasurement.py.

◆ run()

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.run ( self,
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 : `int` 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.
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.

Definition at line 451 of file quickFrameMeasurement.py.

Member Data Documentation

◆ _DefaultName

str lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask._DefaultName = 'quickFrameMeasurementTask'
staticprotected

Definition at line 142 of file quickFrameMeasurement.py.

◆ apFluxControl

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.apFluxControl

Definition at line 162 of file quickFrameMeasurement.py.

◆ apFluxer

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.apFluxer

Definition at line 164 of file quickFrameMeasurement.py.

◆ centroider

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.centroider

Definition at line 159 of file quickFrameMeasurement.py.

◆ centroidName

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.centroidName

Definition at line 152 of file quickFrameMeasurement.py.

◆ ConfigClass

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.ConfigClass = QuickFrameMeasurementTaskConfig
static

Definition at line 141 of file quickFrameMeasurement.py.

◆ control

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.control

Definition at line 157 of file quickFrameMeasurement.py.

◆ display

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.display

Definition at line 148 of file quickFrameMeasurement.py.

◆ plateScale

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.plateScale

Definition at line 506 of file quickFrameMeasurement.py.

◆ schema

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.schema

Definition at line 154 of file quickFrameMeasurement.py.

◆ sdssShape

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.sdssShape

Definition at line 160 of file quickFrameMeasurement.py.

◆ shapeName

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.shapeName

Definition at line 153 of file quickFrameMeasurement.py.

◆ shaper

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.shaper

Definition at line 161 of file quickFrameMeasurement.py.

◆ table

lsst.pipe.tasks.quickFrameMeasurement.QuickFrameMeasurementTask.table

Definition at line 167 of file quickFrameMeasurement.py.


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