LSST Applications g06d8191974+b5247657d3,g180d380827+b23588344e,g2079a07aa2+86d27d4dc4,g2305ad1205+0130fb9023,g29320951ab+7714a6b20a,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g33d1c0ed96+0e5473021a,g3a166c0a6a+0e5473021a,g3ddfee87b4+8783ab7716,g48712c4677+72a8b1060b,g487adcacf7+bbaada240a,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ecccb6240b,g5a732f18d5+53520f316c,g5ea96fc03c+33ab2bc355,g64a986408d+b5247657d3,g858d7b2824+b5247657d3,g8a8a8dda67+585e252eca,g99cad8db69+1453026da9,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,gb0e22166c9+60f28cb32d,gba4ed39666+c2a2e4ac27,gbb8dafda3b+3751ca9c65,gc120e1dc64+c91d1388df,gc28159a63d+0e5473021a,gc3e9b769f7+241adb7c58,gcf0d15dbbd+8783ab7716,gdaeeff99f8+f9a426f77a,ge6526c86ff+acdbe9a537,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gff1a9f87cc+b5247657d3,w.2024.17
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
lsst.meas.base.plugins.SingleFrameMomentsClassifierPlugin Class Reference
Inheritance diagram for lsst.meas.base.plugins.SingleFrameMomentsClassifierPlugin:
lsst.meas.base.sfm.SingleFramePlugin lsst.meas.base.baseMeasurement.BaseMeasurementPlugin lsst.meas.base.pluginsBase.BasePlugin

Public Member Functions

 getExecutionOrder (cls)
 
 __init__ (self, config, name, schema, metadata)
 
None measure (self, measRecord, exposure)
 
None fail (self, measRecord, error=None)
 

Public Attributes

 key
 
 flag
 
 FAILURE_BAD_SHAPE
 

Static Public Attributes

 ConfigClass = SingleFrameMomentsClassifierConfig
 
int FAILURE_BAD_SHAPE = 1
 

Detailed Description

Classify objects by comparing their moments-based trace radius to PSF's.

The plugin computes chi^2 as ((T_obj - T_psf)/T_psf^exponent)^2, where
T_obj is the sum of Ixx and Iyy moments of the object, and T_psf is the
sum of Ixx and Iyy moments of the PSF. The exponent is configurable.
The measure of being a galaxy is then 1 - exp(-0.5*chi^2).

Parameters
----------
config : `MomentsClassifierConfig`
    Plugin configuration.
name : `str`
    Plugin name.
schema : `~lsst.afw.table.Schema`
    The schema for the measurement output catalog. New fields will be
    added to hold measurements produced by this plugin.
metadata : `~lsst.daf.base.PropertySet`
    Plugin metadata that will be attached to the output catalog.

Notes
-----
The ``measure`` method of the plugin requires a value for the ``exposure``
argument to maintain consistent API, but it is not used in the measurement.

Definition at line 660 of file plugins.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.meas.base.plugins.SingleFrameMomentsClassifierPlugin.__init__ ( self,
config,
name,
schema,
metadata )

Reimplemented from lsst.meas.base.sfm.SingleFramePlugin.

Definition at line 696 of file plugins.py.

696 def __init__(self, config, name, schema, metadata):
697 SingleFramePlugin.__init__(self, config, name, schema, metadata)
698 self.key = schema.addField(name + "_value",
699 type="D",
700 doc="Measure of being a galaxy based on trace of second order moments",
701 )
702 self.flag = schema.addField(name + "_flag", type="Flag", doc="Moments-based classification failed")
703

Member Function Documentation

◆ fail()

None lsst.meas.base.plugins.SingleFrameMomentsClassifierPlugin.fail ( self,
measRecord,
error = None )
Record a failure of the `measure` or `measureN` method.

Parameters
----------
measRecord : `lsst.afw.table.SourceRecord`
    Table record describing the source being measured.
