ShutterMotionOpenIngestTask

class lsst.obs.lsst.ShutterMotionOpenIngestTask(butler, instrument, config=None, **kwargs)

Bases: IsrCalibIngestTask

Task to ingest shutter motion profiles into a butler repository.

This task specifically works on the “open” profile.

Parameters:
configShutterMotionIngestConfig

Configuration for the task.

instrumentInstrument

The instrument these datasets are from.

butlerButler

Writable butler instance, with butler.run set to the appropriate RUN collection for these datasets.

**kwargs

Additional keyword arguments.

Methods Summary

emptyMetadata()

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

getAssociationInfo(inputFile, calib, calibType)

Determine the information needed to create a dataId for this dataset.

getDatasetType()

Return the DatasetType to be ingested.

getDestinationCollection()

Return the collection that these datasets will be ingested to.

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.

readCalibFromFile(inputFile)

Read the inputFile, and determine its calibration type and read it.

run(locations[, run, file_filter, ...])

Ingest calibration data into a Butler data repository.

timer(name[, logLevel])

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

Methods Documentation

emptyMetadata() None

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

getAssociationInfo(inputFile, calib, calibType)

Determine the information needed to create a dataId for this dataset.

Parameters:
inputFilelsst.resources.ResourcePath

Original file containing the dataset. Used for log messages.

caliblsst.ip.isr.IsrCalib

The calibration dataset to study.

calibTypestr

The calibration type/version name.

Returns:
instrumentNamestr

Instrument this dataset belongs to.

whereClausestr

Butler query “where” that will find the exposure with matching dataId.

bindingdict [str: str]

Binding values for whereClause.

logIdstr

A string (or dataset convertable to string) to be used in downstream logs.

getDatasetType()

Return the DatasetType to be ingested.

Returns:
datasetTypelsst.daf.butler.DatasetType

The datasetType for the ingested data.

getDestinationCollection()

Return the collection that these datasets will be ingested to.

Returns:
collectionNamestr

The collection the data will be ingested to.

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.

readCalibFromFile(inputFile)

Read the inputFile, and determine its calibration type and read it.

Parameters:
inputFilelsst.resources.ResourcePath

File to be read to check ingestibility.

Returns:
caliblsst.ip.isr.IsrCalib

The appropriately subclassed implementation for this calibration type.

calibTypestr

The calibration type/version name.

run(locations, run=None, file_filter='Photodiode_Readings.*txt$|_photodiode.ecsv$|Electrometer.*fits$|EM.*fits$', track_file_attrs=None)

Ingest calibration data into a Butler data repository.

Parameters:
filesiterable over lsst.resources.ResourcePath

URIs to the files to be ingested.

runstr, optional

Name of the RUN-type collection to write to, overriding the default derived from the instrument name.

skip_existing_exposuresbool, optional

If True, skip photodiodes that have already been ingested (i.e. raws for which we already have a dataset with the same data ID in the target collection).

track_file_attrsbool, optional

Control whether file attributes such as the size or checksum should be tracked by the datastore. Whether this parameter is honored depends on the specific datastore implementation.

Returns:
refslist [lsst.daf.butler.DatasetRef]

Dataset references for ingested raws.

Raises:
RuntimeError

Raised if the number of exposures found for a photodiode file is not one

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