LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
lsst.meas.base.classification.CatalogCalculationClassificationPlugin Class Reference
Inheritance diagram for lsst.meas.base.classification.CatalogCalculationClassificationPlugin:
lsst.meas.base.catalogCalculation.CatalogCalculationPlugin lsst.meas.base.pluginsBase.BasePlugin

Public Member Functions

def getExecutionOrder (cls)
 
def __init__ (self, config, name, schema, metadata)
 
def calculate (self, measRecord)
 
def fail (self, measRecord, error=None)
 
def calculate (self, cat, **kwargs)
 
def getLogName (self)
 

Static Public Member Functions

def getTransformClass ()
 

Public Attributes

 keyProbability
 
 keyFlag
 
 config
 
 name
 
 logName
 

Static Public Attributes

 ConfigClass = CatalogCalculationClassificationConfig
 
 registry = PluginRegistry(CatalogCalculationPluginConfig)
 
string plugType = 'single'
 
float CENTROID_ORDER = 0.0
 
float SHAPE_ORDER = 1.0
 
float FLUX_ORDER = 2.0
 
float APCORR_ORDER = 3.0
 
float DEFAULT_CATALOGCALCULATION = 4.0
 

Detailed Description

Plugin which calculates a binary measure of source extendedness.

Extendedness is based on a simple cut of the ratio of the PSF flux to the
model flux.

Notes
-----
Because the fluxes on which this algorithm is based on are slot
measurements, they can be provided by different algorithms, and the
`~CatalogCalculationClassificationConfig.fluxRatio` threshold used by this
algorithm should generally be set differently for different algorithms.
To do this, plot the difference between the PSF magnitude and the model
magnitude vs. the PSF magnitude, and look for where the cloud of galaxies
begins.

Definition at line 49 of file classification.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.meas.base.classification.CatalogCalculationClassificationPlugin.__init__ (   self,
  config,
  name,
  schema,
  metadata 
)

Reimplemented from lsst.meas.base.catalogCalculation.CatalogCalculationPlugin.

Definition at line 72 of file classification.py.

72  def __init__(self, config, name, schema, metadata):
73  CatalogCalculationPlugin.__init__(self, config, name, schema, metadata)
74  self.keyProbability = schema.addField(name + "_value", type="D",
75  doc="Set to 1 for extended sources, 0 for point sources.")
76  self.keyFlag = schema.addField(name + "_flag", type="Flag", doc="Set to 1 for any fatal failure.")
77 

Member Function Documentation

◆ calculate() [1/2]

def lsst.meas.base.catalogCalculation.CatalogCalculationPlugin.calculate (   self,
  cat,
**  kwargs 
)
inherited
Perform the calculation specified by this plugin.

This method can either be used to operate on a single catalog record
or a whole catalog, populating it with the output defined by this
plugin.

Note that results may be added to catalog records as new columns, or
may result in changes to existing values.

Parameters
----------
cat : `lsst.afw.table.SourceCatalog` or `lsst.afw.table.SourceRecord`
    May either be a `~lsst.afw.table.SourceCatalog` or a single
    `~lsst.afw.table.SourceRecord`, depending on the plugin type. Will
    be updated in place to contain the results of plugin execution.
**kwargs
    Any additional keyword arguments that may be passed to the plugin.

Definition at line 98 of file catalogCalculation.py.

98  def calculate(self, cat, **kwargs):
99  """Perform the calculation specified by this plugin.
100 
101  This method can either be used to operate on a single catalog record
102  or a whole catalog, populating it with the output defined by this
103  plugin.
104 
105  Note that results may be added to catalog records as new columns, or
106  may result in changes to existing values.
107 
108  Parameters
109  ----------
110  cat : `lsst.afw.table.SourceCatalog` or `lsst.afw.table.SourceRecord`
111  May either be a `~lsst.afw.table.SourceCatalog` or a single
112  `~lsst.afw.table.SourceRecord`, depending on the plugin type. Will
113  be updated in place to contain the results of plugin execution.
114  **kwargs
115  Any additional keyword arguments that may be passed to the plugin.
116  """
117  raise NotImplementedError()
118 
119 

◆ calculate() [2/2]

def lsst.meas.base.classification.CatalogCalculationClassificationPlugin.calculate (   self,
  measRecord 
)

Definition at line 78 of file classification.py.

78  def calculate(self, measRecord):
79  modelFlux = measRecord.getModelInstFlux()
80  psfFlux = measRecord.getPsfInstFlux()
81  modelFluxFlag = (measRecord.getModelFluxFlag()
82  if measRecord.table.getModelFluxSlot().isValid()
83  else False)
84  psfFluxFlag = (measRecord.getPsfFluxFlag()
85  if measRecord.table.getPsfFluxSlot().isValid()
86  else False)
87  flux1 = self.config.fluxRatio*modelFlux
88  if self.config.modelErrFactor != 0:
89  flux1 += self.config.modelErrFactor*measRecord.getModelInstFluxErr()
90  flux2 = psfFlux
91  if not self.config.psfErrFactor == 0:
92  flux2 += self.config.psfErrFactor*measRecord.getPsfInstFluxErr()
93 
94  # A generic failure occurs when either FluxFlag is set to True
95  # A generic failure also occurs if either calculated flux value is NaN:
96  # this can occur if the Flux field itself is NaN,
97  # or the ErrFactor != 0 and the FluxErr is NaN
98  if np.isnan(flux1) or np.isnan(flux2) or modelFluxFlag or psfFluxFlag:
99  self.fail(measRecord)
100  else:
101  measRecord.set(self.keyProbability, 0.0 if flux1 < flux2 else 1.0)
102 
bool isValid
Definition: fits.cc:399

