LSST Applications  21.0.0+04719a4bac,21.0.0-1-ga51b5d4+f5e6047307,21.0.0-11-g2b59f77+a9c1acf22d,21.0.0-11-ga42c5b2+86977b0b17,21.0.0-12-gf4ce030+76814010d2,21.0.0-13-g1721dae+760e7a6536,21.0.0-13-g3a573fe+768d78a30a,21.0.0-15-g5a7caf0+f21cbc5713,21.0.0-16-g0fb55c1+b60e2d390c,21.0.0-19-g4cded4ca+71a93a33c0,21.0.0-2-g103fe59+bb20972958,21.0.0-2-g45278ab+04719a4bac,21.0.0-2-g5242d73+3ad5d60fb1,21.0.0-2-g7f82c8f+8babb168e8,21.0.0-2-g8f08a60+06509c8b61,21.0.0-2-g8faa9b5+616205b9df,21.0.0-2-ga326454+8babb168e8,21.0.0-2-gde069b7+5e4aea9c2f,21.0.0-2-gecfae73+1d3a86e577,21.0.0-2-gfc62afb+3ad5d60fb1,21.0.0-25-g1d57be3cd+e73869a214,21.0.0-3-g357aad2+ed88757d29,21.0.0-3-g4a4ce7f+3ad5d60fb1,21.0.0-3-g4be5c26+3ad5d60fb1,21.0.0-3-g65f322c+e0b24896a3,21.0.0-3-g7d9da8d+616205b9df,21.0.0-3-ge02ed75+a9c1acf22d,21.0.0-4-g591bb35+a9c1acf22d,21.0.0-4-g65b4814+b60e2d390c,21.0.0-4-gccdca77+0de219a2bc,21.0.0-4-ge8a399c+6c55c39e83,21.0.0-5-gd00fb1e+05fce91b99,21.0.0-6-gc675373+3ad5d60fb1,21.0.0-64-g1122c245+4fb2b8f86e,21.0.0-7-g04766d7+cd19d05db2,21.0.0-7-gdf92d54+04719a4bac,21.0.0-8-g5674e7b+d1bd76f71f,master-gac4afde19b+a9c1acf22d,w.2021.13
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 327 of file plugins.py.

Constructor & Destructor Documentation

◆ __init__()

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

Definition at line 367 of file plugins.py.

367  def __init__(self, config, name, schema, metadata):
368  GenericPlugin.__init__(self, config, name, schema, metadata)
369  self.numberKey = schema.addField(name + '_value', type="I",
370  doc="Number of images contributing at center, not including any"
371  "clipping")
372  self.noInputsFlag = schema.addField(name + '_flag_noInputs', type="Flag",
373  doc="No coadd inputs available")
374  # Alias the badCentroid flag to that which is defined for the target of the centroid slot.
375  # We do not simply rely on the alias because that could be changed post-measurement.
376  schema.getAliasMap().set(name + '_flag_badCentroid', schema.getAliasMap().apply("slot_Centroid_flag"))
377 
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 387 of file plugins.py.

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

◆ 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 364 of file plugins.py.

364  def getExecutionOrder(cls):
365  return BasePlugin.SHAPE_ORDER
366 

◆ 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  center = exposure.getWcs().skyToPixel(refWcs.pixelToSky(refRecord.getCentroid()))
647  return self._generic.measure(measRecord, exposure, center)
648 
649  def measureN(self, measCat, exposure, refCat, refWcs):
650  return self._generic.measureN(measCat, exposure, refCat, refWcs)
651 
652  def fail(self, measRecord, error=None):
653  self._generic.fail(measRecord, error if error is not None else None)
654 
655  @staticmethod
656  def getExecutionOrder():
657  return cls.getExecutionOrder()
658 
659  def getTransformClass(self):
660  return self._generic.getTransformClass()
661 
662  return ForcedFromGenericPlugin
def measure(mi, x, y, size, statistic, stats)
Definition: fringe.py:512

◆ 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 378 of file plugins.py.

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

◆ 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 353 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 355 of file plugins.py.

◆ FAILURE_NO_INPUTS

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

Definition at line 359 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 372 of file plugins.py.

◆ numberKey

lsst.meas.base.plugins.InputCountPlugin.numberKey

Definition at line 369 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: