CrosstalkCalib¶
- 
class 
lsst.ip.isr.CrosstalkCalib(detector=None, nAmp=0, **kwargs)¶ Bases:
lsst.ip.isr.IsrCalibCalibration 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 
coeffsmatrix. 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 
coeffsandcoeffErr. - 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 
coeffsmatrices used to correct for inter-chip crosstalk with a source on the detector indicated. 
Attributes Summary
requiredAttributesMethods 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 : 
dictorlsst.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.IsrCalibsubclass.
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.Imageorlsst.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
coeffVectorinstead 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
fromDictmethod 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
PropertyListcan 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
crosstalkStrin 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 : 
listofstr Mask planes to ignore.
- minPixelToMask : 
float Minimum pixel value (relative to the background level) in source amplifier for which to set
crosstalkStrmask 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 :