◆ fail()

def lsst.meas.base.classification.CatalogCalculationClassificationPlugin.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 103 of file classification.py.

103  def fail(self, measRecord, error=None):
104  measRecord.set(self.keyFlag, True)

◆ getExecutionOrder()

def lsst.meas.base.classification.CatalogCalculationClassificationPlugin.getExecutionOrder (   cls)
Used to set the relative order of plugin execution.

The values returned by `getExecutionOrder` are compared across all
plugins, and smaller numbers run first.

Notes
-----
`CatalogCalculationPlugin`\s must run with
`BasePlugin.DEFAULT_CATALOGCALCULATION` or higher.

All plugins must implement this method with an appropriate run level

Reimplemented from lsst.meas.base.catalogCalculation.CatalogCalculationPlugin.

Definition at line 69 of file classification.py.

69  def getExecutionOrder(cls):
70  return cls.DEFAULT_CATALOGCALCULATION
71 

◆ getLogName()

def lsst.meas.base.pluginsBase.BasePlugin.getLogName (   self)
inherited

Definition at line 134 of file pluginsBase.py.

134  def getLogName(self):
135  return self.logName
136 

◆ getTransformClass()

def lsst.meas.base.pluginsBase.BasePlugin.getTransformClass ( )
staticinherited
Get the measurement transformation appropriate to this plugin.

This returns a subclass of `transforms.MeasurementTransform`, which
may be instantiated with details of the algorithm configuration and
then called with information about calibration and WCS to convert from
raw measurement quantities to calibrated units. Calibrated data is
then provided in a separate output table.

Notes
-----
By default, we copy everything from the input to the output without
transformation.

Reimplemented in lsst.meas.base.plugins.ForcedPeakCentroidPlugin, and lsst.meas.base.plugins.SingleFramePeakCentroidPlugin.

Definition at line 169 of file pluginsBase.py.

169  def getTransformClass():
170  """Get the measurement transformation appropriate to this plugin.
171 
172  This returns a subclass of `transforms.MeasurementTransform`, which
173  may be instantiated with details of the algorithm configuration and
174  then called with information about calibration and WCS to convert from
175  raw measurement quantities to calibrated units. Calibrated data is
176  then provided in a separate output table.
177 
178  Notes
179  -----
180  By default, we copy everything from the input to the output without
181  transformation.
182  """
183  return PassThroughTransform

Member Data Documentation

◆ APCORR_ORDER

float lsst.meas.base.pluginsBase.BasePlugin.APCORR_ORDER = 3.0
staticinherited

Definition at line 98 of file pluginsBase.py.

◆ CENTROID_ORDER

float lsst.meas.base.pluginsBase.BasePlugin.CENTROID_ORDER = 0.0
staticinherited

Definition at line 72 of file pluginsBase.py.

◆ config

lsst.meas.base.pluginsBase.BasePlugin.config
inherited

Definition at line 130 of file pluginsBase.py.

◆ ConfigClass

lsst.meas.base.classification.CatalogCalculationClassificationPlugin.ConfigClass = CatalogCalculationClassificationConfig
static

Definition at line 66 of file classification.py.

◆ DEFAULT_CATALOGCALCULATION

float lsst.meas.base.pluginsBase.BasePlugin.DEFAULT_CATALOGCALCULATION = 4.0
staticinherited

Definition at line 108 of file pluginsBase.py.

◆ FLUX_ORDER

float lsst.meas.base.pluginsBase.BasePlugin.FLUX_ORDER = 2.0
staticinherited

Definition at line 89 of file pluginsBase.py.

◆ keyFlag

lsst.meas.base.classification.CatalogCalculationClassificationPlugin.keyFlag

Definition at line 76 of file classification.py.

◆ keyProbability

lsst.meas.base.classification.CatalogCalculationClassificationPlugin.keyProbability

Definition at line 74 of file classification.py.

◆ logName

lsst.meas.base.pluginsBase.BasePlugin.logName
inherited

Definition at line 132 of file pluginsBase.py.

◆ name

lsst.meas.base.pluginsBase.BasePlugin.name
inherited

Definition at line 131 of file pluginsBase.py.

◆ plugType

string lsst.meas.base.catalogCalculation.CatalogCalculationPlugin.plugType = 'single'
staticinherited

Definition at line 69 of file catalogCalculation.py.

◆ registry

lsst.meas.base.catalogCalculation.CatalogCalculationPlugin.registry = PluginRegistry(CatalogCalculationPluginConfig)
staticinherited

Definition at line 65 of file catalogCalculation.py.

◆ SHAPE_ORDER

float lsst.meas.base.pluginsBase.BasePlugin.SHAPE_ORDER = 1.0
staticinherited

Definition at line 80 of file pluginsBase.py.


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