error : `MeasurementError`, optional
    Only provided if the measurement failed due to a
    `MeasurementError` being raised; otherwise, will be `None`.

Notes
-----
When the plugin raises an exception, framework will call
`BasePlugin.fail` to allow the plugin to set its failure flag
field(s).  When `BasePlugin.measureN` raises an exception,
`BasePlugin.fail` will be called repeatedly with all the records that
were being measured.

If the exception is an `MeasurementError`, it will be passed as the
error argument; in all other cases the error argument will be `None`,
and the failure will be logged by the measurement framework as a
warning.

Reimplemented from lsst.meas.base.pluginsBase.BasePlugin.

Definition at line 728 of file plugins.py.

728 def fail(self, measRecord, error=None) -> None:
729 # Docstring inherited.
730 measRecord.set(self.key, np.nan)
731 measRecord.set(self.flag, True)
732
733

◆ getExecutionOrder()

lsst.meas.base.plugins.SingleFrameMomentsClassifierPlugin.getExecutionOrder ( cls)
Get the relative execution order of this plugin.

Must be reimplemented as a class method by concrete derived classes.

Reimplemented from lsst.meas.base.pluginsBase.BasePlugin.

Definition at line 693 of file plugins.py.

693 def getExecutionOrder(cls):
694 return cls.FLUX_ORDER
695

◆ measure()

None lsst.meas.base.plugins.SingleFrameMomentsClassifierPlugin.measure ( self,
measRecord,
exposure )
Measure the properties of a source on a single image.

The image may be from a single epoch, or it may be a coadd.

Parameters
----------
measRecord : `lsst.afw.table.SourceRecord`
    Record describing the object being measured. Previously-measured
    quantities may be retrieved from here, and it will be updated
    in-place tih the outputs of this plugin.
exposure : `lsst.afw.image.ExposureF`
    The pixel data to be measured, together with the associated PSF,
    WCS, etc. All other sources in the image should have been replaced
    by noise according to deblender outputs.

Reimplemented from lsst.meas.base.sfm.SingleFramePlugin.

Definition at line 704 of file plugins.py.

704 def measure(self, measRecord, exposure) -> None:
705 # Docstring inherited.
706
707 if measRecord.getShapeFlag():
708 raise MeasurementError(
709 "Shape flag is set. Required for " + self.name + " algorithm",
710 self.FAILURE_BAD_SHAPE,
711 )
712
713 shape = measRecord.getShape()
714 psf_shape = measRecord.getPsfShape()
715
716 ixx = shape.getIxx()
717 iyy = shape.getIyy()
718 ixx_psf = psf_shape.getIxx()
719 iyy_psf = psf_shape.getIyy()
720
721 object_t = ixx + iyy
722 psf_t = ixx_psf + iyy_psf
723
724 chi_sq = ((object_t - psf_t)/(psf_t**self.config.exponent))**2.
725 likelihood = 1. - np.exp(-0.5*chi_sq)
726 measRecord.set(self.key, likelihood)
727

Member Data Documentation

◆ ConfigClass

lsst.meas.base.plugins.SingleFrameMomentsClassifierPlugin.ConfigClass = SingleFrameMomentsClassifierConfig
static

Definition at line 686 of file plugins.py.

◆ FAILURE_BAD_SHAPE [1/2]

int lsst.meas.base.plugins.SingleFrameMomentsClassifierPlugin.FAILURE_BAD_SHAPE = 1
static

Definition at line 688 of file plugins.py.

◆ FAILURE_BAD_SHAPE [2/2]

lsst.meas.base.plugins.SingleFrameMomentsClassifierPlugin.FAILURE_BAD_SHAPE

Definition at line 710 of file plugins.py.

◆ flag

lsst.meas.base.plugins.SingleFrameMomentsClassifierPlugin.flag

Definition at line 702 of file plugins.py.

◆ key

lsst.meas.base.plugins.SingleFrameMomentsClassifierPlugin.key

Definition at line 698 of file plugins.py.


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