Defects¶
-
class
lsst.ip.isr.Defects(defectList=None, metadata=None, *, normalize_on_init=True, **kwargs)¶ Bases:
lsst.ip.isr.IsrCalibCalibration handler for collections of
lsst.meas.algorithms.Defect.Parameters: - defectList : iterable, optional
Collections of defects to apply to the image. Can be an iterable of
lsst.meas.algorithms.Defectorlsst.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
defectListto 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_updatecontext manager if necessary.The attributes stored in this calibration are:
- _defects :
list[lsst.meas.algorithms.Defect] - The collection of Defect objects.
Attributes Summary
requiredAttributesMethods Summary
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. 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 Defectsfrom the contents of aBaseCatalog.getMetadata()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. toFitsRegionTable()Convert defect list to BaseCatalogusing the FITS region standard.toTable()Convert defects to a simple table form that we use to write to text files. transpose()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.
Parameters: - target :
object Thing to validate against.
Returns: - valid :
bool Returns true if the calibration was applied correctly.
Raises: - NotImplementedError
Raised if not implemented.
- target :
-
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 :
dictorlsst.daf.base.PropertyList Source for the common keywords.
Raises: - RuntimeError
Raised if the dictionary does not match the expected OBSTYPE.
- dictionary :
-
copy()¶ Copy the defects to a new list, creating new defects from the bounding boxes.
Returns: - new :
Defects New list with new
Defectentries.
Notes
This is not a shallow copy in that new
Defectinstances are created from the original bounding boxes. It’s also not a deep copy since the bounding boxes are not recreated.- new :
-
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.IsrCalibsubclass.
Raises: - ValueError
Raised if the resulting calibClass is the base
lsst.ip.isr.IsrClass(which does not implement the content methods).
- calibClass :
-
fromDetector(detector)¶ Modify the calibration parameters to match the supplied detector.
Parameters: - detector :
lsst.afw.cameraGeom.Detector Detector to use to set parameters from.
Raises: - NotImplementedError
Raised if not implemented by a subclass. This needs to be implemented by subclasses for each calibration type.
- detector :
-
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.
Returns: - calib :
lsst.ip.isr.CalibType Constructed calibration.
Raises: - RuntimeError
Raised if the supplied dictionary is for a different calibration.
- dictionary :
-
classmethod
fromFootprintList(fpList)¶ Compute a defect list from a footprint list, optionally growing the footprints.
Parameters: - fpList :
listoflsst.afw.detection.Footprint Footprint list to process.
Returns: - defects :
Defects List of defects.
- fpList :
-
classmethod
fromMask(maskedImage, maskName)¶ Compute a defect list from a specified mask plane.
Parameters: Returns: - defects :
Defects Defect list constructed from masked pixels.
- defects :
-
classmethod
fromTable(tableList, normalize_on_init=True)¶ Construct a
Defectsfrom 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.
Returns: Notes
Two table formats are recognized. The first is the FITS regions definition tabular format written by
toFitsRegionTablewhere 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),widthandheight.The FITS standard regions can only read BOX, POINT, or ROTBOX with a zero degree rotation.
- table :
-
getMetadata()¶ Retrieve metadata associated with this calibration.
Returns: - meta :
lsst.daf.base.PropertyList Metadata. The returned
PropertyListcan 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.
- maskName : str, 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.
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.readTextandDefects.writeTextto use the more modern format.- defects :
-
classmethod
readText(filename, **kwargs)¶ Read calibration representation from a yaml/ecsv file.
Parameters: Returns: - calib :
IsrCalibType Calibration class.
Raises: - RuntimeError
Raised if the filename does not end in “.ecsv” or “.yaml”.
- calib :
-
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
BaseCatalogusing the FITS region standard.Returns: - table :
lsst.afw.table.BaseCatalog Defects in tabular form.
Notes
The table created uses the FITS regions definition tabular format. The
XandYcoordinates are converted to FITS Physical coordinates that have origin pixel (1, 1) rather than the (0, 0) used in LSST software.- table :
-
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.
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:
- table :
-
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
_instrumentfield.- 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
_calibIdfield from other fields.- setCalibInfo :
bool, optional Set calibration parameters from metadata.
- setDate :
bool, optional Ensure the metadata
CALIBDATEfields are set to the current datetime.- kwargs :
dictorcollections.abc.Mapping, optional Set of
key=valuepairs to assign to the metadata.
- camera :
-
validate(other=None)¶ Validate that this calibration is defined and can be used.
Parameters: - other :
object, optional Thing to validate against.
Returns: - valid :
bool Returns true if the calibration is valid and appropriate.
- other :
-
writeFits(filename)¶ Write calibration data to a FITS file.
Parameters: - filename :
str Filename to write data to.
Returns: - used :
str The name of the file used to write the data.
- filename :
-
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.
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.
- used :