lsst.ip.isr gd2a69bfd97+f32573b122
Loading...
Searching...
No Matches
lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel Class Reference
Inheritance diagram for lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel:
lsst.ip.isr.calibType.IsrCalib

Public Member Functions

 __init__ (self, camera=None, level=None, **kwargs)
 
 updateMetadata (self, setDate=False, **kwargs)
 
 initFromCamera (self, camera, detectorId=None)
 
 getLengths (self)
 
 fromDict (cls, dictionary)
 
 toDict (self)
 
 fromTable (cls, tableList)
 
 toTable (self)
 
 repackCorrelations (self, amp, correlationShape)
 
 makeDetectorKernelFromAmpwiseKernels (self, detectorName, ampsToExclude=[])
 
 replaceDetectorKernelWithAmpKernel (self, ampName, detectorName)
 
 requiredAttributes (self)
 
 requiredAttributes (self, value)
 
 __str__ (self)
 
 __eq__ (self, other)
 
 metadata (self)
 
 getMetadata (self)
 
 setMetadata (self, metadata)
 
 updateMetadataFromExposures (self, exposures)
 
 calibInfoFromDict (self, dictionary)
 
 determineCalibClass (cls, metadata, message)
 
 readText (cls, filename, **kwargs)
 
 writeText (self, filename, format="auto")
 
 readFits (cls, filename, **kwargs)
 
 writeFits (self, filename)
 
 fromDetector (self, detector)
 
 validate (self, other=None)
 
 apply (self, target)
 

Public Attributes

str level = level
 
 expIdMask = dict()
 
 rawMeans = dict()
 
 rawVariances = dict()
 
 rawXcorrs = dict()
 
list badAmps = list()
 
tuple shape = (17, 17)
 
 gain = dict()
 
 noise = dict()
 
 meanXcorrs = dict()
 
 valid = dict()
 
 ampKernels = dict()
 
 detKernels = dict()
 
 requiredAttributes = set(["_OBSTYPE", "_SCHEMA", "_VERSION"])
 
 log = log if log else logging.getLogger(__name__)
 

Protected Attributes

 _instrument = None
 
 _raftName = None
 
 _slotName = None
 
 _detectorName = None
 
 _detectorSerial = None
 
 _detectorId = None
 
 _filter = None
 
str _calibId = None
 
 _seqfile = None
 
 _seqname = None
 
 _seqcksum = None
 
 _metadata = PropertyList()
 
 _requiredAttributes
 

Static Protected Attributes

str _OBSTYPE = "generic"
 
str _SCHEMA = "NO SCHEMA"
 
int _VERSION = 0
 

Detailed Description

Calibration of brighter-fatter kernels for an instrument.

ampKernels are the kernels for each amplifier in a detector, as
generated by having ``level == 'AMP'``.

detectorKernel is the kernel generated for a detector as a
whole, as generated by having ``level == 'DETECTOR'``.

makeDetectorKernelFromAmpwiseKernels is a method to generate the
kernel for a detector, constructed by averaging together the
ampwise kernels in the detector.  The existing application code is
only defined for kernels with ``level == 'DETECTOR'``, so this method
is used if the supplied kernel was built with ``level == 'AMP'``.

Parameters
----------
camera : `lsst.afw.cameraGeom.Camera`
    Camera describing detector geometry.
level : `str`
    Level the kernels will be generated for.
log : `logging.Logger`, optional
    Log to write messages to.
**kwargs :
    Parameters to pass to parent constructor.

Notes
-----
Version 1.1 adds the `expIdMask` property, and substitutes
`means` and `variances` for `rawMeans` and `rawVariances`
from the PTC dataset.

expIdMask : `dict`, [`str`,`numpy.ndarray`]
    Dictionary keyed by amp names containing the mask produced after
    outlier rejection.
rawMeans : `dict`, [`str`, `numpy.ndarray`]
    Dictionary keyed by amp names containing the unmasked average of the
    means of the exposures in each flat pair.
rawVariances : `dict`, [`str`, `numpy.ndarray`]
    Dictionary keyed by amp names containing the variance of the
    difference image of the exposures in each flat pair.
    Corresponds to rawVars of PTC.
rawXcorrs : `dict`, [`str`, `numpy.ndarray`]
    Dictionary keyed by amp names containing an array of measured
    covariances per mean flux.
    Corresponds to covariances of PTC.
badAmps : `list`
    List of bad amplifiers names.
shape : `tuple`
    Tuple of the shape of the BFK kernels.
gain : `dict`, [`str`,`float`]
    Dictionary keyed by amp names containing the fitted gains.
noise : `dict`, [`str`,`float`]
    Dictionary keyed by amp names containing the fitted noise.
meanXcorrs : `dict`, [`str`,`numpy.ndarray`]
    Dictionary keyed by amp names containing the averaged
    cross-correlations.
