PsfMatchConfig

class lsst.ip.diffim.PsfMatchConfig(*args, **kw)

Bases: Config

Base configuration for Psf-matching

The base configuration of the Psf-matching kernel, and of the warping, detection, and background modeling subTasks.

Attributes Summary

afwBackgroundConfig

Controlling the Afw background fitting (SubtractBackgroundConfig, default <class 'lsst.meas.algorithms.subtractBackground.SubtractBackgroundConfig'>)

badMaskPlanes

Mask planes to ignore when calculating diffim statistics Options: NO_DATA EDGE SAT BAD CR INTRP (List, default ('NO_DATA', 'EDGE', 'SAT'))

calculateKernelUncertainty

Calculate kernel and background uncertainties for each kernel candidate? This comes from the inverse of the covariance matrix.

candidateCoreRadius

Radius for calculation of stats in 'core' of KernelCandidate diffim.

candidateResidualMeanMax

Rejects KernelCandidates yielding bad difference image quality.

candidateResidualStdMax

Rejects KernelCandidates yielding bad difference image quality.

checkConditionNumber

Test for maximum condition number when inverting a kernel matrix.

conditionNumberType

Use singular values (SVD) or eigen values (EIGENVALUE) to determine condition number (str, default 'EIGENVALUE')

constantVarianceWeighting

Use constant variance weighting in single kernel fitting? In some cases this is better for bright star residuals.

detectionConfig

Controlling the detection of sources for kernel building (DetectionConfig, default <class 'lsst.ip.diffim.psfMatch.DetectionConfig'>)

fitForBackground

Include terms (including kernel cross terms) for background in ip_diffim (bool, default False)

history

iterateSingleKernel

Remake KernelCandidate using better variance estimate after first pass? Primarily useful when convolving a single-depth image, otherwise not necessary.

kernelBasisSet

Type of basis set for PSF matching kernel.

kernelSize

Number of rows/columns in the convolution kernel; should be odd-valued.

kernelSizeFwhmScaling

Multiplier of the largest AL Gaussian basis sigma to get the kernel bbox (pixel) size.

kernelSizeMax

Maximum kernel bbox (pixel) size.

kernelSizeMin

Minimum kernel bbox (pixel) size.

kernelSumClipping

Do sigma clipping on the ensemble of kernel sums (bool, default True)

maxConditionNumber

Maximum condition number for a well conditioned matrix (float, default 50000000.0)

maxKsumSigma

Maximum allowed sigma for outliers from kernel sum distribution.

maxSpatialConditionNumber

Maximum condition number for a well conditioned spatial matrix (float, default 10000000000.0)

maxSpatialIterations

Maximum number of iterations for rejecting bad KernelCandidates in spatial fitting (int, default 3)

nStarPerCell

Number of KernelCandidates in each SpatialCell to use in the spatial fitting (int, default 3)

numPrincipalComponents

Number of principal components to use for Pca basis, including the mean kernel if requested.

scaleByFwhm

Scale kernelSize, alardGaussians by input Fwhm (bool, default True)

singleKernelClipping

Do sigma clipping on each raw kernel candidate (bool, default True)

sizeCellX

Size (rows) in pixels of each SpatialCell for spatial modeling (int, default 128)

sizeCellY

Size (columns) in pixels of each SpatialCell for spatial modeling (int, default 128)

spatialBgOrder

Spatial order of differential background variation (int, default 1)

spatialKernelClipping

Do sigma clipping after building the spatial model (bool, default True)

spatialKernelOrder

Spatial order of convolution kernel variation (int, default 2)

spatialModelType

Type of spatial functions for kernel and background (str, default 'chebyshev1')

subtractMeanForPca

Subtract off the mean feature before doing the Pca (bool, default True)

useAfwBackground

Use afw background subtraction instead of ip_diffim (bool, default False)

useBicForKernelBasis

Use Bayesian Information Criterion to select the number of bases going into the kernel (bool, default False)

useCoreStats

Use the core of the footprint for the quality statistics, instead of the entire footprint.

usePcaForSpatialKernel

Use Pca to reduce the dimensionality of the kernel basis sets.

warpingConfig

Config for warping exposures to a common alignment (WarperConfig, default <class 'lsst.afw.math._warper.WarperConfig'>)

Methods Summary

compare(other[, shortcut, rtol, atol, output])

Compare this configuration to another Config for equality.

formatHistory(name, **kwargs)

Format a configuration field's history to a human-readable format.

freeze()

