lsst.meas.base g51c93253c0+8f422c2cec
Loading...
Searching...
No Matches
lsst.meas.base.forcedMeasurement.ForcedMeasurementTask Class Reference
Inheritance diagram for lsst.meas.base.forcedMeasurement.ForcedMeasurementTask:
lsst.meas.base.baseMeasurement.BaseMeasurementTask lsst.meas.base.baseMeasurement.SimpleBaseMeasurementTask

Public Member Functions

 __init__ (self, refSchema, algMetadata=None, **kwds)
 
 run (self, measCat, exposure, refCat, refWcs, exposureId=None, beginOrder=None, endOrder=None)
 
 generateMeasCat (self, exposure, refCat, refWcs, idFactory=None)
 
 attachTransformedFootprints (self, sources, refCat, exposure, refWcs)
 
 attachPsfShapeFootprints (self, sources, exposure, scaling=3)
 
 initializePlugins (self, **kwds)
 
 initNoiseReplacer (self, exposure, measCat, footprints, exposureId=None, noiseImage=None)
 
 addInvalidPsfFlag (self, schema)
 
 callMeasure (self, measRecord, *args, **kwds)
 
 doMeasurement (self, plugin, measRecord, *args, **kwds)
 

Static Public Member Functions

 getFootprintsFromCatalog (catalog)
 

Public Attributes

 mapper = lsst.afw.table.SchemaMapper(refSchema)
 
 schema = self.mapper.getOutputSchema()
 
 undeblendedPlugins = PluginMap()
 
 keyInvalidPsf = schema.find(invalidPsfName).key
 

Static Public Attributes

str NOISE_SEED_MULTIPLIER = "NOISE_SEED_MULTIPLIER"
 
str NOISE_SOURCE = "NOISE_SOURCE"
 
str NOISE_OFFSET = "NOISE_OFFSET"
 
str NOISE_EXPOSURE_ID = "NOISE_EXPOSURE_ID"
 
 ConfigClass = SimpleBaseMeasurementConfig
 
 plugins = None
 
 algMetadata = None
 

Static Protected Attributes

str _DefaultName = "measurement"
 

Detailed Description

Measure sources on an image, constrained by a reference catalog.

A subtask for measuring the properties of sources on a single image,
using an existing "reference" catalog to constrain some aspects of the
measurement.

Parameters
----------
refSchema : `lsst.afw.table.Schema`
    Schema of the reference catalog.  Must match the catalog later passed
    to 'ForcedMeasurementTask.generateMeasCat` and/or
    `ForcedMeasurementTask.run`.
algMetadata : `lsst.daf.base.PropertyList` or `None`
    Will be updated in place to to record information about each
    algorithm. An empty `~lsst.daf.base.PropertyList` will be created if
    `None`.
**kwds
    Keyword arguments are passed to the supertask constructor.

Notes
-----
Note that while `SingleFrameMeasurementTask` is passed an initial
`~lsst.afw.table.Schema` that is appended to in order to create the output
`~lsst.afw.table.Schema`, `ForcedMeasurementTask` is initialized with the
`~lsst.afw.table.Schema` of the reference catalog, from which a new
`~lsst.afw.table.Schema` for the output catalog is created.  Fields to be
copied directly from the reference `~lsst.afw.table.Schema` are added
before ``Plugin`` fields are added.

Definition at line 214 of file forcedMeasurement.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.meas.base.forcedMeasurement.ForcedMeasurementTask.__init__ ( self,
refSchema,
algMetadata = None,
** kwds )

Definition at line 247 of file forcedMeasurement.py.

Member Function Documentation

◆ addInvalidPsfFlag()

lsst.meas.base.baseMeasurement.SimpleBaseMeasurementTask.addInvalidPsfFlag ( self,
schema )
inherited

Definition at line 326 of file baseMeasurement.py.

◆ attachPsfShapeFootprints()

lsst.meas.base.forcedMeasurement.ForcedMeasurementTask.attachPsfShapeFootprints ( self,
sources,
exposure,
scaling = 3 )
Attach Footprints to blank sources prior to measurement, by
creating elliptical Footprints from the PSF moments.