valid : `dict`, [`str`,`bool`]
    Dictionary keyed by amp names containing validity of data.
ampKernels : `dict`, [`str`, `numpy.ndarray`]
    Dictionary keyed by amp names containing the BF kernels.
detKernels : `dict`
    Dictionary keyed by detector names containing the BF kernels.

Definition at line 42 of file brighterFatterKernel.py.

Constructor & Destructor Documentation

◆ __init__()

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.__init__ ( self,
camera = None,
level = None,
** kwargs )

Definition at line 110 of file brighterFatterKernel.py.

Member Function Documentation

◆ __eq__()

lsst.ip.isr.calibType.IsrCalib.__eq__ ( self,
other )
inherited
Calibration equivalence.

Running ``calib.log.setLevel(0)`` enables debug statements to
identify problematic fields.

Definition at line 105 of file calibType.py.

◆ __str__()

lsst.ip.isr.calibType.IsrCalib.__str__ ( self)
inherited

Definition at line 102 of file calibType.py.

◆ apply()

lsst.ip.isr.calibType.IsrCalib.apply ( self,
target )
inherited
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.

Definition at line 706 of file calibType.py.

◆ calibInfoFromDict()

lsst.ip.isr.calibType.IsrCalib.calibInfoFromDict ( self,
dictionary )
inherited
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` or `lsst.daf.base.PropertyList`
    Source for the common keywords.

Raises
------
RuntimeError
    Raised if the dictionary does not match the expected OBSTYPE.

Definition at line 325 of file calibType.py.

◆ determineCalibClass()

lsst.ip.isr.calibType.IsrCalib.determineCalibClass ( cls,
metadata,
message )
inherited
Attempt to find calibration class in metadata.

Parameters
----------
metadata : `dict` or `lsst.daf.base.PropertyList`
    Metadata possibly containing a calibration class entry.
message : `str`
    Message to include in any errors.

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).

Definition at line 391 of file calibType.py.

◆ fromDetector()

lsst.ip.isr.calibType.IsrCalib.fromDetector ( self,
detector )
inherited
Modify the calibration parameters to match the supplied detector.

Parameters
----------
detector : `lsst.afw.cameraGeom.Detector`
    Detector to use to set parameters from.

Raises
------
NotImplementedError
    Raised if not implemented by a subclass.
    This needs to be implemented by subclasses for each
    calibration type.

Reimplemented in lsst.ip.isr.crosstalk.CrosstalkCalib, lsst.ip.isr.deferredCharge.DeferredChargeCalib, lsst.ip.isr.linearize.Linearizer, and lsst.ip.isr.ptcDataset.PhotonTransferCurveDataset.

Definition at line 588 of file calibType.py.

◆ fromDict()

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.fromDict ( cls,
dictionary )
Construct a calibration from a dictionary of properties.

Parameters
----------
dictionary : `dict`
    Dictionary of properties.

Returns
-------
calib : `lsst.ip.isr.BrighterFatterKernel`
    Constructed calibration.

Raises
------
RuntimeError
    Raised if the supplied dictionary is for a different
    calibration.
    Raised if the version of the supplied dictionary is 1.0.

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 241 of file brighterFatterKernel.py.

◆ fromTable()

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.fromTable ( cls,
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` [`astropy.table.Table`]
    List of tables to use to construct the brighter-fatter
    calibration.

Returns
-------
calib : `lsst.ip.isr.BrighterFatterKernel`
    The calibration defined in the tables.

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 374 of file brighterFatterKernel.py.

◆ getLengths()

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.getLengths ( self)
Return the set of lengths needed for reshaping components.

Returns
-------
kernelLength : `int`
    Product of the elements of self.shape.
smallLength : `int`
    Size of an untiled covariance.
nObs : `int`
    Number of observation pairs used in the kernel.

Definition at line 216 of file brighterFatterKernel.py.

◆ getMetadata()

lsst.ip.isr.calibType.IsrCalib.getMetadata ( self)
inherited
Retrieve metadata associated with this calibration.

Returns
-------
meta : `lsst.daf.base.PropertyList`
    Metadata. The returned `~lsst.daf.base.PropertyList` can be
    modified by the caller and the changes will be written to
    external files.

Definition at line 174 of file calibType.py.

◆ initFromCamera()

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.initFromCamera ( self,
camera,
detectorId = None )
Initialize kernel structure from camera.

Parameters
----------
camera : `lsst.afw.cameraGeom.Camera`
    Camera to use to define geometry.
detectorId : `int`, optional
    Index of the detector to generate.

Returns
-------
calib : `lsst.ip.isr.BrighterFatterKernel`
    The initialized calibration.

Raises
------
RuntimeError
    Raised if no detectorId is supplied for a calibration with
    ``level='AMP'``.

