Linearizer¶
- class lsst.ip.isr.Linearizer(table=None, **kwargs)¶
- Bases: - IsrCalib- Parameter set for linearization. - These parameters are included in - lsst.afw.cameraGeom.Amplifier, but should be accessible externally to allow for testing.- Parameters:
- tablenumpy.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) 
- detectorlsst.afw.cameraGeom.Detector, optional
- Detector object. Passed to self.fromDetector() on init. 
- loglogging.Logger, optional
- Logger to handle messages. 
- kwargsdict, optional
- Other keyword arguments to pass to the parent init. 
 
- table
- 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: - hasLinearitybool
- Whether a linearity correction is defined for this detector. 
- overridebool
- Whether the detector parameters should be overridden. 
- ampNameslist[str]
- List of amplifier names to correct. 
- linearityCoeffsdict[str,np.ndarray]
- Coefficients to use in correction. Indexed by amplifier names. The format of the array depends on the type of correction to apply. 
- linearityTypedict[str,str]
- Type of correction to use, indexed by amplifier names. 
- linearityBBoxdict[str,lsst.geom.Box2I]
- Bounding box the correction is valid over, indexed by amplifier names. 
- fitParamsdict[str,np.ndarray], optional
- Linearity fit parameters used to construct the correction coefficients, indexed as above. 
- fitParamsErrdict[str,np.ndarray], optional
- Uncertainty values of the linearity fit parameters used to construct the correction coefficients, indexed as above. 
- fitChiSqdict[str,float], optional
- Chi-squared value of the linearity fit, indexed as above. 
- fitResidualsdict[str,np.ndarray], optional
- Residuals of the fit, indexed as above. Used for calculating photodiode corrections 
- fitResidualsSigmaMaddict[str,float], optional
- Robust median-absolute-deviation of fit residuals, scaled by the signal level. 
- fitResidualsUnmaskeddict[str,np.ndarray], optional
- Same as fitResiduals, but all outliers are included and not masked as nans. 
- fitResidualsModeldict[str,np.ndarray], optional
- The model count level for each of the fitResiduals. 
- linearFitThe linear fit to the low flux region of the curve.
- [intercept, slope]. 
- tableDatanp.ndarray, optional
- Lookup table data for the linearity correction. 
- inputAbscissadict[str,np.ndarray], optional
- Input abscissa used to construct linearizer (usually photodiode or exposure time). 
- inputOrdinatedict[str,np.ndarray], optional
- Input ordinate used to construct linearizer (raw mean counts). 
- inputMaskdict[str,np.ndarray], optional
- Input mask used for the fitting. 
- inputGroupingIndexdict[str,np.ndarray], optional
- Input grouping index used for fitting. 
- inputNormalizationdict[str,np.ndarray], optional
- Input normalization that was applied to the abscissa for each pair from the PTC used for the linearization fit. 
- absoluteReferenceAmplifierstr, optional
- Amplifier used for the reference for absolute linearization (DoubleSpline) mode. 
 - Version 1.4 adds - linearityTurnoffand- linearityMaxSignal. Version 1.5 adds- fitResidualsUnmasked,- inputAbscissa,- inputOrdinate,- inputMask,- inputGroupingIndex,- fitResidualsModel, and- inputNormalization.- Version 1.6 adds - absoluteReferenceAmplifier.- Attributes Summary - Methods Summary - apply(target)- Method to apply the calibration to the target object. - applyLinearity(image[, detector, log, gains])- 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. - 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. - updateMetadataFromExposures(exposures)- Extract and unify metadata information. - 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 - metadata¶
 - requiredAttributes¶
 - Methods Documentation - apply(target)¶
- Method to apply the calibration to the target object. 
 - applyLinearity(image, detector=None, log=None, gains=None)¶
- Apply the linearity to an image. - If the linearity parameters are populated, use those, otherwise use the values from the detector. - Parameters:
- imageimage
- Image to correct. 
- detectordetector, optional
- Detector to use to determine exposure trimmed state. If supplied, but no other linearity information is provided by the calibration, then the static solution stored in the detector will be used. 
- logLogger, optional
- Log object to use for logging. 
- gainsdict[str,float], optional
- Dictionary of amp name to gain. If this is provided then linearity terms will be converted from adu to electrons. Only used for Spline linearity corrections. 
 
- 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:
- dictionarydictorlsst.daf.base.PropertyList
- Source for the common keywords. 
 
- dictionary
- Raises:
- RuntimeError
- Raised if the dictionary does not match the expected OBSTYPE. 
 
 
 - classmethod determineCalibClass(metadata, message)¶
- Attempt to find calibration class in metadata. - Parameters:
- Returns:
- calibClassobject
- The class to use to read the file contents. Should be an - lsst.ip.isr.IsrCalibsubclass.
 
- calibClass
- Raises:
- ValueError
- Raised if the resulting calibClass is the base - lsst.ip.isr.IsrClass(which does not implement the content methods).
 
 
 - fromDetector(detector)¶
- Read linearity parameters from a detector. - Parameters:
- detectorlsst.afw.cameraGeom.detector
- Input detector with parameters to use. 
 
- detector
- Returns:
- caliblsst.ip.isr.Linearizer
- The calibration constructed from the detector. 
 
- calib
 
 - classmethod fromDict(dictionary)¶
- Construct a calibration from a dictionary of properties - Parameters:
- dictionarydict
- Dictionary of properties 
 
- dictionary
- Returns:
- caliblsst.ip.isr.Linearity
- Constructed calibration. 
 
- calib
- Raises:
- RuntimeError
- Raised if the supplied dictionary is for a different calibration. 
 
 
 - 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:
- tableListlist[astropy.table.Table]
- afwTable read from input file name. 
 
- tableList
- Returns:
- linearityLinearizer`
- Linearity parameters. 
 
- linearity
 - 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. 
 - getLinearityTypeByName(linearityTypeName)¶
- Determine the linearity class to use from the type name. - Parameters:
- linearityTypeNamestr
- String name of the linearity type that is needed. 
 
- Returns:
- linearityTypeLinearizeBase
- The appropriate linearity class to use. If no matching class is found, - Noneis returned.
 
- linearityType
 
 - getMetadata()¶
- Retrieve metadata associated with this calibration. - Returns:
- metalsst.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:
- caliblsst.ip.isr.IsrCalib
- Calibration contained within the file. 
 
- calib
 
 - classmethod readText(filename, **kwargs)¶
- Read calibration representation from a yaml/ecsv file. - Parameters:
- Returns:
- calibIsrCalibType
- 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:
- metadatalsst.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:
- tableListlist[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:
- setDatebool, 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
 
 - updateMetadataFromExposures(exposures)¶
- Extract and unify metadata information. - Parameters:
- exposureslist
- Exposures or other calibrations to scan. 
 
- exposures
 
 - validate(detector=None, amplifier=None)¶
- Validate linearity for a detector/amplifier. - Parameters:
- detectorlsst.afw.cameraGeom.Detector, optional
- Detector to validate, along with its amplifiers. 
- amplifierlsst.afw.cameraGeom.Amplifier, optional
- Single amplifier to validate. 
 
- detector
- Raises:
- RuntimeError
- Raised if there is a mismatch in linearity parameters, and the cameraGeom parameters are not being overridden. 
 
 
 - writeFits(filename)¶
- Write calibration data to a FITS file. 
 - writeText(filename, format='auto')¶
- Write the calibration data to a text file. - Parameters:
- Returns:
- usedstr
- 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.