Parameters
----------
sources : `lsst.afw.table.SourceCatalog`
    Blank catalog (with all rows and columns, but values other than
    ``coord_ra``, ``coord_dec`` unpopulated).
    to which footprints should be attached.
exposure : `lsst.afw.image.Exposure`
    Image object from which peak values and the PSF are obtained.
scaling : `int`, optional
    Scaling factor to apply to the PSF second-moments ellipse in order
    to determine the footprint boundary.

Notes
-----
This is a utility function for use by parent tasks; see
`attachTransformedFootprints` for more information.

Definition at line 417 of file forcedMeasurement.py.

◆ attachTransformedFootprints()

lsst.meas.base.forcedMeasurement.ForcedMeasurementTask.attachTransformedFootprints ( self,
sources,
refCat,
exposure,
refWcs )
Attach Footprints to blank sources prior to measurement, by
transforming Footprints attached to the reference catalog.

Notes
-----
`~lsst.afw.detection.Footprint`\s for forced photometry must be in the
pixel coordinate system of the image being measured, while the actual
detections may start out in a different coordinate system. This
default implementation transforms the Footprints from the reference
catalog from the WCS to the exposure's WCS, which downgrades
``HeavyFootprint``\s into regular `~lsst.afw.detection.Footprint`\s,
destroying deblend information.

See the documentation for `run` for information about the
relationships between `run`, `generateMeasCat`, and
`attachTransformedFootprints`.

Definition at line 394 of file forcedMeasurement.py.

◆ callMeasure()

lsst.meas.base.baseMeasurement.SimpleBaseMeasurementTask.callMeasure ( self,
measRecord,
* args,
** kwds )
inherited
Call ``measure`` on all plugins and consistently handle exceptions.

Parameters
----------
measRecord : `lsst.afw.table.SourceRecord`
    The record corresponding to the object being measured. Will be
    updated in-place with the results of measurement.
*args
    Positional arguments forwarded to ``plugin.measure``
**kwds
    Keyword arguments. Two are handled locally:

    beginOrder : `int`
        Beginning execution order (inclusive). Measurements with
        ``executionOrder`` < ``beginOrder`` are not executed. `None`
        for no limit.

    endOrder : `int`
        Ending execution order (exclusive). Measurements with
        ``executionOrder`` >= ``endOrder`` are not executed. `None`
        for no limit.

    Others are forwarded to ``plugin.measure()``.

Notes
-----
This method can be used with plugins that have different signatures;
the only requirement is that ``measRecord`` be the first argument.
Subsequent positional arguments and keyword arguments are forwarded
directly to the plugin.

This method should be considered "protected": it is intended for use by
derived classes, not users.

Definition at line 337 of file baseMeasurement.py.

◆ doMeasurement()

lsst.meas.base.baseMeasurement.SimpleBaseMeasurementTask.doMeasurement ( self,
plugin,
measRecord,
* args,
** kwds )
inherited
Call ``measure`` on the specified plugin.

Exceptions are handled in a consistent way.

Parameters
----------
plugin : subclass of `BasePlugin`
    Plugin that will be executed.
measRecord : `lsst.afw.table.SourceRecord`
    The record corresponding to the object being measured. Will be
    updated in-place with the results of measurement.
*args
    Positional arguments forwarded to ``plugin.measure()``.
**kwds
    Keyword arguments forwarded to ``plugin.measure()``.

Notes
-----
This method can be used with plugins that have different signatures;
the only requirement is that ``plugin`` and ``measRecord`` be the first
two arguments.  Subsequent positional arguments and keyword arguments
are forwarded directly to the plugin.

This method should be considered "protected": it is intended for use by
derived classes, not users.

Definition at line 381 of file baseMeasurement.py.

◆ generateMeasCat()

lsst.meas.base.forcedMeasurement.ForcedMeasurementTask.generateMeasCat ( self,
exposure,
refCat,
refWcs,
idFactory = None )
Initialize an output catalog from the reference catalog.

Parameters
----------
exposure : `lsst.afw.image.exposureF`
    Image to be measured.
refCat : iterable of `lsst.afw.table.SourceRecord`
    Catalog of reference sources.