Definition at line 160 of file brighterFatterKernel.py.

◆ makeDetectorKernelFromAmpwiseKernels()

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.makeDetectorKernelFromAmpwiseKernels ( self,
detectorName,
ampsToExclude = [] )
Average the amplifier level kernels to create a detector level
kernel.  There is no change in index ordering/orientation from
this averaging.

Parameters
----------
detectorName : `str`
    Detector for which the averaged kernel will be used.
ampsToExclude : `list` [`str`], optional
    Amps that should not be included in the average.

Definition at line 561 of file brighterFatterKernel.py.

◆ metadata()

lsst.ip.isr.calibType.IsrCalib.metadata ( self)
inherited

Definition at line 171 of file calibType.py.

◆ readFits()

lsst.ip.isr.calibType.IsrCalib.readFits ( cls,
filename,
** kwargs )
inherited
Read calibration data from a FITS file.

Parameters
----------
filename : `str`
    Filename to read data from.
kwargs : `dict` or collections.abc.Mapping`, optional
    Set of key=value pairs to pass to the ``fromTable``
    method.

Returns
-------
calib : `lsst.ip.isr.IsrCalib`
    Calibration contained within the file.

Definition at line 517 of file calibType.py.

◆ readText()

lsst.ip.isr.calibType.IsrCalib.readText ( cls,
filename,
** kwargs )
inherited
Read calibration representation from a yaml/ecsv file.

Parameters
----------
filename : `str`
    Name of the file containing the calibration definition.
kwargs : `dict` or collections.abc.Mapping`, optional
    Set of key=value pairs to pass to the ``fromDict`` or
    ``fromTable`` methods.

Returns
-------
calib : `~lsst.ip.isr.IsrCalibType`
    Calibration class.

Raises
------
RuntimeError
    Raised if the filename does not end in ".ecsv" or ".yaml".

Definition at line 425 of file calibType.py.

◆ repackCorrelations()

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.repackCorrelations ( self,
amp,
correlationShape )
If the correlations were masked, they need to be repacked into the
correct shape.

Parameters
----------
amp : `str`
    Amplifier needing repacked.
correlationShape : `tuple` [`int`], (3, )
    Shape the correlations are expected to take.

Definition at line 539 of file brighterFatterKernel.py.

◆ replaceDetectorKernelWithAmpKernel()

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.replaceDetectorKernelWithAmpKernel ( self,
ampName,
detectorName )

Definition at line 585 of file brighterFatterKernel.py.

◆ requiredAttributes() [1/2]

lsst.ip.isr.calibType.IsrCalib.requiredAttributes ( self)
inherited

Definition at line 162 of file calibType.py.

◆ requiredAttributes() [2/2]

lsst.ip.isr.calibType.IsrCalib.requiredAttributes ( self,
value )
inherited

Definition at line 166 of file calibType.py.

◆ setMetadata()

lsst.ip.isr.calibType.IsrCalib.setMetadata ( self,
metadata )
inherited
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.

Reimplemented in lsst.ip.isr.transmissionCurve.IntermediateTransmissionCurve.

Definition at line 186 of file calibType.py.

◆ toDict()

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.toDict ( self)
Return a dictionary containing the calibration properties.

The dictionary should be able to be round-tripped through
`fromDict`.

Returns
-------
dictionary : `dict`
    Dictionary of properties.

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 320 of file brighterFatterKernel.py.

◆ toTable()

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.toTable ( self)
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.

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 453 of file brighterFatterKernel.py.