Make this config, and all subconfigs, read-only.

items()

Get configurations as (field name, field value) pairs.

keys()

Get field names.

load(filename[, root])

Modify this config in place by executing the Python code in a configuration file.

loadFromStream(stream[, root, filename])

Modify this Config in place by executing the Python code in the provided stream.

loadFromString(code[, root, filename])

Modify this Config in place by executing the Python code in the provided string.

names()

Get all the field names in the config, recursively.

save(filename[, root])

Save a Python script to the named file, which, when loaded, reproduces this config.

saveToStream(outfile[, root, skipImports])

Save a configuration file to a stream, which, when loaded, reproduces this config.

saveToString([skipImports])

Return the Python script form of this configuration as an executable string.

setDefaults()

Subclass hook for computing defaults.

toDict()

Make a dictionary of field names and their values.

update(**kw)

Update values of fields specified by the keyword arguments.

validate()

Validate the Config, raising an exception if invalid.

values()

Get field values.

Attributes Documentation

afwBackgroundConfig

Controlling the Afw background fitting (SubtractBackgroundConfig, default <class 'lsst.meas.algorithms.subtractBackground.SubtractBackgroundConfig'>)

badMaskPlanes

Mask planes to ignore when calculating diffim statistics Options: NO_DATA EDGE SAT BAD CR INTRP (List, default ('NO_DATA', 'EDGE', 'SAT'))

calculateKernelUncertainty

Calculate kernel and background uncertainties for each kernel candidate? This comes from the inverse of the covariance matrix. Warning: regularization can cause problems for this step. (bool, default False)

candidateCoreRadius

Radius for calculation of stats in ‘core’ of KernelCandidate diffim. Total number of pixels used will be (2*radius)**2. This is used both for ‘core’ diffim quality as well as ranking of KernelCandidates by their total flux in this core (int, default 3)

candidateResidualMeanMax

Rejects KernelCandidates yielding bad difference image quality. Used by BuildSingleKernelVisitor, AssessSpatialKernelVisitor. Represents average over pixels of (image/sqrt(variance)). (float, default 0.25)

candidateResidualStdMax

Rejects KernelCandidates yielding bad difference image quality. Used by BuildSingleKernelVisitor, AssessSpatialKernelVisitor. Represents stddev over pixels of (image/sqrt(variance)). (float, default 1.5)

checkConditionNumber

Test for maximum condition number when inverting a kernel matrix. Anything above maxConditionNumber is not used and the candidate is set as BAD. Also used to truncate inverse matrix in estimateBiasedRisk. However, if you are doing any deconvolution you will want to turn this off, or use a large maxConditionNumber (bool, default False)

conditionNumberType

Use singular values (SVD) or eigen values (EIGENVALUE) to determine condition number (str, default 'EIGENVALUE')

Allowed values:

'SVD'

Use singular values

'EIGENVALUE'

Use eigen values (faster)

'None'

Field is optional

constantVarianceWeighting

Use constant variance weighting in single kernel fitting? In some cases this is better for bright star residuals. (bool, default True)

detectionConfig

Controlling the detection of sources for kernel building (DetectionConfig, default <class 'lsst.ip.diffim.psfMatch.DetectionConfig'>)

fitForBackground

Include terms (including kernel cross terms) for background in ip_diffim (bool, default False)

history

Read-only history.

iterateSingleKernel

Remake KernelCandidate using better variance estimate after first pass? Primarily useful when convolving a single-depth image, otherwise not necessary. (bool, default False)

kernelBasisSet

Type of basis set for PSF matching kernel. (str, default 'alard-lupton')

Allowed values:

'alard-lupton'
Alard-Lupton sum-of-gaussians basis set,
  • The first term has no spatial variation

  • The kernel sum is conserved

  • You may want to turn off ‘usePcaForSpatialKernel’

'delta-function'
Delta-function kernel basis set,
  • You may enable the option useRegularization

  • You should seriously consider usePcaForSpatialKernel, which will also enable kernel sum conservation for the delta function kernels

'None'

Field is optional

kernelSize

Number of rows/columns in the convolution kernel; should be odd-valued. Modified by kernelSizeFwhmScaling if scaleByFwhm = true (int, default 21)

kernelSizeFwhmScaling

Multiplier of the largest AL Gaussian basis sigma to get the kernel bbox (pixel) size. (float, default 6.0)

kernelSizeMax

Maximum kernel bbox (pixel) size. (int, default 35)

kernelSizeMin

