LSST Applications g02d81e74bb+86cf3d8bc9,g180d380827+7a4e862ed4,g2079a07aa2+86d27d4dc4,g2305ad1205+e1ca1c66fa,g29320951ab+012e1474a1,g295015adf3+341ea1ce94,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g33d1c0ed96+0e5473021a,g3a166c0a6a+0e5473021a,g3ddfee87b4+c429d67c83,g48712c4677+f88676dd22,g487adcacf7+27e1e21933,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+b41db86c35,g5a732f18d5+53520f316c,g64a986408d+86cf3d8bc9,g858d7b2824+86cf3d8bc9,g8a8a8dda67+585e252eca,g99cad8db69+84912a7fdc,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+a2b54eae19,gb0e22166c9+60f28cb32d,gba4ed39666+c2a2e4ac27,gbb8dafda3b+6681f309db,gc120e1dc64+f0fcc2f6d8,gc28159a63d+0e5473021a,gcf0d15dbbd+c429d67c83,gdaeeff99f8+f9a426f77a,ge6526c86ff+0433e6603d,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gff1a9f87cc+86cf3d8bc9,w.2024.17
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | Protected 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

 getExecutionOrder (cls)
 
 __init__ (self, config, name, schema, metadata, logName=None)
 
 measure (self, measRecord, exposure, center)
 
 measureN (self, measCat, exposure, refCat, refWcs)
 
 fail (self, measRecord, error=None)
 
 makeSingleFramePlugin (cls, name)
 
 makeForcedPlugin (cls, name)
 

Static Public Attributes

 ConfigClass = None
 

Protected Attributes

 _failKey
 
 _generic
 

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 501 of file wrappers.py.

Constructor & Destructor Documentation

◆ __init__()

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

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

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

Definition at line 545 of file wrappers.py.

545 def __init__(self, config, name, schema, metadata, logName=None):
546 BasePlugin.__init__(self, config, name, logName=logName)
547 self._failKey = schema.addField(name + '_flag', type="Flag", doc="Set for any fatal failure")
548

Member Function Documentation

◆ fail()

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.VariancePlugin, and lsst.meas.base.plugins.InputCountPlugin.

Definition at line 595 of file wrappers.py.

595 def fail(self, measRecord, error=None):
596 """Record a measurement failure.
597
598 This default implementation simply records the failure in the source
599 record.
600
601 Parameters
602 ----------
603 measRecord : `lsst.afw.table.SourceRecord`
604 Catalog record for the source being measured.
605 error : `Exception`
606 Error causing failure, or `None`.
607 """
608 measRecord.set(self._failKey, True)
609

◆ getExecutionOrder()

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.VariancePlugin, lsst.meas.base.plugins.InputCountPlugin, lsst.meas.base.plugins.EvaluateLocalPhotoCalibPlugin, and lsst.meas.base.plugins.EvaluateLocalWcsPlugin.

Definition at line 542 of file wrappers.py.

542 def getExecutionOrder(cls):
543 return 0
544

◆ makeForcedPlugin()

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 652 of file wrappers.py.

652 def makeForcedPlugin(cls, name):
653 """Produce a ForcedPlugin subclass from this GenericPlugin class.
654
655 The class is also registered.
656
657 Parameters
658 ----------
659 name : `str`
660 Name of plugin to register.
661 """
662 class ForcedFromGenericConfig(cls.ConfigClass, ForcedPluginConfig):
663 pass
664
665 @register(name)
666 class ForcedFromGenericPlugin(ForcedPlugin):
667 ConfigClass = ForcedFromGenericConfig
668
669 def __init__(self, config, name, schemaMapper, metadata, logName=None):
670 ForcedPlugin.__init__(self, config, name, schemaMapper, metadata, logName=logName)
671 schema = schemaMapper.editOutputSchema()
672 self._generic = cls(config, name, schema, metadata)
673
674 def measure(self, measRecord, exposure, refRecord, refWcs):
675 # Forced photometry tasks should almost be configured with a
676 # centroider (populating measRecord.getCentroid()) that
677 # transforms the reference centroid, but we respect their
678 # decision if they decided to re-centroid (or do something more
679 # unusual) on the image being measured.
680 center = measRecord.getCentroid()
681 return self._generic.measure(measRecord, exposure, center)
682
683 def measureN(self, measCat, exposure, refCat, refWcs):
684 return self._generic.measureN(measCat, exposure, refCat, refWcs)
685
686 def fail(self, measRecord, error=None):
687 self._generic.fail(measRecord, error if error is not None else None)
688
689 @staticmethod
690 def getExecutionOrder():
691 return cls.getExecutionOrder()
692
693 def getTransformClass(self):
694 return self._generic.getTransformClass()
695
696 return ForcedFromGenericPlugin

