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.plugins.InputCountPlugin Class Reference
Inheritance diagram for lsst.meas.base.plugins.InputCountPlugin:
lsst.meas.base.wrappers.GenericPlugin lsst.meas.base.pluginsBase.BasePlugin

Public Member Functions

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

Static Public Member Functions

def getTransformClass ()
 

Public Attributes

 numberKey
 
 noInputsFlag
 
 config
 
 name
 
 logName
 

Static Public Attributes

 ConfigClass = InputCountConfig
 
int FAILURE_BAD_CENTROID = 1
 
int FAILURE_NO_INPUTS = 2
 
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

Count the number of input images which contributed to a a source.

Parameters
----------
config : `InputCountConfig`
    Plugin configuraion.
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
-----
Information is derived from the image's `~lsst.afw.image.CoaddInputs`.
Note these limitation:

- This records the number of images which contributed to the pixel in the
  center of the source footprint, rather than to any or all pixels in the
  source.
- Clipping in the coadd is not taken into account.

Definition at line 329 of file plugins.py.

Constructor & Destructor Documentation

◆ __init__()

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

Definition at line 369 of file plugins.py.

369  def __init__(self, config, name, schema, metadata):
370  GenericPlugin.__init__(self, config, name, schema, metadata)
371  self.numberKey = schema.addField(name + '_value', type="I",
372  doc="Number of images contributing at center, not including any"
373  "clipping")
374  self.noInputsFlag = schema.addField(name + '_flag_noInputs', type="Flag",
375  doc="No coadd inputs available")
376  # Alias the badCentroid flag to that which is defined for the target of the centroid slot.
377  # We do not simply rely on the alias because that could be changed post-measurement.
378  schema.getAliasMap().set(name + '_flag_badCentroid', schema.getAliasMap().apply("slot_Centroid_flag"))
379 
daf::base::PropertySet * set
Definition: fits.cc:912

Member Function Documentation

◆ fail()

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

Definition at line 389 of file plugins.py.

389  def fail(self, measRecord, error=None):
390  if error is not None:
391  assert error.getFlagBit() in (self.FAILURE_BAD_CENTROID, self.FAILURE_NO_INPUTS)
392  # FAILURE_BAD_CENTROID handled by alias to centroid record.
393  if error.getFlagBit() == self.FAILURE_NO_INPUTS:
394  measRecord.set(self.noInputsFlag, True)
395  GenericPlugin.fail(self, measRecord, error)
396 
397 

◆ getExecutionOrder()

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

Definition at line 366 of file plugins.py.

366  def getExecutionOrder(cls):
367  return BasePlugin.SHAPE_ORDER
368 

◆ 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 
)
inherited
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 
)
inherited
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.plugins.InputCountPlugin.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 from lsst.meas.base.wrappers.GenericPlugin.

Definition at line 380 of file plugins.py.

380  def measure(self, measRecord, exposure, center):
381  if not exposure.getInfo().getCoaddInputs():
382  raise MeasurementError("No coadd inputs defined.", self.FAILURE_NO_INPUTS)
383  if not np.all(np.isfinite(center)):
384  raise MeasurementError("Source has a bad centroid.", self.FAILURE_BAD_CENTROID)
385 
386  ccds = exposure.getInfo().getCoaddInputs().ccds
387  measRecord.set(self.numberKey, len(ccds.subsetContaining(center, exposure.getWcs())))
388 

◆ measureN()

def lsst.meas.base.wrappers.GenericPlugin.measureN (   self,
  measCat,
  exposure,
  refCat,
  refWcs 
)
inherited
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.plugins.InputCountPlugin.ConfigClass = InputCountConfig
static

Definition at line 355 of file plugins.py.

◆ DEFAULT_CATALOGCALCULATION

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

Definition at line 108 of file pluginsBase.py.

◆ FAILURE_BAD_CENTROID

int lsst.meas.base.plugins.InputCountPlugin.FAILURE_BAD_CENTROID = 1
static

Definition at line 357 of file plugins.py.

◆ FAILURE_NO_INPUTS

int lsst.meas.base.plugins.InputCountPlugin.FAILURE_NO_INPUTS = 2
static

Definition at line 361 of file plugins.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.

◆ noInputsFlag

lsst.meas.base.plugins.InputCountPlugin.noInputsFlag

Definition at line 374 of file plugins.py.

◆ numberKey

lsst.meas.base.plugins.InputCountPlugin.numberKey

Definition at line 371 of file plugins.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: