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,numpy.array]
- 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,numpy.array], optional
- Linearity fit parameters used to construct the correction coefficients, indexed as above. 
- fitParamsErrdict[str,numpy.array], 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,numpy.array], optional
- Residuals of the fit, indexed as above. Used for calculating photdiode corrections 
- linearFitThe linear fit to the low flux region of the curve.
- [intercept, slope]. 
- tableDatanumpy.array, optional
- Lookup table data for the linearity correction. 
 - Attributes Summary - 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. - 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 - requiredAttributes¶
 - Methods Documentation - apply(target)¶
- Method to apply the calibration to the target object. 
 - 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:
- imageimage
- Image to correct. 
- detectordetector
- Detector to use for linearity parameters if not already populated. 
- logLogger, 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:
- 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.