Defects¶
- class lsst.ip.isr.Defects(defectList=None, metadata=None, *, normalize_on_init=True, **kwargs)¶
Bases:
IsrCalib
Calibration handler for collections of
lsst.meas.algorithms.Defect
.- Parameters:
- defectListiterable, optional
Collections of defects to apply to the image. Can be an iterable of
lsst.meas.algorithms.Defect
orlsst.geom.BoxI
.- metadata
lsst.daf.base.PropertyList
, optional Metadata to associate with the defects. Will be copied and overwrite existing metadata, if any. If not supplied the existing metadata will be reset.
- normalize_on_init
bool
If True, normalization is applied to the defects in
defectList
to remove duplicates, eliminate overlaps, etc.
Notes
Defects are stored within this collection in a “reduced” or “normalized” form: rather than simply storing the bounding boxes which are added to the collection, we eliminate overlaps and duplicates. This normalization procedure may introduce overhead when adding many new defects; it may be temporarily disabled using the
Defects.bulk_update
context manager if necessary.The attributes stored in this calibration are:
- _defects
list
[lsst.meas.algorithms.Defect
] The collection of Defect objects.
Attributes Summary
Methods Summary
append
(value)apply
(target)Method to apply the calibration to the target object.
Temporarily suspend normalization of the defect list.
calibInfoFromDict
(dictionary)Handle common keywords.
copy
()Copy the defects to a new list, creating new defects from the bounding boxes.
determineCalibClass
(metadata, message)Attempt to find calibration class in metadata.
fromDetector
(detector)Modify the calibration parameters to match the supplied detector.
fromDict
(dictionary)Construct a calibration from a dictionary of properties.
fromFootprintList
(fpList)Compute a defect list from a footprint list, optionally growing the footprints.
fromMask
(maskedImage, maskName)Compute a defect list from a specified mask plane.
fromTable
(tableList[, normalize_on_init])Construct a
Defects
from the contents of aBaseCatalog
.Retrieve metadata associated with this calibration.
insert
(index, value)maskPixels
(maskedImage[, maskName])Set mask plane based on these defects.
readFits
(filename, **kwargs)Read calibration data from a FITS file.
readLsstDefectsFile
(filename[, ...])Read defects information from a legacy LSST format text file.
readText
(filename, **kwargs)Read calibration representation from a yaml/ecsv file.
setMetadata
(metadata)Store a copy of the supplied metadata with this calibration.
toDict
()Return a dictionary containing the calibration properties.
Convert defect list to
BaseCatalog
using the FITS region standard.toTable
()Convert defects to a simple table form that we use to write to text files.
Make a transposed copy of this defect list.
updateMetadata
([camera, detector, ...])Update metadata keywords with new values.
validate
([other])Validate that this calibration is defined and can be used.
writeFits
(filename)Write calibration data to a FITS file.
writeText
(filename[, format])Write the calibration data to a text file.
Attributes Documentation
- requiredAttributes¶
Methods Documentation
- append(value)¶
- apply(target)¶
Method to apply the calibration to the target object.
- bulk_update()¶
Temporarily suspend normalization of the defect list.
- calibInfoFromDict(dictionary)¶
Handle common keywords.
This isn’t an ideal solution, but until all calibrations expect to find everything in the metadata, they still need to search through dictionaries.
- Parameters:
- dictionary
dict
orlsst.daf.base.PropertyList
Source for the common keywords.
- dictionary
- Raises:
- RuntimeError
Raised if the dictionary does not match the expected OBSTYPE.
- copy()¶
Copy the defects to a new list, creating new defects from the bounding boxes.
- Returns:
- new
Defects
New list with new
Defect
entries.
- new
Notes
This is not a shallow copy in that new
Defect
instances are created from the original bounding boxes. It’s also not a deep copy since the bounding boxes are not recreated.
- classmethod determineCalibClass(metadata, message)¶
Attempt to find calibration class in metadata.
- Parameters:
- Returns:
- calibClass
object
The class to use to read the file contents. Should be an
lsst.ip.isr.IsrCalib
subclass.
- calibClass
- Raises:
- ValueError
Raised if the resulting calibClass is the base
lsst.ip.isr.IsrClass
(which does not implement the content methods).
- fromDetector(detector)¶
Modify the calibration parameters to match the supplied detector.
- Parameters:
- detector
lsst.afw.cameraGeom.Detector
Detector to use to set parameters from.
- detector
- Raises:
- NotImplementedError
Raised if not implemented by a subclass. This needs to be implemented by subclasses for each calibration type.
- classmethod fromDict(dictionary)¶
Construct a calibration from a dictionary of properties.
Must be implemented by the specific calibration subclasses.
- Parameters:
- dictionary
dict
Dictionary of properties.
- dictionary
- Returns:
- calib
lsst.ip.isr.CalibType
Constructed calibration.
- calib
- Raises:
- RuntimeError
Raised if the supplied dictionary is for a different calibration.
- classmethod fromFootprintList(fpList)¶
Compute a defect list from a footprint list, optionally growing the footprints.
- Parameters:
- fpList
list
oflsst.afw.detection.Footprint
Footprint list to process.
- fpList
- Returns:
- defects
Defects
List of defects.
- defects
- classmethod fromMask(maskedImage, maskName)¶
Compute a defect list from a specified mask plane.
- classmethod fromTable(tableList, normalize_on_init=True)¶
Construct a
Defects
from the contents of aBaseCatalog
.- Parameters:
- table
lsst.afw.table.BaseCatalog
Table with one row per defect.
- normalize_on_init
bool
, optional If
True
, normalization is applied to the defects listed in the table to remove duplicates, eliminate overlaps, etc. Otherwise the defects in the returned object exactly match those in the table.
- table
- Returns:
Notes
Two table formats are recognized. The first is the FITS regions definition tabular format written by
toFitsRegionTable
where the pixel origin is corrected from FITS 1-based to a 0-based origin. The second is the legacy defects format using columnsx0
,y0
(bottom left hand pixel of box in 0-based coordinates),width
andheight
.The FITS standard regions can only read BOX, POINT, or ROTBOX with a zero degree rotation.
- getMetadata()¶
Retrieve metadata associated with this calibration.
- Returns:
- meta
lsst.daf.base.PropertyList
Metadata. The returned
PropertyList
can be modified by the caller and the changes will be written to external files.
- meta
- insert(index, value)¶
- maskPixels(maskedImage, maskName='BAD')¶
Set mask plane based on these defects.
- Parameters:
- maskedImage
lsst.afw.image.MaskedImage
Image to process. Only the mask plane is updated.
- maskNamestr, optional
Mask plane name to use.
- maskedImage
- classmethod readFits(filename, **kwargs)¶
Read calibration data from a FITS file.
- Parameters:
- Returns:
- calib
lsst.ip.isr.IsrCalib
Calibration contained within the file.
- calib
- classmethod readLsstDefectsFile(filename, normalize_on_init=False)¶
Read defects information from a legacy LSST format text file.
- Parameters:
- Returns:
- defects
Defects
The defects.
- defects
Notes
These defect text files are used as the human readable definitions of defects in calibration data definition repositories. The format is to use four columns defined as follows:
- x0
int
X coordinate of bottom left corner of box.
- y0
int
Y coordinate of bottom left corner of box.
- width
int
X extent of the box.
- height
int
Y extent of the box.
Files of this format were used historically to represent defects in simple text form. Use
Defects.readText
andDefects.writeText
to use the more modern format.
- classmethod readText(filename, **kwargs)¶
Read calibration representation from a yaml/ecsv file.
- Parameters:
- Returns:
- calib
IsrCalibType
Calibration class.
- calib
- Raises:
- RuntimeError
Raised if the filename does not end in “.ecsv” or “.yaml”.
- setMetadata(metadata)¶
Store a copy of the supplied metadata with this calibration.
- Parameters:
- metadata
lsst.daf.base.PropertyList
Metadata to associate with the calibration. Will be copied and overwrite existing metadata.
- metadata
- toDict()¶
Return a dictionary containing the calibration properties.
The dictionary should be able to be round-tripped through
fromDict
.- Returns:
- dictionary
dict
Dictionary of properties.
- dictionary
- toFitsRegionTable()¶
Convert defect list to
BaseCatalog
using the FITS region standard.- Returns:
- table
lsst.afw.table.BaseCatalog
Defects in tabular form.
- table
Notes
The table created uses the FITS regions definition tabular format. The
X
andY
coordinates are converted to FITS Physical coordinates that have origin pixel (1, 1) rather than the (0, 0) used in LSST software.
- toTable()¶
Convert defects to a simple table form that we use to write to text files.
- Returns:
- table
lsst.afw.table.BaseCatalog
Defects in simple tabular form.
- table
Notes
These defect tables are used as the human readable definitions of defects in calibration data definition repositories. The format is to use four columns defined as follows:
- transpose()¶
Make a transposed copy of this defect list.
- Returns:
- retDefectList
Defects
Transposed list of defects.
- retDefectList
- updateMetadata(camera=None, detector=None, filterName=None, setCalibId=False, setCalibInfo=False, setDate=False, **kwargs)¶
Update metadata keywords with new values.
- Parameters:
- camera
lsst.afw.cameraGeom.Camera
, optional Reference camera to use to set
_instrument
field.- detector
lsst.afw.cameraGeom.Detector
, optional Reference detector to use to set
_detector*
fields.- filterName
str
, optional Filter name to assign to this calibration.
- setCalibId
bool
, optional Construct the
_calibId
field from other fields.- setCalibInfo
bool
, optional Set calibration parameters from metadata.
- setDate
bool
, optional Ensure the metadata
CALIBDATE
fields are set to the current datetime.- kwargs
dict
orcollections.abc.Mapping
, optional Set of
key=value
pairs to assign to the metadata.
- camera
- validate(other=None)¶
Validate that this calibration is defined and can be used.
- writeFits(filename)¶
Write calibration data to a FITS file.
- writeText(filename, format='auto')¶
Write the calibration data to a text file.
- Parameters:
- Returns:
- used
str
The name of the file used to write the data. This may differ from the input if the format is explicitly chosen.
- used
- Raises:
- RuntimeError
Raised if filename does not end in a known extension, or if all information cannot be written.
Notes
The file is written to YAML/ECSV format and will include any associated metadata.