◆ makeSingleFramePlugin()

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 611 of file wrappers.py.

611 def makeSingleFramePlugin(cls, name):
612 """Produce a SingleFramePlugin subclass from this GenericPlugin class.
613
614 The class is also registered.
615
616 Parameters
617 ----------
618 name : `str`
619 Name of plugin to register.
620 """
621 class SingleFrameFromGenericConfig(cls.ConfigClass, SingleFramePluginConfig):
622 pass
623
624 @register(name)
625 class SingleFrameFromGenericPlugin(SingleFramePlugin):
626 ConfigClass = SingleFrameFromGenericConfig
627
628 def __init__(self, config, name, schema, metadata, logName=None):
629 SingleFramePlugin.__init__(self, config, name, schema, metadata, logName=logName)
630 self._generic = cls(config, name, schema, metadata)
631
632 def measure(self, measRecord, exposure):
633 center = measRecord.getCentroid()
634 return self._generic.measure(measRecord, exposure, center)
635
636 def measureN(self, measCat, exposure, refCat, refWcs):
637 return self._generic.measureN(measCat, exposure, refCat, refWcs)
638
639 def fail(self, measRecord, error=None):
640 self._generic.fail(measRecord, error if error is not None else None)
641
642 @staticmethod
643 def getExecutionOrder():
644 return cls.getExecutionOrder()
645
646 def getTransformClass(self):
647 return self._generic.getTransformClass()
648
649 return SingleFrameFromGenericPlugin
650

◆ measure()

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.VariancePlugin, lsst.meas.base.plugins.InputCountPlugin, lsst.meas.base.plugins.EvaluateLocalPhotoCalibPlugin, and lsst.meas.base.plugins.EvaluateLocalWcsPlugin.

Definition at line 549 of file wrappers.py.

549 def measure(self, measRecord, exposure, center):
550 """Measure a single source.
551
552 It is the responsibility of this method to perform the desired
553 measurement and record the result in the `measRecord`.
554
555 Parameters
556 ----------
557 measRecord : `lsst.afw.table.SourceRecord`
558 Catalog record for the source being measured.
559 exposure : `lsst.afw.image.Exposure`
560 Exposure on which the source is being measured.
561 center : `lsst.geom.Point2D`
562 Pixel coordinates of the object.
563
564 Raises
565 ------
566 MeasurementError
567 Raised if the measurement fails for a known/justifiable reason.
568 """
569 raise NotImplementedError()
570

◆ measureN()

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 571 of file wrappers.py.

571 def measureN(self, measCat, exposure, refCat, refWcs):
572 """Measure multiple sources.
573
574 It is the responsibility of this method to perform the desired
575 measurement and record the result in the `measCat`.
576
577 Parameters
578 ----------
579 measCat : `lsst.afw.table.SourceCatalog`
580 Catalog for the sources being measured.
581 exposure : `lsst.afw.image.Exposure`
582 Exposure on which the source is being measured.
583 refCat : `lsst.afw.table.SourceCatalog`
584 Reference catalog.
585 refWcs : `lsst.afw.image.Wcs`
586 Astrometric solution for the reference image.
587
588 Raises
589 ------
590 MeasurementError
591 Raised if the measurement fails for a known/justifiable reason.
592 """
593 raise NotImplementedError()
594

Member Data Documentation

◆ _failKey

lsst.meas.base.wrappers.GenericPlugin._failKey
protected

Definition at line 547 of file wrappers.py.

◆ _generic

lsst.meas.base.wrappers.GenericPlugin._generic
protected

Definition at line 630 of file wrappers.py.

◆ ConfigClass

lsst.meas.base.wrappers.GenericPlugin.ConfigClass = None
static

Definition at line 539 of file wrappers.py.


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