◆ updateMetadata()

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.updateMetadata ( self,
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.

Reimplemented from lsst.ip.isr.calibType.IsrCalib.

Definition at line 140 of file brighterFatterKernel.py.

◆ updateMetadataFromExposures()

lsst.ip.isr.calibType.IsrCalib.updateMetadataFromExposures ( self,
exposures )
inherited
Extract and unify metadata information.

Parameters
----------
exposures : `list`
    Exposures or other calibrations to scan.

Definition at line 294 of file calibType.py.

◆ validate()

lsst.ip.isr.calibType.IsrCalib.validate ( self,
other = None )
inherited
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.

Reimplemented in lsst.ip.isr.linearize.Linearizer, and lsst.ip.isr.photodiodeCorrection.PhotodiodeCorrection.

Definition at line 691 of file calibType.py.

◆ writeFits()

lsst.ip.isr.calibType.IsrCalib.writeFits ( self,
filename )
inherited
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.

Reimplemented in lsst.ip.isr.transmissionCurve.IntermediateTransmissionCurve.

Definition at line 565 of file calibType.py.

◆ writeText()

lsst.ip.isr.calibType.IsrCalib.writeText ( self,
filename,
format = "auto" )
inherited
Write the calibration data to a text file.

Parameters
----------
filename : `str`
    Name of the file to write.
format : `str`
    Format to write the file as.  Supported values are:
        ``"auto"`` : Determine filetype from filename.
        ``"yaml"`` : Write as yaml.
        ``"ecsv"`` : Write as ecsv.

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.

Definition at line 463 of file calibType.py.

Member Data Documentation

◆ _calibId

str lsst.ip.isr.calibType.IsrCalib._calibId = None
protectedinherited

Definition at line 76 of file calibType.py.

◆ _detectorId

lsst.ip.isr.calibType.IsrCalib._detectorId = None
protectedinherited

Definition at line 74 of file calibType.py.

◆ _detectorName

lsst.ip.isr.calibType.IsrCalib._detectorName = None
protectedinherited

Definition at line 72 of file calibType.py.

◆ _detectorSerial

lsst.ip.isr.calibType.IsrCalib._detectorSerial = None
protectedinherited

Definition at line 73 of file calibType.py.

◆ _filter

lsst.ip.isr.calibType.IsrCalib._filter = None
protectedinherited

Definition at line 75 of file calibType.py.

◆ _instrument

lsst.ip.isr.calibType.IsrCalib._instrument = None
protectedinherited

Definition at line 69 of file calibType.py.

◆ _metadata

lsst.ip.isr.calibType.IsrCalib._metadata = PropertyList()
protectedinherited

Definition at line 80 of file calibType.py.

◆ _OBSTYPE

str lsst.ip.isr.calibType.IsrCalib._OBSTYPE = "generic"
staticprotectedinherited

Definition at line 64 of file calibType.py.

◆ _raftName

lsst.ip.isr.calibType.IsrCalib._raftName = None
protectedinherited

Definition at line 70 of file calibType.py.

◆ _requiredAttributes

lsst.ip.isr.calibType.IsrCalib._requiredAttributes
protectedinherited

Definition at line 115 of file calibType.py.

◆ _SCHEMA

str lsst.ip.isr.calibType.IsrCalib._SCHEMA = "NO SCHEMA"
staticprotectedinherited

Definition at line 65 of file calibType.py.

◆ _seqcksum

lsst.ip.isr.calibType.IsrCalib._seqcksum = None
protectedinherited

Definition at line 79 of file calibType.py.

◆ _seqfile

lsst.ip.isr.calibType.IsrCalib._seqfile = None
protectedinherited

Definition at line 77 of file calibType.py.

◆ _seqname

lsst.ip.isr.calibType.IsrCalib._seqname = None
protectedinherited

Definition at line 78 of file calibType.py.

◆ _slotName

lsst.ip.isr.calibType.IsrCalib._slotName = None
protectedinherited

Definition at line 71 of file calibType.py.

◆ _VERSION

int lsst.ip.isr.calibType.IsrCalib._VERSION = 0
staticprotectedinherited

Definition at line 66 of file calibType.py.

◆ ampKernels

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.ampKernels = dict()

Definition at line 128 of file brighterFatterKernel.py.

◆ badAmps

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.badAmps = list()

Definition at line 118 of file brighterFatterKernel.py.

◆ detKernels

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.detKernels = dict()

Definition at line 129 of file brighterFatterKernel.py.

◆ expIdMask

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.expIdMask = dict()

Definition at line 114 of file brighterFatterKernel.py.

◆ gain

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.gain = dict()

Definition at line 120 of file brighterFatterKernel.py.

◆ level

str lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.level = level

Definition at line 111 of file brighterFatterKernel.py.

◆ log

lsst.ip.isr.calibType.IsrCalib.log = log if log else logging.getLogger(__name__)
inherited

Definition at line 96 of file calibType.py.

◆ meanXcorrs

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.meanXcorrs = dict()

Definition at line 124 of file brighterFatterKernel.py.

◆ noise

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.noise = dict()

Definition at line 121 of file brighterFatterKernel.py.

◆ rawMeans

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.rawMeans = dict()

Definition at line 115 of file brighterFatterKernel.py.

◆ rawVariances

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.rawVariances = dict()

Definition at line 116 of file brighterFatterKernel.py.

◆ rawXcorrs

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.rawXcorrs = dict()

Definition at line 117 of file brighterFatterKernel.py.

◆ requiredAttributes

lsst.ip.isr.calibType.IsrCalib.requiredAttributes = set(["_OBSTYPE", "_SCHEMA", "_VERSION"])
inherited

Definition at line 90 of file calibType.py.

◆ shape

tuple lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.shape = (17, 17)

Definition at line 119 of file brighterFatterKernel.py.

◆ valid

lsst.ip.isr.brighterFatterKernel.BrighterFatterKernel.valid = dict()

Definition at line 125 of file brighterFatterKernel.py.


The documentation for this class was generated from the following file: