ComputeExposureSummaryStatsTask

class lsst.pipe.tasks.computeExposureSummaryStats.ComputeExposureSummaryStatsTask(**kwargs)

Bases: Task

Task to compute exposure summary statistics.

This task computes various quantities suitable for DPDD and other downstream processing at the detector centers, including: - psfSigma - psfArea - psfIxx - psfIyy - psfIxy - ra - dec - zenithDistance - zeroPoint - skyBg - skyNoise - meanVar - raCorners - decCorners - astromOffsetMean - astromOffsetStd

These additional quantities are computed from the stars in the detector: - psfStarDeltaE1Median - psfStarDeltaE2Median - psfStarDeltaE1Scatter - psfStarDeltaE2Scatter - psfStarDeltaSizeMedian - psfStarDeltaSizeScatter - psfStarScaledDeltaSizeScatter

These quantities are computed based on the PSF model and image mask to assess the robustness of the PSF model across a given detector (against, e.g., extrapolation instability): - maxDistToNearestPsf - psfTraceRadiusDelta

These quantities are computed to assess depth: - effTime - effTimePsfSigmaScale - effTimeSkyBgScale - effTimeZeroPointScale

Methods Summary

emptyMetadata()

Empty (clear) the metadata for this Task and all sub-Tasks.

getFullMetadata()

Get metadata for all tasks.

getFullName()

Get the task name as a hierarchical name including parent task names.

getName()

Get the name of the task.

getTaskDict()

Get a dictionary of all tasks as a shallow copy.

makeField(doc)

Make a lsst.pex.config.ConfigurableField for this task.

makeSubtask(name, **keyArgs)

Create a subtask as a new instance as the name attribute of this task.

run(exposure, sources, background)

Measure exposure statistics from the exposure, sources, and background.

timer(name[, logLevel])

Context manager to log performance data for an arbitrary block of code.

update_background_stats(summary, background)

Compute summary-statistic fields that depend only on the background model.

update_effective_time_stats(summary, exposure)

Compute effective exposure time statistics to estimate depth.

update_masked_image_stats(summary, masked_image)

Compute summary-statistic fields that depend on the masked image itself.

update_photo_calib_stats(summary, photo_calib)

Compute all summary-statistic fields that depend on the photometric calibration model.

update_psf_stats(summary, psf, bbox[, ...])

Compute all summary-statistic fields that depend on the PSF model.

update_wcs_stats(summary, wcs, bbox, visitInfo)

Compute all summary-statistic fields that depend on the WCS model.

Methods Documentation

emptyMetadata() None

Empty (clear) the metadata for this Task and all sub-Tasks.

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.

Notes

The returned metadata includes timing information (if @timer.timeMethod is 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”.

getName() str

Get the name of the task.

Returns:
taskNamestr

Name of the task.

See also

getFullName

Get the full name of the task.

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.

classmethod makeField(doc: str) ConfigurableField

Make a lsst.pex.config.ConfigurableField for this task.

Parameters:
docstr

Help text for the field.

Returns:
configurableFieldlsst.pex.config.ConfigurableField

A ConfigurableField for this task.

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 name attribute 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.

Notes

The subtask must be defined by Task.config.name, an instance of ConfigurableField or RegistryField.

run(exposure, sources, background)

Measure exposure statistics from the exposure, sources, and background.

Parameters:
exposurelsst.afw.image.ExposureF
sourceslsst.afw.table.SourceCatalog
backgroundlsst.afw.math.BackgroundList
Returns:
summarylsst.afw.image.ExposureSummary
timer(name: str, logLevel: int = 10) Iterator[None]

Context manager to log performance data for an arbitrary block of code.

Parameters:
namestr

Name of code being timed; data will be logged using item name: Start and End.

logLevelint

A logging level constant.

See also

lsst.utils.timer.logInfo

Implementation function.

Examples

Creating a timer context:

with self.timer("someCodeToTime"):
    pass  # code to time
update_background_stats(summary, background)

Compute summary-statistic fields that depend only on the background model.

Parameters:
summarylsst.afw.image.ExposureSummaryStats

Summary object to update in-place.

backgroundlsst.afw.math.BackgroundList or None

Background model. If None, all fields that depend on the background will be reset (generally to NaN).

Notes

This does not include fields that depend on the background-subtracted masked image; when the background changes, it should generally be applied to the image and update_masked_image_stats should be called as well.

update_effective_time_stats(summary, exposure)

Compute effective exposure time statistics to estimate depth.

The effective exposure time is the equivalent shutter open time that would be needed under nominal conditions to give the same signal-to-noise for a point source as what is achieved by the observation of interest. This metric combines measurements of the point-spread function, the sky brightness, and the transparency.

The effective exposure time and its subcomponents are defined in [1]

Parameters:
summarylsst.afw.image.ExposureSummaryStats

Summary object to update in-place.

exposurelsst.afw.image.ExposureF

Exposure to grab band and exposure time metadata

References

[1]

Neilsen, E.H., Bernstein, G., Gruendl, R., and Kent, S. (2016). Limiting Magnitude, au, teff, and Image Quality in DES Year 1 https://www.osti.gov/biblio/1250877/

update_masked_image_stats(summary, masked_image)

Compute summary-statistic fields that depend on the masked image itself.

Parameters:
summarylsst.afw.image.ExposureSummaryStats

Summary object to update in-place.

masked_imagelsst.afw.image.MaskedImage or None

Masked image. If None, all fields that depend on the masked image will be reset (generally to NaN).

update_photo_calib_stats(summary, photo_calib)

Compute all summary-statistic fields that depend on the photometric calibration model.

Parameters:
summarylsst.afw.image.ExposureSummaryStats

Summary object to update in-place.

photo_caliblsst.afw.image.PhotoCalib or None

Photometric calibration model. If None, all fields that depend on the photometric calibration will be reset (generally to NaN).

update_psf_stats(summary, psf, bbox, sources=None, image_mask=None, sources_is_astropy=False)

Compute all summary-statistic fields that depend on the PSF model.

Parameters:
summarylsst.afw.image.ExposureSummaryStats

Summary object to update in-place.

psflsst.afw.detection.Psf or None

Point spread function model. If None, all fields that depend on the PSF will be reset (generally to NaN).

bboxlsst.geom.Box2I

Bounding box of the image for which summary stats are being computed.

sourceslsst.afw.table.SourceCatalog or astropy.table.Table

Catalog for quantities that are computed from source table columns. If None, these quantities will be reset (generally to NaN). The type of this table must correspond to the sources_is_astropy argument.

image_masklsst.afw.image.Mask, optional

Mask image that may be used to compute distance-to-nearest-star metrics.

sources_is_astropybool, optional

Whether sources is an astropy.table.Table instance instead of an lsst.afw.table.Catalog instance. Default is False (the latter).

update_wcs_stats(summary, wcs, bbox, visitInfo)

Compute all summary-statistic fields that depend on the WCS model.

Parameters:
summarylsst.afw.image.ExposureSummaryStats

Summary object to update in-place.

wcslsst.afw.geom.SkyWcs or None

Astrometric calibration model. If None, all fields that depend on the WCS will be reset (generally to NaN).

bboxlsst.geom.Box2I

Bounding box of the image for which summary stats are being computed.

visitInfolsst.afw.image.VisitInfo

Observation information used in together with wcs to compute the zenith distance.