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.wrappers.GenericPlugin Class Reference
Inheritance diagram for lsst.meas.base.wrappers.GenericPlugin:
lsst.meas.base.pluginsBase.BasePlugin 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, schema, metadata, logName=None)
 
def measure (self, measRecord, exposure, center)
 
def measureN (self, measCat, exposure, refCat, refWcs)
 
def fail (self, measRecord, error=None)
 
def makeSingleFramePlugin (cls, name)
 
def makeForcedPlugin (cls, name)
 
def getLogName (self)
 

Static Public Member Functions

def getTransformClass ()
 

Public Attributes

 config
 
 name
 
 logName
 

Static Public Attributes

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

Abstract base class for a generic plugin.

Parameters
----------
config : `lsst.pex.config.Config`
    An instance of this class' ``ConfigClass``.
name : `str`
    Name of this measurement plguin, for registering.
schema : `lsst.afw.table.Schema`
    The catalog schema. New fields should be added here to
    hold measurements produced by this plugin.
metadata : `lsst.daf.base.PropertySet`
    Metadata that will be attached to the output catalog.
logName : `str`, optional
    Name of log component.

Notes
-----
A generic plugin can be used with the `singleFramePluginFromGeneric`
and/or `forcedPluginFromGeneric` wrappers to create classes that can be
used for single frame measurement and/or forced measurement (as
appropriate). The only real difference between `SingleFramePlugin` and
`ForcedPlugin` is the ``measure`` method; this class introduces a shared
signature for `measure` that, in combination with the aforementioned
wrappers, allows both plugin styles to share a single implementation.

This doesn't use `abc.ABCMeta` because I couldn't get it to work
with a superclass.

Sub-classes should set `ConfigClass` and implement the `measure` and
`measureN` methods. They may optionally provide alternative
implementations for the `__init__`, `fail` and `getExecutionOrder`
methods.

This default implementation simply adds a field for recording
a fatal failure of the measurement plugin.

Definition at line 472 of file wrappers.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.meas.base.wrappers.GenericPlugin.__init__ (   self,
  config,
  name,
  schema,
  metadata,
  logName = None 
)

Definition at line 516 of file wrappers.py.

516  def __init__(self, config, name, schema, metadata, logName=None):
517  BasePlugin.__init__(self, config, name, logName=logName)
518  self._failKey = schema.addField(name + '_flag', type="Flag", doc="Set for any fatal failure")
519 

Member Function Documentation

◆ fail()

def lsst.meas.base.wrappers.GenericPlugin.fail (   self,
  measRecord,
  error = None 
)
Record a measurement failure.

This default implementation simply records the failure in the source
record.

Parameters
----------
measRecord : `lsst.afw.table.SourceRecord`
    Catalog record for the source being measured.
error : `Exception`
    Error causing failure, or `None`.

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

Reimplemented in lsst.meas.base.plugins.InputCountPlugin, and lsst.meas.base.plugins.VariancePlugin.

Definition at line 566 of file wrappers.py.

566  def fail(self, measRecord, error=None):
567  """Record a measurement failure.
568 
569  This default implementation simply records the failure in the source
570  record.
571 
572  Parameters
573  ----------
574  measRecord : `lsst.afw.table.SourceRecord`
575  Catalog record for the source being measured.
576  error : `Exception`
577  Error causing failure, or `None`.
578  """
579  measRecord.set(self._failKey, True)
580 

◆ getExecutionOrder()

def lsst.meas.base.wrappers.GenericPlugin.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.

Reimplemented in lsst.meas.base.plugins.EvaluateLocalWcsPlugin, lsst.meas.base.plugins.EvaluateLocalPhotoCalibPlugin, lsst.meas.base.plugins.InputCountPlugin, and lsst.meas.base.plugins.VariancePlugin.

Definition at line 513 of file wrappers.py.

513  def getExecutionOrder(cls):
514  return 0
515 

◆ 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

◆ makeForcedPlugin()

def lsst.meas.base.wrappers.GenericPlugin.makeForcedPlugin (   cls,
  name 
)
Produce a ForcedPlugin subclass from this GenericPlugin class.

The class is also registered.

Parameters
----------
name : `str`
    Name of plugin to register.

Definition at line 623 of file wrappers.py.

623  def makeForcedPlugin(cls, name):
624  """Produce a ForcedPlugin subclass from this GenericPlugin class.
625 
626  The class is also registered.
627 
628  Parameters
629  ----------
630  name : `str`
631  Name of plugin to register.
632  """
633  class ForcedFromGenericConfig(cls.ConfigClass, ForcedPluginConfig):
634  pass
635 
636  @register(name)
637  class ForcedFromGenericPlugin(ForcedPlugin):
638  ConfigClass = ForcedFromGenericConfig
639 
640  def __init__(self, config, name, schemaMapper, metadata, logName=None):
641  ForcedPlugin.__init__(self, config, name, schemaMapper, metadata, logName=logName)
642  schema = schemaMapper.editOutputSchema()
643  self._generic = cls(config, name, schema, metadata)
644 
645  def measure(self, measRecord, exposure, refRecord, refWcs):
646  # Forced photometry tasks should almost be configured with a
647  # centroider (populating measRecord.getCentroid()) that
648  # transforms the reference centroid, but we respect their
649  # decision if they decided to re-centroid (or do something more
650  # unusual) on the image being measured.
651  center = measRecord.getCentroid()
652  return self._generic.measure(measRecord, exposure, center)
653 
654  def measureN(self, measCat, exposure, refCat, refWcs):
655  return self._generic.measureN(measCat, exposure, refCat, refWcs)
656 
657  def fail(self, measRecord, error=None):
658  self._generic.fail(measRecord, error if error is not None else None)
659 
660  @staticmethod
661  def getExecutionOrder():
662  return cls.getExecutionOrder()
663 
664  def getTransformClass(self):
665  return self._generic.getTransformClass()
666 
667  return ForcedFromGenericPlugin
def measure(mi, x, y, size, statistic, stats)
Definition: fringe.py:517

◆ makeSingleFramePlugin()

def lsst.meas.base.wrappers.GenericPlugin.makeSingleFramePlugin (   cls,
  name 
)
Produce a SingleFramePlugin subclass from this GenericPlugin class.

The class is also registered.

Parameters
----------
name : `str`
    Name of plugin to register.

Definition at line 582 of file wrappers.py.

582  def makeSingleFramePlugin(cls, name):
583  """Produce a SingleFramePlugin subclass from this GenericPlugin class.
584 
585  The class is also registered.
586 
587  Parameters
588  ----------
589  name : `str`
590  Name of plugin to register.
591  """
592  class SingleFrameFromGenericConfig(cls.ConfigClass, SingleFramePluginConfig):
593  pass
594 
595  @register(name)
596  class SingleFrameFromGenericPlugin(SingleFramePlugin):
597  ConfigClass = SingleFrameFromGenericConfig
598 
599  def __init__(self, config, name, schema, metadata, logName=None):
600  SingleFramePlugin.__init__(self, config, name, schema, metadata, logName=logName)
601  self._generic = cls(config, name, schema, metadata)
602 
603  def measure(self, measRecord, exposure):
604  center = measRecord.getCentroid()
605  return self._generic.measure(measRecord, exposure, center)
606 
607  def measureN(self, measCat, exposure, refCat, refWcs):
608  return self._generic.measureN(measCat, exposure, refCat, refWcs)
609 
610  def fail(self, measRecord, error=None):
611  self._generic.fail(measRecord, error if error is not None else None)
612 
613  @staticmethod
614  def getExecutionOrder():
615  return cls.getExecutionOrder()
616 
617  def getTransformClass(self):
618  return self._generic.getTransformClass()
619 
620  return SingleFrameFromGenericPlugin
621 

◆ measure()

def lsst.meas.base.wrappers.GenericPlugin.measure (   self,
  measRecord,
  exposure,
  center 
)
Measure a single source.

It is the responsibility of this method to perform the desired
measurement and record the result in the `measRecord`.

Parameters
----------
measRecord : `lsst.afw.table.SourceRecord`
    Catalog record for the source being measured.
exposure : `lsst.afw.image.Exposure`
    Exposure on which the source is being measured.
center : `lsst.geom.Point2D`
    Pixel coordinates of the object.

Raises
------
MeasurementError
    Raised if the measurement fails for a known/justifiable reason.

Reimplemented in lsst.meas.base.plugins.EvaluateLocalWcsPlugin, lsst.meas.base.plugins.EvaluateLocalPhotoCalibPlugin, lsst.meas.base.plugins.InputCountPlugin, and lsst.meas.base.plugins.VariancePlugin.

Definition at line 520 of file wrappers.py.

520  def measure(self, measRecord, exposure, center):
521  """Measure a single source.
522 
523  It is the responsibility of this method to perform the desired
524  measurement and record the result in the `measRecord`.
525 
526  Parameters
527  ----------
528  measRecord : `lsst.afw.table.SourceRecord`
529  Catalog record for the source being measured.
530  exposure : `lsst.afw.image.Exposure`
531  Exposure on which the source is being measured.
532  center : `lsst.geom.Point2D`
533  Pixel coordinates of the object.
534 
535  Raises
536  ------
537  MeasurementError
538  Raised if the measurement fails for a known/justifiable reason.
539  """
540  raise NotImplementedError()
541 

◆ measureN()

def lsst.meas.base.wrappers.GenericPlugin.measureN (   self,
  measCat,
  exposure,
  refCat,
  refWcs 
)
Measure multiple sources.

It is the responsibility of this method to perform the desired
measurement and record the result in the `measCat`.

Parameters
----------
measCat : `lsst.afw.table.SourceCatalog`
    Catalog for the sources being measured.
exposure : `lsst.afw.image.Exposure`
    Exposure on which the source is being measured.
refCat : `lsst.afw.table.SourceCatalog`
    Reference catalog.
refWcs : `lsst.afw.image.Wcs`
    Astrometric solution for the reference image.

Raises
------
MeasurementError
    Raised if the measurement fails for a known/justifiable reason.

Definition at line 542 of file wrappers.py.

542  def measureN(self, measCat, exposure, refCat, refWcs):
543  """Measure multiple sources.
544 
545  It is the responsibility of this method to perform the desired
546  measurement and record the result in the `measCat`.
547 
548  Parameters
549  ----------
550  measCat : `lsst.afw.table.SourceCatalog`
551  Catalog for the sources being measured.
552  exposure : `lsst.afw.image.Exposure`
553  Exposure on which the source is being measured.
554  refCat : `lsst.afw.table.SourceCatalog`
555  Reference catalog.
556  refWcs : `lsst.afw.image.Wcs`
557  Astrometric solution for the reference image.
558 
559  Raises
560  ------
561  MeasurementError
562  Raised if the measurement fails for a known/justifiable reason.
563  """
564  raise NotImplementedError()
565 

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.wrappers.GenericPlugin.ConfigClass = None
static

Definition at line 510 of file wrappers.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.

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

◆ 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: