ComputeVisitRegionsTask

class lsst.obs.base.ComputeVisitRegionsTask(config: ComputeVisitRegionsConfig, *, butler: Butler, **kwargs: Any)

Bases: Task

Abstract base class for the subtask of DefineVisitsTask that is responsible for extracting spatial regions for visits and visit+detector combinations.

Subclasses should be registered with ComputeVisitRegionsTask.registry to enable use by DefineVisitsTask.

Parameters:
configComputeVisitRegionsConfig

Configuration information.

butlerlsst.daf.butler.Butler

The butler to use.

**kwargs

Additional keyword arguments forwarded to the Task constructor.

Attributes Summary

registry

Methods Summary

compute(visit, *[, collections])

Compute regions for the given visit and all detectors in that visit.

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.

getInstrument(instrumentName)

Retrieve an Instrument associated with this instrument name.

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.

timer(name[, logLevel])

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

Attributes Documentation

registry = <abc.Registry object>

Methods Documentation

abstract compute(visit: VisitDefinitionData, *, collections: Sequence[str] | str | None = None) tuple[lsst.sphgeom._sphgeom.Region, dict[int, lsst.sphgeom._sphgeom.Region]]

Compute regions for the given visit and all detectors in that visit.

Parameters:
visitVisitDefinitionData

Struct describing the visit and the exposures associated with it.

collectionscollections.abc.Sequence [ str ] or str or None

Collections to be searched for camera geometry, overriding self.butler.collections.defaults. Can be any of the types supported by the collections argument to butler construction.

Returns:
visitRegionlsst.sphgeom.Region

Region for the full visit.

visitDetectorRegionsdict [ int, lsst.sphgeom.Region ]

Dictionary mapping detector ID to the region for that detector. Should include all detectors in the visit.

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”.

getInstrument(instrumentName: str) Instrument

Retrieve an Instrument associated with this instrument name.

Parameters:
instrumentNamestr

The name of the instrument.

Returns:
instrumentInstrument

The associated instrument object.

Notes

The result is cached.

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.

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