|
LSST Applications g00d0e8bbd7+8c5ae1fdc5,g013ef56533+603670b062,g083dd6704c+2e189452a7,g199a45376c+0ba108daf9,g1c5cce2383+bc9f6103a4,g1fd858c14a+cd69ed4fc1,g210f2d0738+c4742f2e9e,g262e1987ae+612fa42d85,g29ae962dfc+83d129e820,g2cef7863aa+aef1011c0b,g35bb328faa+8c5ae1fdc5,g3fd5ace14f+5eaa884f2a,g47891489e3+e32160a944,g53246c7159+8c5ae1fdc5,g5b326b94bb+dcc56af22d,g64539dfbff+c4742f2e9e,g67b6fd64d1+e32160a944,g74acd417e5+c122e1277d,g786e29fd12+668abc6043,g87389fa792+8856018cbb,g88cb488625+47d24e4084,g89139ef638+e32160a944,g8d7436a09f+d14b4ff40a,g8ea07a8fe4+b212507b11,g90f42f885a+e1755607f3,g97be763408+34be90ab8c,g98df359435+ec1fa61bf1,ga2180abaac+8c5ae1fdc5,ga9e74d7ce9+43ac651df0,gbf99507273+8c5ae1fdc5,gc2a301910b+c4742f2e9e,gca7fc764a6+e32160a944,gd7ef33dd92+e32160a944,gdab6d2f7ff+c122e1277d,gdb1e2cdc75+1b18322db8,ge410e46f29+e32160a944,ge41e95a9f2+c4742f2e9e,geaed405ab2+0d91c11c6d,w.2025.44
LSST Data Management Base Package
|
Public Member Functions | |
| __init__ (self, table=None, **kwargs) | |
| updateMetadata (self, setDate=False, **kwargs) | |
| fromDetector (self, detector) | |
| fromDict (cls, dictionary) | |
| toDict (self) | |
| fromTable (cls, tableList) | |
| toTable (self) | |
| getLinearityTypeByName (self, linearityTypeName) | |
| validate (self, detector=None, amplifier=None) | |
| applyLinearity (self, image, detector=None, log=None, gains=None) | |
| 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) | |
| apply (self, target) | |
Public Attributes | |
| bool | hasLinearity = False |
| bool | override = False |
| ampNames = list() | |
| linearityCoeffs = dict() | |
| linearityType = dict() | |
| linearityBBox = dict() | |
| inputAbscissa = dict() | |
| inputOrdinate = dict() | |
| inputMask = dict() | |
| inputGroupingIndex = dict() | |
| inputNormalization = dict() | |
| fitParams = dict() | |
| fitParamsErr = dict() | |
| fitChiSq = dict() | |
| fitResiduals = dict() | |
| fitResidualsSigmaMad = dict() | |
| fitResidualsUnmasked = dict() | |
| fitResidualsModel = dict() | |
| linearFit = dict() | |
| linearityTurnoff = dict() | |
| linearityMaxSignal = dict() | |
| str | absoluteReferenceAmplifier = "" |
| tableData = None | |
| str | linearityUnits = 'adu' |
| 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 |
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`, `np.ndarray`]
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`, `np.ndarray`], optional
Linearity fit parameters used to construct the correction
coefficients, indexed as above.
fitParamsErr : `dict` [`str`, `np.ndarray`], 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`, `np.ndarray`], optional
Residuals of the fit, indexed as above. Used for
calculating photodiode corrections
fitResidualsSigmaMad : `dict` [`str`, `float`], optional
Robust median-absolute-deviation of fit residuals, scaled
by the signal level.
fitResidualsUnmasked : `dict` [`str`, `np.ndarray`], optional
Same as fitResiduals, but all outliers are included and
not masked as nans.
fitResidualsModel : `dict` [`str`, `np.ndarray`], optional
The model count level for each of the fitResiduals.
linearFit : The linear fit to the low flux region of the curve.
[intercept, slope].
tableData : `np.ndarray`, optional
Lookup table data for the linearity correction.
inputAbscissa : `dict` [`str`, `np.ndarray`], optional
Input abscissa used to construct linearizer (usually photodiode
or exposure time).
inputOrdinate : `dict` [`str`, `np.ndarray`], optional
Input ordinate used to construct linearizer (raw mean counts).
inputMask : `dict` [`str`, `np.ndarray`], optional
Input mask used for the fitting.
inputGroupingIndex : `dict` [`str`, `np.ndarray`], optional
Input grouping index used for fitting.
inputNormalization : `dict` [`str`, `np.ndarray`], optional
Input normalization that was applied to the abscissa for
each pair from the PTC used for the linearization fit.
absoluteReferenceAmplifier : `str`, optional
Amplifier used for the reference for absolute linearization
(DoubleSpline) mode.
Version 1.4 adds ``linearityTurnoff`` and ``linearityMaxSignal``.
Version 1.5 adds ``fitResidualsUnmasked``, ``inputAbscissa``,
``inputOrdinate``, ``inputMask``, ``inputGroupingIndex``,
``fitResidualsModel``, and ``inputNormalization``.
Version 1.6 adds ``absoluteReferenceAmplifier``.
Definition at line 48 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.__init__ | ( | self, | |
| table = None, | |||
| ** | kwargs ) |
Definition at line 145 of file linearize.py.
|
inherited |
Calibration equivalence. Running ``calib.log.setLevel(0)`` enables debug statements to identify problematic fields.
Definition at line 105 of file calibType.py.
|
inherited |
Definition at line 102 of file calibType.py.
|
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 704 of file calibType.py.
| lsst.ip.isr.linearize.Linearizer.applyLinearity | ( | self, | |
| 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
----------
image : `~lsst.afw.image.image`
Image to correct.
detector : `~lsst.afw.cameraGeom.detector`, 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.
log : `~logging.Logger`, optional
Log object to use for logging.
gains : `dict` [`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.
Definition at line 593 of file linearize.py.
|
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.
|
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.
| lsst.ip.isr.linearize.Linearizer.fromDetector | ( | self, | |
| 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.
Reimplemented from lsst.ip.isr.calibType.IsrCalib.
Definition at line 213 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.fromDict | ( | cls, | |
| 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.
Reimplemented from lsst.ip.isr.calibType.IsrCalib.
Definition at line 245 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.fromTable | ( | cls, | |
| tableList ) |
Read linearity from a FITS file.
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`]
afwTable read from input file name.
Returns
-------
linearity : `~lsst.ip.isr.linearize.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.
Reimplemented from lsst.ip.isr.calibType.IsrCalib.
Definition at line 364 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.getLinearityTypeByName | ( | self, | |
| 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 : `~lsst.ip.isr.linearize.LinearizeBase`
The appropriate linearity class to use. If no matching class
is found, `None` is returned.
Definition at line 508 of file linearize.py.
|
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.
|
inherited |
Definition at line 171 of file calibType.py.
|
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.
|
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.
|
inherited |
Definition at line 162 of file calibType.py.
|
inherited |
Definition at line 166 of file calibType.py.
|
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.
| lsst.ip.isr.linearize.Linearizer.toDict | ( | self | ) |
Return linearity parameters as a dict. Returns ------- outDict : `dict`:
Reimplemented from lsst.ip.isr.calibType.IsrCalib.
Definition at line 318 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.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` [`astropy.table.Table`]
List of tables containing the linearity calibration
information.
Reimplemented from lsst.ip.isr.calibType.IsrCalib.
Definition at line 460 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.updateMetadata | ( | self, | |
| 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.
Reimplemented from lsst.ip.isr.calibType.IsrCalib.
Definition at line 192 of file linearize.py.
|
inherited |
Extract and unify metadata information.
Parameters
----------
exposures : `list`
Exposures or other calibrations to scan.
Definition at line 294 of file calibType.py.
| lsst.ip.isr.linearize.Linearizer.validate | ( | self, | |
| 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.
Reimplemented from lsst.ip.isr.calibType.IsrCalib.
Definition at line 533 of file linearize.py.
|
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 563 of file calibType.py.
|
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.
|
protectedinherited |
Definition at line 76 of file calibType.py.
|
protectedinherited |
Definition at line 74 of file calibType.py.
|
protectedinherited |
Definition at line 72 of file calibType.py.
|
protectedinherited |
Definition at line 73 of file calibType.py.
|
protectedinherited |
Definition at line 75 of file calibType.py.
|
protectedinherited |
Definition at line 69 of file calibType.py.
|
protectedinherited |
Definition at line 80 of file calibType.py.
|
staticprotectedinherited |
Definition at line 64 of file calibType.py.
|
protectedinherited |
Definition at line 70 of file calibType.py.
|
protectedinherited |
Definition at line 115 of file calibType.py.
|
staticprotectedinherited |
Definition at line 65 of file calibType.py.
|
protectedinherited |
Definition at line 79 of file calibType.py.
|
protectedinherited |
Definition at line 77 of file calibType.py.
|
protectedinherited |
Definition at line 78 of file calibType.py.
|
protectedinherited |
Definition at line 71 of file calibType.py.
|
staticprotectedinherited |
Definition at line 66 of file calibType.py.
| str lsst.ip.isr.linearize.Linearizer.absoluteReferenceAmplifier = "" |
Definition at line 168 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.ampNames = list() |
Definition at line 149 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.fitChiSq = dict() |
Definition at line 160 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.fitParams = dict() |
Definition at line 158 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.fitParamsErr = dict() |
Definition at line 159 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.fitResiduals = dict() |
Definition at line 161 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.fitResidualsModel = dict() |
Definition at line 164 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.fitResidualsSigmaMad = dict() |
Definition at line 162 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.fitResidualsUnmasked = dict() |
Definition at line 163 of file linearize.py.
| bool lsst.ip.isr.linearize.Linearizer.hasLinearity = False |
Definition at line 146 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.inputAbscissa = dict() |
Definition at line 153 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.inputGroupingIndex = dict() |
Definition at line 156 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.inputMask = dict() |
Definition at line 155 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.inputNormalization = dict() |
Definition at line 157 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.inputOrdinate = dict() |
Definition at line 154 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.linearFit = dict() |
Definition at line 165 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.linearityBBox = dict() |
Definition at line 152 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.linearityCoeffs = dict() |
Definition at line 150 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.linearityMaxSignal = dict() |
Definition at line 167 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.linearityTurnoff = dict() |
Definition at line 166 of file linearize.py.
| lsst.ip.isr.linearize.Linearizer.linearityType = dict() |
Definition at line 151 of file linearize.py.
| str lsst.ip.isr.linearize.Linearizer.linearityUnits = 'adu' |
Definition at line 179 of file linearize.py.
|
inherited |
Definition at line 96 of file calibType.py.
| bool lsst.ip.isr.linearize.Linearizer.override = False |
Definition at line 147 of file linearize.py.
|
inherited |
Definition at line 90 of file calibType.py.
| lsst.ip.isr.linearize.Linearizer.tableData = None |
Definition at line 169 of file linearize.py.