Minimum kernel bbox (pixel) size. (int, default 21)

kernelSumClipping

Do sigma clipping on the ensemble of kernel sums (bool, default True)

maxConditionNumber

Maximum condition number for a well conditioned matrix (float, default 50000000.0)

maxKsumSigma

Maximum allowed sigma for outliers from kernel sum distribution. Used to reject variable objects from the kernel model (float, default 3.0)

maxSpatialConditionNumber

Maximum condition number for a well conditioned spatial matrix (float, default 10000000000.0)

maxSpatialIterations

Maximum number of iterations for rejecting bad KernelCandidates in spatial fitting (int, default 3)

nStarPerCell

Number of KernelCandidates in each SpatialCell to use in the spatial fitting (int, default 3)

numPrincipalComponents

Number of principal components to use for Pca basis, including the mean kernel if requested. (int, default 5)

scaleByFwhm

Scale kernelSize, alardGaussians by input Fwhm (bool, default True)

singleKernelClipping

Do sigma clipping on each raw kernel candidate (bool, default True)

sizeCellX

Size (rows) in pixels of each SpatialCell for spatial modeling (int, default 128)

sizeCellY

Size (columns) in pixels of each SpatialCell for spatial modeling (int, default 128)

spatialBgOrder

Spatial order of differential background variation (int, default 1)

spatialKernelClipping

Do sigma clipping after building the spatial model (bool, default True)

spatialKernelOrder

Spatial order of convolution kernel variation (int, default 2)

spatialModelType

Type of spatial functions for kernel and background (str, default 'chebyshev1')

Allowed values:

'chebyshev1'

Chebyshev polynomial of the first kind

'polynomial'

Standard x,y polynomial

'None'

Field is optional

subtractMeanForPca

Subtract off the mean feature before doing the Pca (bool, default True)

useAfwBackground

Use afw background subtraction instead of ip_diffim (bool, default False)

useBicForKernelBasis

Use Bayesian Information Criterion to select the number of bases going into the kernel (bool, default False)

useCoreStats

Use the core of the footprint for the quality statistics, instead of the entire footprint. WARNING: if there is deconvolution we probably will need to turn this off (bool, default False)

usePcaForSpatialKernel

Use Pca to reduce the dimensionality of the kernel basis sets. This is particularly useful for delta-function kernels. Functionally, after all Cells have their raw kernels determined, we run a Pca on these Kernels, re-fit the Cells using the eigenKernels and then fit those for spatial variation using the same technique as for Alard-Lupton kernels. If this option is used, the first term will have no spatial variation and the kernel sum will be conserved. (bool, default False)

warpingConfig

Config for warping exposures to a common alignment (WarperConfig, default <class 'lsst.afw.math._warper.WarperConfig'>)

Methods Documentation

compare(other, shortcut=True, rtol=1e-08, atol=1e-08, output=None)

Compare this configuration to another Config for equality.

Parameters:
otherlsst.pex.config.Config

Other Config object to compare against this config.

shortcutbool, optional

If True, return as soon as an inequality is found. Default is True.

rtolfloat, optional

Relative tolerance for floating point comparisons.

atolfloat, optional

Absolute tolerance for floating point comparisons.

outputcallable, optional

A callable that takes a string, used (possibly repeatedly) to report inequalities.

Returns:
isEqualbool

True when the two lsst.pex.config.Config instances are equal. False if there is an inequality.

Notes

Unselected targets of RegistryField fields and unselected choices of ConfigChoiceField fields are not considered by this method.

Floating point comparisons are performed by numpy.allclose.

formatHistory(name, **kwargs)

Format a configuration field’s history to a human-readable format.

Parameters:
namestr

Name of a Field in this config.

kwargs

Keyword arguments passed to lsst.pex.config.history.format.

Returns:
historystr

A string containing the formatted history.

freeze()

Make this config, and all subconfigs, read-only.

items()

Get configurations as (field name, field value) pairs.

Returns:
itemsdict_items

Iterator of tuples for each configuration. Tuple items are:

  1. Field name.

  2. Field value.

keys()

Get field names.

Returns:
namesdict_keys

List of lsst.pex.config.Field names.

See also

lsst.pex.config.Config.iterkeys
load(filename, root='config')

Modify this config in place by executing the Python code in a configuration file.

Parameters:
filenamestr

Name of the configuration file. A configuration file is Python module.

rootstr, optional

Name of the variable in file that refers to the config being overridden.

For example, the value of root is "config" and the file contains:

config.myField = 5

