CrosstalkCalib¶
-
class
lsst.ip.isr.
CrosstalkCalib
(detector=None, nAmp=0, **kwargs)¶ Bases:
lsst.ip.isr.IsrCalib
Calibration of amp-to-amp crosstalk coefficients.
Parameters: - detector :
lsst.afw.cameraGeom.Detector
, optional Detector to use to pull coefficients from.
- nAmp :
int
, optional Number of amplifiers to initialize.
- log :
logging.Logger
, optional Log to write messages to.
- **kwargs
Parameters to pass to parent constructor.
Notes
The crosstalk attributes stored are:
- hasCrosstalk :
bool
- Whether there is crosstalk defined for this detector.
- nAmp :
int
- Number of amplifiers in this detector.
- crosstalkShape :
tuple
[int
,int
] - A tuple containing the shape of the
coeffs
matrix. This should be equivalent to (nAmp
,nAmp
). - coeffs :
numpy.ndarray
- A matrix containing the crosstalk coefficients. coeff[i][j] contains the coefficients to calculate the contribution amplifier_j has on amplifier_i (each row[i] contains the corrections for detector_i).
- coeffErr :
numpy.ndarray
, optional - A matrix (as defined by
coeffs
) containing the standard distribution of the crosstalk measurements. - coeffNum :
numpy.ndarray
, optional - A matrix containing the number of pixel pairs used to measure
the
coeffs
andcoeffErr
. - coeffValid :
numpy.ndarray
, optional - A matrix of Boolean values indicating if the coefficient is valid, defined as abs(coeff) > coeffErr / sqrt(coeffNum).
- interChip :
dict
[numpy.ndarray
] - A dictionary keyed by detectorName containing
coeffs
matrices used to correct for inter-chip crosstalk with a source on the detector indicated.
Attributes Summary
requiredAttributes
Methods Summary
apply
(target)Method to apply the calibration to the target object. calculateBackground
(mi[, badPixels])Estimate median background in image. calibInfoFromDict
(dictionary)Handle common keywords. determineCalibClass
(metadata, message)Attempt to find calibration class in metadata. extractAmp
(image, amp, ampTarget[, isTrimmed])Extract the image data from an amp, flipped to match ampTarget. fromDetector
(detector[, coeffVector])Set calibration parameters from the detector. fromDict
(dictionary)Construct a calibration from a dictionary of properties. fromTable
(tableList)Construct calibration from a list of tables. getMetadata
()Retrieve metadata associated with this calibration. readFits
(filename, **kwargs)Read calibration data from a FITS file. readText
(filename, **kwargs)Read calibration representation from a yaml/ecsv file. setMetadata
(metadata)Store a copy of the supplied metadata with this calibration. subtractCrosstalk
(thisExposure[, …])Subtract the crosstalk from thisExposure, optionally using a different source. toDict
()Return a dictionary containing the calibration properties. toTable
()Construct a list of tables containing the information in this calibration. updateMetadata
([setDate])Update calibration metadata. 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
-
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 :
-
static
calculateBackground
(mi, badPixels=['BAD'])¶ Estimate median background in image.
Getting a great background model isn’t important for crosstalk correction, since the crosstalk is at a low level. The median should be sufficient.
Parameters:
-
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.
Raises: - RuntimeError
Raised if the dictionary does not match the expected OBSTYPE.
- dictionary :
-
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.
Raises: - ValueError
Raised if the resulting calibClass is the base
lsst.ip.isr.IsrClass
(which does not implement the content methods).
- calibClass :
-
static
extractAmp
(image, amp, ampTarget, isTrimmed=False)¶ Extract the image data from an amp, flipped to match ampTarget.
Parameters: - image :
lsst.afw.image.Image
orlsst.afw.image.MaskedImage
Image containing the amplifier of interest.
- amp :
lsst.afw.cameraGeom.Amplifier
Amplifier on image to extract.
- ampTarget :
lsst.afw.cameraGeom.Amplifier
Target amplifier that the extracted image will be flipped to match.
- isTrimmed :
bool
The image is already trimmed. TODO : DM-15409 will resolve this.
Returns: - output :
lsst.afw.image.Image
Image of the amplifier in the desired configuration.
- image :
-
fromDetector
(detector, coeffVector=None)¶ Set calibration parameters from the detector.
Parameters: - detector :
lsst.afw.cameraGeom.Detector
Detector to use to set parameters from.
- coeffVector :
numpy.array
, optional Use the detector geometry (bounding boxes and flip information), but use
coeffVector
instead of the output ofdetector.getCrosstalk()
.
Returns: - calib :
lsst.ip.isr.CrosstalkCalib
The calibration constructed from the detector.
- 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
fromTable
(tableList)¶ Construct calibration from a list of tables.
This method uses the
fromDict
method to create the calibration, after constructing an appropriate dictionary from the input tables.Parameters: - tableList :
list
[lsst.afw.table.Table
] List of tables to use to construct the crosstalk calibration.
Returns: - calib :
lsst.ip.isr.CrosstalkCalib
The calibration defined in the tables.
- tableList :
-
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 :
-
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
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 :
-
subtractCrosstalk
(thisExposure, sourceExposure=None, crosstalkCoeffs=None, badPixels=['BAD'], minPixelToMask=45000, crosstalkStr='CROSSTALK', isTrimmed=False, backgroundMethod='None')¶ Subtract the crosstalk from thisExposure, optionally using a different source.
We set the mask plane indicated by
crosstalkStr
in a target amplifier for pixels in a source amplifier that exceedminPixelToMask
. Note that the correction is applied to all pixels in the amplifier, but only those that have a substantial crosstalk are masked withcrosstalkStr
.The uncorrected image is used as a template for correction. This is good enough if the crosstalk is small (e.g., coefficients < ~ 1e-3), but if it’s larger you may want to iterate.
Parameters: - thisExposure :
lsst.afw.image.Exposure
Exposure for which to subtract crosstalk.
- sourceExposure :
lsst.afw.image.Exposure
, optional Exposure to use as the source of the crosstalk. If not set, thisExposure is used as the source (intra-detector crosstalk).
- crosstalkCoeffs :
numpy.ndarray
, optional. Coefficients to use to correct crosstalk.
- badPixels :
list
ofstr
Mask planes to ignore.
- minPixelToMask :
float
Minimum pixel value (relative to the background level) in source amplifier for which to set
crosstalkStr
mask plane in target amplifier.- crosstalkStr :
str
Mask plane name for pixels greatly modified by crosstalk (above minPixelToMask).
- isTrimmed :
bool
The image is already trimmed. This should no longer be needed once DM-15409 is resolved.
- backgroundMethod :
str
Method used to subtract the background. “AMP” uses amplifier-by-amplifier background levels, “DETECTOR” uses full exposure/maskedImage levels. Any other value results in no background subtraction.
- thisExposure :
-
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 :
-
toTable
()¶ Construct a list of tables containing the information in this calibration.
The list of tables should create an identical calibration after being passed to this class’s fromTable method.
Returns: - tableList :
list
[lsst.afw.table.Table
] List of tables containing the crosstalk calibration information.
- tableList :
-
updateMetadata
(setDate=False, **kwargs)¶ Update calibration metadata.
This calls the base class’s method after ensuring the required calibration keywords will be saved.
Parameters: - setDate :
bool
, optional Update the CALIBDATE fields in the metadata to the current time. Defaults to False.
- kwargs
Other keyword parameters to set in the metadata.
- setDate :
-
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 :
- detector :