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.pluginsBase.BasePlugin Class Reference
Inheritance diagram for lsst.meas.base.pluginsBase.BasePlugin:
lsst.meas.base.baseMeasurement.BaseMeasurementPlugin lsst.meas.base.catalogCalculation.CatalogCalculationPlugin lsst.meas.base.wrappers.GenericPlugin lsst.meas.base.forcedMeasurement.ForcedPlugin lsst.meas.base.sfm.SingleFramePlugin lsst.meas.base.classification.CatalogCalculationClassificationPlugin lsst.meas.base.diaCalculation.DiaObjectCalculationPlugin lsst.meas.base.footprintArea.CatalogCalculationFootprintAreaPlugin lsst.meas.base.plugins.EvaluateLocalPhotoCalibPlugin lsst.meas.base.plugins.EvaluateLocalWcsPlugin lsst.meas.base.plugins.InputCountPlugin lsst.meas.base.plugins.VariancePlugin

Public Member Functions

def getExecutionOrder (cls)
 
def __init__ (self, config, name, logName=None)
 
def getLogName (self)
 
def fail (self, measRecord, error=None)
 

Static Public Member Functions

def getTransformClass ()
 

Public Attributes

 config
 
 name
 
 logName
 

Static Public Attributes

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
 
 ConfigClass = BasePluginConfig
 

Detailed Description

Base class for measurement plugins.

This is the base class for `SingleFramePlugin` and `ForcedPlugin`; derived
classes should inherit from one of those.

Parameters
----------
config : `BasePluginConfig`
    Plugin configuration.
name : `str`
    Plugin name.
logName : `str`
    Logger name.

Notes
-----
Relative execution orders are defined by a series of named constants
defined in this class: plugins with a lower execution number are run
first.

This approach was chosen instead of a full graph-based analysis of
dependencies because algorithm dependencies are usually both quite simple
and entirely substitutable: an algorithm that requires a centroid can
typically make use of any centroid algorithms outputs.  That makes it
relatively easy to figure out the correct value to use for any particular
algorithm.

Definition at line 42 of file pluginsBase.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.meas.base.pluginsBase.BasePlugin.__init__ (   self,
  config,
  name,
  logName = None 
)

Reimplemented in lsst.meas.base.diaCalculationPlugins.HTMIndexDiaPosition, and lsst.meas.base.diaCalculation.DiaObjectCalculationPlugin.

Definition at line 128 of file pluginsBase.py.

128  def __init__(self, config, name, logName=None):
129  object.__init__(self)
130  self.config = config
131  self.name = name
132  self.logName = logName
133 

Member Function Documentation

◆ fail()

def lsst.meas.base.pluginsBase.BasePlugin.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 in lsst.meas.modelfit.psf.psfContinued.GeneralShapeletPsfApproxForcedPlugin, lsst.meas.modelfit.psf.psfContinued.GeneralShapeletPsfApproxSingleFramePlugin, lsst.meas.modelfit.cmodel.cmodelContinued.CModelForcedPlugin, lsst.meas.modelfit.cmodel.cmodelContinued.CModelSingleFramePlugin, lsst.meas.extensions.trailedSources.VeresPlugin.SingleFrameVeresTrailPlugin, lsst.meas.extensions.trailedSources.NaivePlugin.SingleFrameNaiveTrailPlugin, lsst.meas.base.wrappers.GenericPlugin, lsst.meas.base.wrappers.WrappedForcedPlugin, lsst.meas.base.wrappers.WrappedSingleFramePlugin, lsst.meas.base.plugins.SingleFrameSkyCoordPlugin, lsst.meas.base.plugins.SingleFramePeakCentroidPlugin, lsst.meas.base.plugins.InputCountPlugin, lsst.meas.base.plugins.VariancePlugin, lsst.meas.base.plugins.SingleFrameJacobianPlugin, lsst.meas.base.plugins.SingleFrameFPPositionPlugin, lsst.meas.base.footprintArea.CatalogCalculationFootprintAreaPlugin, lsst.meas.base.classification.CatalogCalculationClassificationPlugin, and lsst.ip.diffim.dipoleMeasurement.ClassificationDipolePlugin.

Definition at line 137 of file pluginsBase.py.

137  def fail(self, measRecord, error=None):
138  """Record a failure of the `measure` or `measureN` method.
139 
140  Parameters
141  ----------
142  measRecord : `lsst.afw.table.SourceRecord`
143  Table record describing the source being measured.
144  error : `MeasurementError`, optional
145  Only provided if the measurement failed due to a
146  `MeasurementError` being raised; otherwise, will be `None`.
147 
148  Notes
149  -----
150  When the plugin raises an exception, framework will call
151  `BasePlugin.fail` to allow the plugin to set its failure flag
152  field(s). When `BasePlugin.measureN` raises an exception,
153  `BasePlugin.fail` will be called repeatedly with all the records that
154  were being measured.
155 
156  If the exception is an `MeasurementError`, it will be passed as the
157  error argument; in all other cases the error argument will be `None`,
158  and the failure will be logged by the measurement framework as a
159  warning.
160 
161  """
162  traceback.print_exc()
163  message = ("The algorithm '%s' thinks it cannot fail, but it did; "
164  "please report this as a bug (the full traceback is above)."
165  % (self.__class__.__name__,))
166  raise NotImplementedError(message)
167 

◆ getExecutionOrder()

def lsst.meas.base.pluginsBase.BasePlugin.getExecutionOrder (   cls)
Get the relative execution order of this plugin.

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

Reimplemented in lsst.meas.extensions.trailedSources.VeresPlugin.SingleFrameVeresTrailPlugin, lsst.meas.extensions.trailedSources.NaivePlugin.SingleFrameNaiveTrailPlugin, lsst.meas.base.wrappers.GenericPlugin, lsst.meas.base.plugins.ForcedTransformedShapePlugin, lsst.meas.base.plugins.ForcedTransformedCentroidPlugin, lsst.meas.base.plugins.ForcedPeakCentroidPlugin, lsst.meas.base.plugins.SingleFrameSkyCoordPlugin, lsst.meas.base.plugins.SingleFramePeakCentroidPlugin, lsst.meas.base.plugins.EvaluateLocalWcsPlugin, lsst.meas.base.plugins.EvaluateLocalPhotoCalibPlugin, lsst.meas.base.plugins.InputCountPlugin, lsst.meas.base.plugins.VariancePlugin, lsst.meas.base.plugins.SingleFrameJacobianPlugin, lsst.meas.base.plugins.SingleFrameFPPositionPlugin, lsst.meas.base.footprintArea.CatalogCalculationFootprintAreaPlugin, lsst.meas.base.diaCalculationPlugins.SigmaDiaTotFlux, lsst.meas.base.diaCalculationPlugins.WeightedMeanDiaTotFlux, lsst.meas.base.diaCalculationPlugins.StetsonJDiaPsFlux, lsst.meas.base.diaCalculationPlugins.LinearFitDiaPsFlux, lsst.meas.base.diaCalculationPlugins.ErrMeanDiaPsFlux, lsst.meas.base.diaCalculationPlugins.MaxSlopeDiaPsFlux, lsst.meas.base.diaCalculationPlugins.MinMaxDiaPsFlux, lsst.meas.base.diaCalculationPlugins.SkewDiaPsFlux, lsst.meas.base.diaCalculationPlugins.MadDiaPsFlux, lsst.meas.base.diaCalculationPlugins.Chi2DiaPsFlux, lsst.meas.base.diaCalculationPlugins.SigmaDiaPsFlux, lsst.meas.base.diaCalculationPlugins.PercentileDiaPsFlux, lsst.meas.base.diaCalculationPlugins.WeightedMeanDiaPsFlux, lsst.meas.base.diaCalculationPlugins.SimpleSourceFlagDiaPlugin, lsst.meas.base.diaCalculationPlugins.NumDiaSourcesDiaPlugin, lsst.meas.base.diaCalculationPlugins.HTMIndexDiaPosition, lsst.meas.base.diaCalculationPlugins.MeanDiaPosition, lsst.meas.base.classification.CatalogCalculationClassificationPlugin, lsst.meas.base.catalogCalculation.CatalogCalculationPlugin, and lsst.ip.diffim.dipoleMeasurement.ClassificationDipolePlugin.

Definition at line 121 of file pluginsBase.py.

121  def getExecutionOrder(cls):
122  """Get the relative execution order of this plugin.
123 
124  Must be reimplemented as a class method by concrete derived classes.
125  """
126  raise NotImplementedError("All plugins must implement getExecutionOrder()")
127 

◆ getLogName()

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

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 ( )
static
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
static

Definition at line 98 of file pluginsBase.py.

◆ CENTROID_ORDER

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

Definition at line 72 of file pluginsBase.py.

◆ config

lsst.meas.base.pluginsBase.BasePlugin.config

Definition at line 130 of file pluginsBase.py.

◆ ConfigClass

lsst.meas.base.pluginsBase.BasePlugin.ConfigClass = BasePluginConfig
static

Definition at line 116 of file pluginsBase.py.

◆ DEFAULT_CATALOGCALCULATION

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

Definition at line 108 of file pluginsBase.py.

◆ FLUX_ORDER

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

Definition at line 89 of file pluginsBase.py.

◆ logName

lsst.meas.base.pluginsBase.BasePlugin.logName

Definition at line 132 of file pluginsBase.py.

◆ name

lsst.meas.base.pluginsBase.BasePlugin.name

Definition at line 131 of file pluginsBase.py.

◆ SHAPE_ORDER

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

Definition at line 80 of file pluginsBase.py.


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