refWcs : `lsst.afw.geom.SkyWcs`
    Defines the X,Y coordinate system of ``refCat``.
    This parameter is not currently used.
idFactory : `lsst.afw.table.IdFactory`, optional
    Factory for creating IDs for sources.

Returns
-------
meascat : `lsst.afw.table.SourceCatalog`
    Source catalog ready for measurement.

Notes
-----
This generates a new blank `~lsst.afw.table.SourceRecord` for each
record in ``refCat``. Note that this method does not attach any
`~lsst.afw.detection.Footprint`\ s.  Doing so is up to the caller (who
may call `attachedTransformedFootprints` or define their own method -
see `run` for more information).

Definition at line 354 of file forcedMeasurement.py.

◆ getFootprintsFromCatalog()

lsst.meas.base.baseMeasurement.BaseMeasurementTask.getFootprintsFromCatalog ( catalog)
staticinherited
Get a set of footprints from a catalog, keyed by id.

Parameters
----------
catalog : `lsst.afw.table.SourceCatalog`
    Catalog with `lsst.afw.detection.Footprint`s attached.

Returns
-------
footprints : `dict` [`int`: (`int`, `lsst.afw.detection.Footprint`)]
    Dictionary of footprint, keyed by id number, with a tuple of
    the parent id and footprint.

Definition at line 487 of file baseMeasurement.py.

◆ initializePlugins()

lsst.meas.base.baseMeasurement.BaseMeasurementTask.initializePlugins ( self,
** kwds )
inherited
Initialize plugins (and slots) according to configuration.

Parameters
----------
**kwds
    Keyword arguments forwarded directly to plugin constructors.

Notes
-----
Derived class constructors should call this method to fill the
`plugins` attribute and add corresponding output fields and slot
aliases to the output schema.

In addition to the attributes added by `BaseMeasurementTask.__init__`,
a ``schema``` attribute holding the output schema must be present
before this method is called.

Keyword arguments are forwarded directly to plugin constructors,
allowing derived classes to use plugins with different signatures.

Reimplemented from lsst.meas.base.baseMeasurement.SimpleBaseMeasurementTask.

Definition at line 472 of file baseMeasurement.py.

◆ initNoiseReplacer()

lsst.meas.base.baseMeasurement.BaseMeasurementTask.initNoiseReplacer ( self,
exposure,
measCat,
footprints,
exposureId = None,
noiseImage = None )
inherited
Replace all pixels in the exposure covered by the footprint of
``measRecord`` with noise.

Parameters
----------
exposure : `lsst.afw.image.Exposure`
    Exposure in which to replace pixels.
measCat : `lsst.afw.table.SourceCatalog`
    Catalog that will be measured.t
footprints : `dict` [`int`: (`int`, `lsst.afw.detection.Footprint`)]
    Dictionary of footprints, keyed by id number, with a tuple of
    the parent id and footprint.
exposureId : `int`, optional
    Unique identifier for the exposure.
noiseImage : `lsst.afw.image.Image` or `None`, optional
    Image from which to draw noise pixels.  If `None`, noise will be
    drawn from the input exposure.

Definition at line 504 of file baseMeasurement.py.

◆ run()

lsst.meas.base.forcedMeasurement.ForcedMeasurementTask.run ( self,
measCat,
exposure,
refCat,
refWcs,
exposureId = None,
beginOrder = None,
endOrder = None )
Perform forced measurement.

    Parameters
    ----------
    exposure : `lsst.afw.image.exposureF`
        Image to be measured. Must have at least a `lsst.afw.geom.SkyWcs`
        attached.
    measCat : `lsst.afw.table.SourceCatalog`
        Source catalog for measurement results; must be initialized with
        empty records already corresponding to those in ``refCat`` (via
        e.g. `generateMeasCat`).
    refCat : `lsst.afw.table.SourceCatalog`
        A sequence of `lsst.afw.table.SourceRecord` objects that provide
        reference information for the measurement.  These will be passed
        to each plugin in addition to the output
        `~lsst.afw.table.SourceRecord`.
    refWcs : `lsst.afw.geom.SkyWcs`
        Defines the X,Y coordinate system of ``refCat``.
    exposureId : `int`, optional
        Optional unique exposureId used to calculate random number
        generator seed in the NoiseReplacer.
    beginOrder : `int`, optional
        Beginning execution order (inclusive). Algorithms with
        ``executionOrder`` < ``beginOrder`` are not executed. `None` for no limit.
    endOrder : `int`, optional
        Ending execution order (exclusive). Algorithms with
        ``executionOrder`` >= ``endOrder`` are not executed. `None` for no limit.

    Notes
    -----
    Fills the initial empty `~lsst.afw.table.SourceCatalog` with forced
    measurement results.  Two steps must occur before `run` can be called:

    - `generateMeasCat` must be called to create the output ``measCat``
      argument.
    - `~lsst.afw.detection.Footprint`\ s appropriate for the forced sources
      must be attached to the ``measCat`` records. The
      `attachTransformedFootprints` method can be used to do this, but
      this degrades "heavy" (i.e., including pixel values)
      `~lsst.afw.detection.Footprint`\s to regular
      `~lsst.afw.detection.Footprint`\s, leading to non-deblended
      measurement, so most callers should provide
      `~lsst.afw.detection.Footprint`\s some other way. Typically, calling
      code will have access to information that will allow them to provide
      heavy footprints - for instance, `ForcedPhotCoaddTask` uses the
      heavy footprints from deblending run in the same band just before
      non-forced is run measurement in that band.

Definition at line 261 of file forcedMeasurement.py.

Member Data Documentation

◆ _DefaultName

str lsst.meas.base.baseMeasurement.SimpleBaseMeasurementTask._DefaultName = "measurement"
staticprotectedinherited

Definition at line 259 of file baseMeasurement.py.

◆ algMetadata

lsst.meas.base.baseMeasurement.SimpleBaseMeasurementTask.algMetadata = None
staticinherited

Definition at line 268 of file baseMeasurement.py.

◆ ConfigClass

lsst.meas.base.baseMeasurement.SimpleBaseMeasurementTask.ConfigClass = SimpleBaseMeasurementConfig
staticinherited

Definition at line 258 of file baseMeasurement.py.

◆ keyInvalidPsf

lsst.meas.base.baseMeasurement.SimpleBaseMeasurementTask.keyInvalidPsf = schema.find(invalidPsfName).key
inherited

Definition at line 329 of file baseMeasurement.py.

◆ mapper

lsst.meas.base.forcedMeasurement.ForcedMeasurementTask.mapper = lsst.afw.table.SchemaMapper(refSchema)

Definition at line 249 of file forcedMeasurement.py.

◆ NOISE_EXPOSURE_ID

lsst.meas.base.baseMeasurement.BaseMeasurementTask.NOISE_EXPOSURE_ID = "NOISE_EXPOSURE_ID"
staticinherited

Definition at line 464 of file baseMeasurement.py.

◆ NOISE_OFFSET

lsst.meas.base.baseMeasurement.BaseMeasurementTask.NOISE_OFFSET = "NOISE_OFFSET"
staticinherited

Definition at line 460 of file baseMeasurement.py.

◆ NOISE_SEED_MULTIPLIER

lsst.meas.base.baseMeasurement.BaseMeasurementTask.NOISE_SEED_MULTIPLIER = "NOISE_SEED_MULTIPLIER"
staticinherited

Definition at line 452 of file baseMeasurement.py.

◆ NOISE_SOURCE

lsst.meas.base.baseMeasurement.BaseMeasurementTask.NOISE_SOURCE = "NOISE_SOURCE"
staticinherited

Definition at line 456 of file baseMeasurement.py.

◆ plugins

lsst.meas.base.baseMeasurement.SimpleBaseMeasurementTask.plugins = None
staticinherited

Definition at line 261 of file baseMeasurement.py.

◆ schema

lsst.meas.base.forcedMeasurement.ForcedMeasurementTask.schema = self.mapper.getOutputSchema()

Definition at line 258 of file forcedMeasurement.py.

◆ undeblendedPlugins

lsst.meas.base.baseMeasurement.BaseMeasurementTask.undeblendedPlugins = PluginMap()
inherited

Definition at line 470 of file baseMeasurement.py.


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