ForcedMeasurementTask¶
- class lsst.meas.base.ForcedMeasurementTask(refSchema, algMetadata=None, **kwds)¶
- Bases: - BaseMeasurementTask- 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:
- refSchemalsst.afw.table.Schema
- Schema of the reference catalog. Must match the catalog later passed to ‘ForcedMeasurementTask.generateMeasCat` and/or - ForcedMeasurementTask.run.
- algMetadatalsst.daf.base.PropertyListorNone
- Will be updated in place to to record information about each algorithm. An empty - PropertyListwill be created if- None.
- **kwds
- Keyword arguments are passed to the supertask constructor. 
 
- refSchema
 - Notes - Note that while - SingleFrameMeasurementTaskis passed an initial- Schemathat is appended to in order to create the output- Schema,- ForcedMeasurementTaskis initialized with the- Schemaof the reference catalog, from which a new- Schemafor the output catalog is created. Fields to be copied directly from the reference- Schemaare added before- Pluginfields are added.- Attributes Summary - Metadata about active plugins ( - lsst.daf.base.PropertyList).- Plugins to be invoked ( - PluginMap).- Methods Summary - attachPsfShapeFootprints(sources, exposure)- Attach Footprints to blank sources prior to measurement, by creating elliptical Footprints from the PSF moments. - attachTransformedFootprints(sources, refCat, ...)- Attach Footprints to blank sources prior to measurement, by transforming Footprints attached to the reference catalog. - callMeasure(measRecord, *args, **kwds)- Call - measureon all plugins and consistently handle exceptions.- callMeasureN(measCat, *args, **kwds)- Call - measureNon all plugins and consistently handle exceptions.- doMeasurement(plugin, measRecord, *args, **kwds)- Call - measureon the specified plugin.- doMeasurementN(plugin, measCat, *args, **kwds)- Call - measureNon the specified plugin.- Empty (clear) the metadata for this Task and all sub-Tasks. - generateMeasCat(exposure, refCat, refWcs[, ...])- Initialize an output catalog from the reference catalog. - Get metadata for all tasks. - Get the task name as a hierarchical name including parent task names. - getName()- Get the name of the task. - Get a dictionary of all tasks as a shallow copy. - initializePlugins(**kwds)- Initialize plugins (and slots) according to configuration. - makeField(doc)- Make a - lsst.pex.config.ConfigurableFieldfor this task.- makeSubtask(name, **keyArgs)- Create a subtask as a new instance as the - nameattribute of this task.- run(measCat, exposure, refCat, refWcs[, ...])- Perform forced measurement. - timer(name[, logLevel])- Context manager to log performance data for an arbitrary block of code. - Attributes Documentation - algMetadata = None¶
- Metadata about active plugins ( - lsst.daf.base.PropertyList).- Contains additional information about active plugins to be saved with the output catalog. Will be filled by subclasses. 
 - plugins = None¶
- Plugins to be invoked ( - PluginMap).- Initially empty, this will be populated as plugins are initialized. It should be considered read-only. 
 - Methods Documentation - attachPsfShapeFootprints(sources, exposure, scaling=3)¶
- Attach Footprints to blank sources prior to measurement, by creating elliptical Footprints from the PSF moments. - Parameters:
- sourceslsst.afw.table.SourceCatalog
- Blank catalog (with all rows and columns, but values other than - coord_ra,- coord_decunpopulated). to which footprints should be attached.
- exposurelsst.afw.image.Exposure
- Image object from which peak values and the PSF are obtained. 
- scalingint, optional
- Scaling factor to apply to the PSF second-moments ellipse in order to determine the footprint boundary. 
 
- sources
 - Notes - This is a utility function for use by parent tasks; see - attachTransformedFootprintsfor more information.
 - attachTransformedFootprints(sources, refCat, exposure, refWcs)¶
- Attach Footprints to blank sources prior to measurement, by transforming Footprints attached to the reference catalog. - Notes - Footprints 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- HeavyFootprints into regular- Footprints, destroying deblend information.- See the documentation for - runfor information about the relationships between- run,- generateMeasCat, and- attachTransformedFootprints.
 - callMeasure(measRecord, *args, **kwds)¶
- Call - measureon all plugins and consistently handle exceptions.- Parameters:
- measRecordlsst.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: - beginOrderint
- Beginning execution order (inclusive). Measurements with - executionOrder<- beginOrderare not executed.- Nonefor no limit.
- endOrderint
- Ending execution order (exclusive). Measurements with - executionOrder>=- endOrderare not executed.- Nonefor no limit.
 - Others are forwarded to - plugin.measure().
- beginOrder
 
- measRecord
 - Notes - This method can be used with plugins that have different signatures; the only requirement is that - measRecordbe 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. 
 - callMeasureN(measCat, *args, **kwds)¶
- Call - measureNon all plugins and consistently handle exceptions.- Parameters:
- measCatlsst.afw.table.SourceCatalog
- Catalog containing only the records for the source family to be measured, and where outputs should be written. 
- *args
- Positional arguments forwarded to - plugin.measure()
- **kwds
- Keyword arguments. Two are handled locally: - beginOrder:
- Beginning execution order (inclusive): Measurements with - executionOrder<- beginOrderare not executed.- Nonefor no limit.
- endOrder:
- Ending execution order (exclusive): measurements with - executionOrder>=- endOrderare not executed.- Nonefor no- limit.
 - Others are are forwarded to - plugin.measure().
 
- measCat
 - Notes - This method can be used with plugins that have different signatures; the only requirement is that - measRecordbe 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. 
 - doMeasurement(plugin, measRecord, *args, **kwds)¶
- Call - measureon the specified plugin.- Exceptions are handled in a consistent way. - Parameters:
- pluginsubclass of BasePlugin
- Plugin that will be executed. 
- measRecordlsst.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().
 
- pluginsubclass of 
 - Notes - This method can be used with plugins that have different signatures; the only requirement is that - pluginand- measRecordbe 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. 
 - doMeasurementN(plugin, measCat, *args, **kwds)¶
- Call - measureNon the specified plugin.- Exceptions are handled in a consistent way. - Parameters:
- pluginsubclass of BasePlugin
- Plugin that will be executed. 
- measCatlsst.afw.table.SourceCatalog
- Catalog containing only the records for the source family to be measured, and where outputs should be written. 
- *args
- Positional arguments forwarded to - plugin.measureN().
- **kwds
- Keyword arguments forwarded to - plugin.measureN().
 
- pluginsubclass of 
 - Notes - This method can be used with plugins that have different signatures; the only requirement is that the - pluginand- measCatbe 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. 
 - generateMeasCat(exposure, refCat, refWcs, idFactory=None)¶
- Initialize an output catalog from the reference catalog. - Parameters:
- exposurelsst.afw.image.exposureF
- Image to be measured. 
- refCatiterable of lsst.afw.table.SourceRecord
- Catalog of reference sources. 
- refWcslsst.afw.geom.SkyWcs
- Defines the X,Y coordinate system of - refCat. This parameter is not currently used.
- idFactorylsst.afw.table.IdFactory, optional
- Factory for creating IDs for sources. 
 
- exposure
- Returns:
- meascatlsst.afw.table.SourceCatalog
- Source catalog ready for measurement. 
 
- meascat
 - Notes - This generates a new blank - SourceRecordfor each record in- refCat. Note that this method does not attach any- Footprints. Doing so is up to the caller (who may call- attachedTransformedFootprintsor define their own method - see- runfor more information).
 - getFullMetadata() TaskMetadata¶
- Get metadata for all tasks. - Returns:
- metadataTaskMetadata
- The keys are the full task name. Values are metadata for the top-level task and all subtasks, sub-subtasks, etc. 
 
- metadata
 - Notes - The returned metadata includes timing information (if - @timer.timeMethodis used) and any metadata set by the task. The name of each item consists of the full task name with- .replaced by- :, followed by- .and the name of the item, e.g.:- topLevelTaskName:subtaskName:subsubtaskName.itemName - using - :in the full task name disambiguates the rare situation that a task has a subtask and a metadata item with the same name.
 - getFullName() str¶
- Get the task name as a hierarchical name including parent task names. - Returns:
- fullNamestr
- The full name consists of the name of the parent task and each subtask separated by periods. For example: - The full name of top-level task “top” is simply “top”. 
- The full name of subtask “sub” of top-level task “top” is “top.sub”. 
- The full name of subtask “sub2” of subtask “sub” of top-level task “top” is “top.sub.sub2”. 
 
 
- fullName
 
 - getTaskDict() dict[str, weakref.ReferenceType[lsst.pipe.base.task.Task]]¶
- Get a dictionary of all tasks as a shallow copy. - Returns:
- taskDictdict
- Dictionary containing full task name: task object for the top-level task and all subtasks, sub-subtasks, etc. 
 
- taskDict
 
 - initializePlugins(**kwds)¶
- 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 - pluginsattribute 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. 
 - classmethod makeField(doc: str) ConfigurableField¶
- Make a - lsst.pex.config.ConfigurableFieldfor this task.- Parameters:
- docstr
- Help text for the field. 
 
- doc
- Returns:
- configurableFieldlsst.pex.config.ConfigurableField
- A - ConfigurableFieldfor this task.
 
- configurableField
 - Examples - Provides a convenient way to specify this task is a subtask of another task. - Here is an example of use: - class OtherTaskConfig(lsst.pex.config.Config): aSubtask = ATaskClass.makeField("brief description of task") 
 - makeSubtask(name: str, **keyArgs: Any) None¶
- Create a subtask as a new instance as the - nameattribute of this task.- Parameters:
- namestr
- Brief name of the subtask. 
- **keyArgs
- Extra keyword arguments used to construct the task. The following arguments are automatically provided and cannot be overridden: - config.
- parentTask.
 
 
- name
 - Notes - The subtask must be defined by - Task.config.name, an instance of- ConfigurableFieldor- RegistryField.
 - run(measCat, exposure, refCat, refWcs, exposureId=None, beginOrder=None, endOrder=None)¶
- Perform forced measurement. - Parameters:
- exposurelsst.afw.image.exposureF
- Image to be measured. Must have at least a - lsst.afw.geom.SkyWcsattached.
- measCatlsst.afw.table.SourceCatalog
- Source catalog for measurement results; must be initialized with empty records already corresponding to those in - refCat(via e.g.- generateMeasCat).
- refCatlsst.afw.table.SourceCatalog
- A sequence of - lsst.afw.table.SourceRecordobjects that provide reference information for the measurement. These will be passed to each plugin in addition to the output- SourceRecord.
- refWcslsst.afw.geom.SkyWcs
- Defines the X,Y coordinate system of - refCat.
- exposureIdint, optional
- Optional unique exposureId used to calculate random number generator seed in the NoiseReplacer. 
- beginOrderint, optional
- Beginning execution order (inclusive). Algorithms with - executionOrder<- beginOrderare not executed.- Nonefor no limit.
- endOrderint, optional
- Ending execution order (exclusive). Algorithms with - executionOrder>=- endOrderare not executed.- Nonefor no limit.
 
- exposure
 - Notes - Fills the initial empty - SourceCatalogwith forced measurement results. Two steps must occur before- runcan be called:- generateMeasCatmust be called to create the output- measCatargument.
- Footprints appropriate for the forced sources must be attached to the- measCatrecords. The- attachTransformedFootprintsmethod can be used to do this, but this degrades “heavy” (i.e., including pixel values)- Footprints to regular- Footprints, leading to non-deblended measurement, so most callers should provide- Footprints some other way. Typically, calling code will have access to information that will allow them to provide heavy footprints - for instance,- ForcedPhotCoaddTaskuses the heavy footprints from deblending run in the same band just before non-forced is run measurement in that band.