Then this config’s field myField is set to 5.

loadFromStream(stream, root='config', filename=None)

Modify this Config in place by executing the Python code in the provided stream.

Parameters:
streamfile-like object, str, bytes, or compiled string

Stream containing configuration override code. If this is a code object, it should be compiled with mode="exec".

rootstr, optional

Name of the variable in file that refers to the config being overridden.

For example, the value of root is "config" and the file contains:

config.myField = 5

Then this config’s field myField is set to 5.

filenamestr, optional

Name of the configuration file, or None if unknown or contained in the stream. Used for error reporting.

Notes

For backwards compatibility reasons, this method accepts strings, bytes and code objects as well as file-like objects. New code should use loadFromString instead for most of these types.

loadFromString(code, root='config', filename=None)

Modify this Config in place by executing the Python code in the provided string.

Parameters:
codestr, bytes, or compiled string

Stream containing configuration override code.

rootstr, optional

Name of the variable in file that refers to the config being overridden.

For example, the value of root is "config" and the file contains:

config.myField = 5

Then this config’s field myField is set to 5.

filenamestr, optional

Name of the configuration file, or None if unknown or contained in the stream. Used for error reporting.

names()

Get all the field names in the config, recursively.

Returns:
nameslist of str

Field names.

save(filename, root='config')

Save a Python script to the named file, which, when loaded, reproduces this config.

Parameters:
filenamestr

Desination filename of this configuration.

rootstr, optional

Name to use for the root config variable. The same value must be used when loading (see lsst.pex.config.Config.load).

saveToStream(outfile, root='config', skipImports=False)

Save a configuration file to a stream, which, when loaded, reproduces this config.

Parameters:
outfilefile-like object

Destination file object write the config into. Accepts strings not bytes.

root

Name to use for the root config variable. The same value must be used when loading (see lsst.pex.config.Config.load).

skipImportsbool, optional

If True then do not include import statements in output, this is to support human-oriented output from pipetask where additional clutter is not useful.

saveToString(skipImports=False)

Return the Python script form of this configuration as an executable string.

Parameters:
skipImportsbool, optional

If True then do not include import statements in output, this is to support human-oriented output from pipetask where additional clutter is not useful.

Returns:
codestr

A code string readable by loadFromString.

setDefaults()

Subclass hook for computing defaults.

Notes

Derived Config classes that must compute defaults rather than using the Field instances’s defaults should do so here. To correctly use inherited defaults, implementations of setDefaults must call their base class’s setDefaults.

toDict()

Make a dictionary of field names and their values.

Returns:
dict_dict

Dictionary with keys that are Field names. Values are Field values.

Notes

This method uses the toDict method of individual fields. Subclasses of Field may need to implement a toDict method for this method to work.

update(**kw)

Update values of fields specified by the keyword arguments.

Parameters:
kw

Keywords are configuration field names. Values are configuration field values.

Notes

The __at and __label keyword arguments are special internal keywords. They are used to strip out any internal steps from the history tracebacks of the config. Do not modify these keywords to subvert a Config instance’s history.

Examples

This is a config with three fields:

>>> from lsst.pex.config import Config, Field
>>> class DemoConfig(Config):
...     fieldA = Field(doc='Field A', dtype=int, default=42)
...     fieldB = Field(doc='Field B', dtype=bool, default=True)
...     fieldC = Field(doc='Field C', dtype=str, default='Hello world')
...
>>> config = DemoConfig()

These are the default values of each field:

>>> for name, value in config.iteritems():
...     print(f"{name}: {value}")
...
fieldA: 42
fieldB: True
fieldC: 'Hello world'

Using this method to update fieldA and fieldC:

>>> config.update(fieldA=13, fieldC='Updated!')

Now the values of each field are:

>>> for name, value in config.iteritems():
...     print(f"{name}: {value}")
...
fieldA: 13
fieldB: True
fieldC: 'Updated!'
validate()

Validate the Config, raising an exception if invalid.

Raises:
lsst.pex.config.FieldValidationError

Raised if verification fails.

Notes

The base class implementation performs type checks on all fields by calling their validate methods.

Complex single-field validation can be defined by deriving new Field types. For convenience, some derived lsst.pex.config.Field-types (ConfigField and ConfigChoiceField) are defined in lsst.pex.config that handle recursing into subconfigs.

Inter-field relationships should only be checked in derived Config classes after calling this method, and base validation is complete.

values()

Get field values.

Returns:
valuesdict_values

Iterator of field values.