DetectionConfig

class lsst.ip.diffim.DetectionConfig

Bases: lsst.pex.config.config.Config

!Configuration for detecting sources on images for building a PSF-matching kernel

Configuration for turning detected lsst.afw.detection.FootPrints into an acceptable (unmasked, high signal-to-noise, not too large or not too small) list of lsst.ip.diffim.KernelSources that are used to build the Psf-matching kernel

Attributes Summary

badMaskPlanes Mask planes that lead to an invalid detection.
detOnTemplate If true run detection on the template (image to convolve); if false run detection on the science image (bool, default True)
detThreshold Value of footprint detection threshold (float, default 10.0)
detThresholdType Type of detection threshold (str, default 'pixel_stdev')
fpGrowKernelScaling If config.scaleByFwhm, grow the footprint based on the final kernelSize.
fpGrowPix Growing radius (in pixels) for each raw detection footprint.
fpNpixMax Maximum number of pixels in an acceptable Footprint; too big and the subsequent convolutions become unwieldy (int, default 500)
fpNpixMin Minimum number of pixels in an acceptable Footprint (int, default 5)
history
scaleByFwhm Scale fpGrowPix by input Fwhm? (bool, default True)

Methods Summary

compare(other[, shortcut, rtol, atol, output]) !Compare two Configs for equality; return True if equal
formatHistory(name, **kwargs) !Format the specified config field’s history to a more human-readable format
freeze() !Make this Config and all sub-configs read-only
items() !Return the list of (field name, field value) pairs
iteritems() !Iterate over (field name, field value) pairs
iterkeys() !Iterate over field names
itervalues() !Iterate over field values
keys() !Return the list of field names
load(filename[, root]) !Modify this config in place by executing the Python code in the named file.
loadFromStream(stream[, root, filename]) !Modify this config in place by executing the python code in the provided stream.
names() !Return all the keys in a config recursively
save(filename[, root]) !Save a python script to the named file, which, when loaded, reproduces this Config
saveToStream(outfile[, root]) !Save a python script to a stream, which, when loaded, reproduces this Config
setDefaults() Derived config classes that must compute defaults rather than using the Field defaults should do so here.
toDict() !Return a dict of field name: value
update(**kw) !Update values specified by the keyword arguments
validate() !Validate the Config; raise an exception if invalid
values() !Return the list of field values

Attributes Documentation

badMaskPlanes

Mask planes that lead to an invalid detection. Options: NO_DATA EDGE SAT BAD CR INTRP (List, default ('NO_DATA', 'EDGE', 'SAT'))

detOnTemplate

If true run detection on the template (image to convolve); if false run detection on the science image (bool, default True)

detThreshold

Value of footprint detection threshold (float, default 10.0)

detThresholdType

Type of detection threshold (str, default 'pixel_stdev')

Allowed values:

'value'
Use counts as the detection threshold type
'stdev'
Use standard deviation of image plane
'variance'
Use variance of image plane
'pixel_stdev'
Use stdev derived from variance plane
'None'
Field is optional
fpGrowKernelScaling

If config.scaleByFwhm, grow the footprint based on the final kernelSize. Each footprint will be 2*fpGrowKernelScaling*kernelSize x 2*fpGrowKernelScaling*kernelSize. With the value of 1.0, the remaining pixels in each KernelCandiate after convolution by the basis functions will be equal to the kernel size itself. (float, default 1.0)

fpGrowPix

Growing radius (in pixels) for each raw detection footprint. The smaller the faster; however the kernel sum does not converge if the stamp is too small; and the kernel is not constrained at all if the stamp is the size of the kernel. The grown stamp is 2 * fpGrowPix pixels larger in each dimension. This is overridden by fpGrowKernelScaling if scaleByFwhm (int, default 30)

fpNpixMax

Maximum number of pixels in an acceptable Footprint; too big and the subsequent convolutions become unwieldy (int, default 500)

fpNpixMin

Minimum number of pixels in an acceptable Footprint (int, default 5)

history
scaleByFwhm

Scale fpGrowPix by input Fwhm? (bool, default True)

Methods Documentation

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

!Compare two Configs for equality; return True if equal

If the Configs contain RegistryFields or ConfigChoiceFields, unselected Configs will not be compared.

@param[in] other Config object to compare with self. @param[in] shortcut If True, return as soon as an inequality is found. @param[in] rtol Relative tolerance for floating point comparisons. @param[in] atol Absolute tolerance for floating point comparisons. @param[in] output If not None, a callable that takes a string, used (possibly repeatedly)

to report inequalities.

Floating point comparisons are performed by numpy.allclose; refer to that for details.

formatHistory(name, **kwargs)

!Format the specified config field’s history to a more human-readable format

@param[in] name name of field whose history is wanted @param[in] kwargs keyword arguments for lsst.pex.config.history.format @return a string containing the formatted history

freeze()

!Make this Config and all sub-configs read-only

items()

!Return the list of (field name, field value) pairs

iteritems()

!Iterate over (field name, field value) pairs

iterkeys()

!Iterate over field names

itervalues()

!Iterate over field values

keys()

!Return the list of field names

load(filename, root='config')

!Modify this config in place by executing the Python code in the named file.

@param[in] filename name of file containing config override code @param[in] root name of variable in file that refers to the config being overridden

For example: if the value of root is “config” and the file contains this text: “config.myField = 5” then this config’s field “myField” is set to 5.

@deprecated For purposes of backwards compatibility, older config files that use root=”root” instead of root=”config” will be loaded with a warning printed to sys.stderr. This feature will be removed at some point.

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

!Modify this config in place by executing the python code in the provided stream.

@param[in] stream open file object, string or compiled string containing config override code @param[in] root name of variable in stream that refers to the config being overridden @param[in] filename name of config override file, or None if unknown or contained

in the stream; used for error reporting

For example: if the value of root is “config” and the stream contains this text: “config.myField = 5” then this config’s field “myField” is set to 5.

@deprecated For purposes of backwards compatibility, older config files that use root=”root” instead of root=”config” will be loaded with a warning printed to sys.stderr. This feature will be removed at some point.

names()

!Return all the keys in a config recursively

save(filename, root='config')

!Save a python script to the named file, which, when loaded, reproduces this Config

@param[in] filename name of file to which to write the config @param[in] root name to use for the root config variable; the same value must be used when loading

saveToStream(outfile, root='config')

!Save a python script to a stream, which, when loaded, reproduces this Config

@param outfile [inout] open file object to which to write the config. Accepts strings not bytes. @param root [in] name to use for the root config variable; the same value must be used when loading

setDefaults()

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

toDict()

!Return a dict of field name: value

Correct behavior is dependent on proper implementation of Field.toDict. If implementing a new Field type, you may need to implement your own toDict method.

update(**kw)

!Update values specified by the keyword arguments

@warning 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. Modifying these keywords allows users to lie about a Config’s history. Please do not do so!

validate()

!Validate the Config; raise an exception if invalid

The base class implementation performs type checks on all fields by calling Field.validate().

Complex single-field validation can be defined by deriving new Field types. As syntactic sugar, some derived Field types are defined in this module which handle recursing into sub-configs (ConfigField, ConfigChoiceField)

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

values()

!Return the list of field values