Linearizer¶
- 
class lsst.ip.isr.Linearizer(table=None, **kwargs)¶
- Bases: - lsst.ip.isr.IsrCalib- Parameter set for linearization. - These parameters are included in - lsst.afw.cameraGeom.Amplifier, but should be accessible externally to allow for testing.- Parameters: - table : numpy.array, optional
- Lookup table; a 2-dimensional array of floats: - one row for each row index (value of coef[0] in the amplifier)
- one column for each image value
 - To avoid copying the table the last index should vary fastest (numpy default “C” order) 
- detector : lsst.afw.cameraGeom.Detector, optional
- Detector object. Passed to self.fromDetector() on init. 
- log : logging.Logger, optional
- Logger to handle messages. 
- kwargs : dict, optional
- Other keyword arguments to pass to the parent init. 
 - Raises: - RuntimeError
- Raised if the supplied table is not 2D, or if the table has fewer columns than rows (indicating that the indices are swapped). 
 - Notes - The linearizer attributes stored are: - hasLinearity : bool
- Whether a linearity correction is defined for this detector.
- override : bool
- Whether the detector parameters should be overridden.
- ampNames : list[str]
- List of amplifier names to correct.
- linearityCoeffs : dict[str,numpy.array]
- Coefficients to use in correction. Indexed by amplifier names. The format of the array depends on the type of correction to apply.
- linearityType : dict[str,str]
- Type of correction to use, indexed by amplifier names.
- linearityBBox : dict[str,lsst.geom.Box2I]
- Bounding box the correction is valid over, indexed by amplifier names.
- fitParams : dict[str,numpy.array], optional
- Linearity fit parameters used to construct the correction coefficients, indexed as above.
- fitParamsErr : dict[str,numpy.array], optional
- Uncertainty values of the linearity fit parameters used to construct the correction coefficients, indexed as above.
- fitChiSq : dict[str,float], optional
- Chi-squared value of the linearity fit, indexed as above.
- fitResiduals : dict[str,numpy.array], optional
- Residuals of the fit, indexed as above. Used for calculating photdiode corrections
- linearFit : The linear fit to the low flux region of the curve.
- [intercept, slope].
- tableData : numpy.array, optional
- Lookup table data for the linearity correction.
 - Attributes Summary - requiredAttributes- Methods Summary - apply(target)- Method to apply the calibration to the target object. - applyLinearity(image[, detector, log])- Apply the linearity to an image. - calibInfoFromDict(dictionary)- Handle common keywords. - determineCalibClass(metadata, message)- Attempt to find calibration class in metadata. - fromDetector(detector)- Read linearity parameters from a detector. - fromDict(dictionary)- Construct a calibration from a dictionary of properties - fromTable(tableList)- Read linearity from a FITS file. - getLinearityTypeByName(linearityTypeName)- Determine the linearity class to use from the type name. - 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. - toDict()- Return linearity parameters as a dict. - toTable()- Construct a list of tables containing the information in this calibration. - updateMetadata([setDate])- Update metadata keywords with new values. - validate([detector, amplifier])- Validate linearity for a detector/amplifier. - 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 : 
 - 
applyLinearity(image, detector=None, log=None)¶
- Apply the linearity to an image. - If the linearity parameters are populated, use those, otherwise use the values from the detector. - Parameters: - image : image
- Image to correct. 
- detector : detector
- Detector to use for linearity parameters if not already populated. 
- log : Logger, optional
- Log object to use for logging. 
 
- image : 
 - 
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 : 
 - 
fromDetector(detector)¶
- Read linearity parameters from a detector. - Parameters: - detector : lsst.afw.cameraGeom.detector
- Input detector with parameters to use. 
 - Returns: - calib : lsst.ip.isr.Linearizer
- The calibration constructed from the detector. 
 
- detector : 
 - 
classmethod fromDict(dictionary)¶
- Construct a calibration from a dictionary of properties - Parameters: - dictionary : dict
- Dictionary of properties 
 - Returns: - calib : lsst.ip.isr.Linearity
- Constructed calibration. 
 - Raises: - RuntimeError
- Raised if the supplied dictionary is for a different calibration. 
 
- dictionary : 
 - 
classmethod fromTable(tableList)¶
- Read linearity from a FITS file. - This method uses the - fromDictmethod to create the calibration, after constructing an appropriate dictionary from the input tables.- Parameters: - tableList : list[astropy.table.Table]
- afwTable read from input file name. 
 - Returns: - linearity : Linearizer`
- Linearity parameters. 
 - Notes - The method reads a FITS file with 1 or 2 extensions. The metadata is read from the header of extension 1, which must exist. Then the table is loaded, and the [‘AMPLIFIER_NAME’, ‘TYPE’, ‘COEFFS’, ‘BBOX_X0’, ‘BBOX_Y0’, ‘BBOX_DX’, ‘BBOX_DY’] columns are read and used to set each dictionary by looping over rows. Extension 2 is then attempted to read in the try block (which only exists for lookup tables). It has a column named ‘LOOKUP_VALUES’ that contains a vector of the lookup entries in each row. 
- tableList : 
 - 
getLinearityTypeByName(linearityTypeName)¶
- Determine the linearity class to use from the type name. - Parameters: - linearityTypeName : str
- String name of the linearity type that is needed. 
 - Returns: - linearityType : LinearizeBase
- The appropriate linearity class to use. If no matching class is found, - Noneis returned.
 
 - 
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 : 
 - 
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[astropy.table.Table]
- List of tables containing the linearity calibration information. 
 
- tableList : 
 - 
updateMetadata(setDate=False, **kwargs)¶
- Update metadata keywords with new values. - 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(detector=None, amplifier=None)¶
- Validate linearity for a detector/amplifier. - Parameters: - detector : lsst.afw.cameraGeom.Detector, optional
- Detector to validate, along with its amplifiers. 
- amplifier : lsst.afw.cameraGeom.Amplifier, optional
- Single amplifier to validate. 
 - Raises: - RuntimeError
- Raised if there is a mismatch in linearity parameters, and the cameraGeom parameters are not being overridden. 
 
- detector : 
 - 
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 : 
 
- table :