DarkEnergyCamera#

class lsst.obs.decam.DarkEnergyCamera(**kwargs)#

Bases: Instrument

Attributes Summary

filterDefinitions

obsDataPackage

Name of the package containing the text curated calibration files.

policyName

Instrument specific name to use when locating a policy or configuration file in the file system.

Methods Summary

getCamera()

Retrieve the cameraGeom representation of this instrument.

getName()

Return the short (dimension) name for this instrument.

getRawFormatter(dataId)

Return the Formatter class that should be used to read a particular raw file.

register(registry[, update])

Insert instrument, and other relevant records into Registry.

Attributes Documentation

filterDefinitions = <lsst.obs.base.filters.FilterDefinitionCollection object>#
obsDataPackage: str | None = 'obs_decam_data'#

Name of the package containing the text curated calibration files. Usually a obs _data package. If None no curated calibration files will be read. (str)

policyName: str | None = 'decam'#

Instrument specific name to use when locating a policy or configuration file in the file system.

Methods Documentation

getCamera()#

Retrieve the cameraGeom representation of this instrument.

This is a temporary API that should go away once obs packages have a standardized approach to writing versioned cameras to a Gen3 repo.

classmethod getName()#

Return the short (dimension) name for this instrument.

This is not (in general) the same as the class name - it’s what is used as the value of the “instrument” field in data IDs, and is usually an abbreviation of the full name.

getRawFormatter(dataId)#

Return the Formatter class that should be used to read a particular raw file.

Parameters#

dataIdDataId

Dimension-based ID for the raw file or files being ingested.

Returns#

formatterlsst.daf.butler.Formatter class

Class to be used that reads the file into the correct Python object for the raw data.

register(registry, update=False)#

Insert instrument, and other relevant records into Registry.

Parameters#

registrylsst.daf.butler.Registry

Registry client for the data repository to modify.

updatebool, optional

If True (False is default), update existing records if they differ from the new ones.

Raises#

lsst.daf.butler.registry.ConflictingDefinitionError

Raised if any existing record has the same key but a different definition as one being registered.

Notes#

New records can always be added by calling this method multiple times, as long as no existing records have changed (if existing records have changed, update=True must be used). Old records can never be removed by this method.

Implementations should guarantee that registration is atomic (the registry should not be modified if any error occurs) and idempotent at the level of individual dimension entries; new detectors and filters should be added, but changes to any existing record should not be. This can generally be achieved via a block like

with registry.transaction():
    registry.syncDimensionData("instrument", ...)
    registry.syncDimensionData("detector", ...)
    self.registerFilters(registry)