IsrMockLSST

class lsst.ip.isr.IsrMockLSST(**kwargs)

Bases: IsrMock

Class to generate consistent mock images for ISR testing.

Methods Summary

addBiasLevel(ampData, biasLevel)

Add bias level to an amplifier's image data.

amplifierAddBrighterFatter(ampImageData, ...)

Add brighter fatter effect and/or diffusion to the image. Parameters ---------- ampImageData : lsst.afw.image.ImageF Amplifier image to operate on. rng : galsim.BaseDeviate Random number generator. bfStrength : float Scaling parameter of the brighter fatter effect (nominally = 1) nRecalc: 'int' The number of electrons to accumulate before recalculating the distortion of the pixel shapes.

amplifierAddCT(ampDataSource, ampDataTarget, ...)

Add a scaled copy of an amplifier to another, simulating crosstalk.

amplifierAddDeferredCharge(exposure, amp)

Add serial CTI to the amplifier data.

amplifierAddFringe(amp, ampData, scale[, x0, y0])

Add a fringe-like ripple pattern to an amplifier's image data.

amplifierAddNoise(ampData, mean, sigma[, rng])

Add Gaussian noise to an amplifier's image data.

amplifierAddNonlinearity(ampData, centers, ...)

Add non-linearity to amplifier data.

amplifierAddSource(ampData, scale, x0, y0)

Add a single Gaussian source to an amplifier.

amplifierAddXGradient(ampData, start, end)

Add a x-axis linear gradient to an amplifier's image data.

amplifierAddYGradient(ampData, start, end)

Add a y-axis linear gradient to an amplifier's image data.

amplifierMultiplyFlat(amp, ampData, fracDrop)

Multiply an amplifier's image data by a flat-like pattern.

applyGain(ampData, gain)

Apply gain to the amplifier's data.

emptyMetadata()

Empty (clear) the metadata for this Task and all sub-Tasks.

getCamera([isForAssembly])

Construct a test camera object.

getExposure([isTrimmed])

Construct a test exposure.

getFullMetadata()

Get metadata for all tasks.

getFullName()

Get the task name as a hierarchical name including parent task names.

getFullSerialOverscanBBox(amp)

Get the full serial overscan bounding box from an amplifier.

getName()

Get the name of the task.

getTaskDict()

Get a dictionary of all tasks as a shallow copy.

getWcs()

Construct a dummy WCS object.

localCoordToExpCoord(ampData, x, y)

Convert between a local amplifier coordinate and the full exposure coordinate.

makeBfKernel()

Generate a simple simulated brighter-fatter kernel. Returns ------- kernel : lsst.ip.isr.BrighterFatterKernel Simulated brighter-fatter kernel.

makeCrosstalkCoeff()

Generate the simulated crosstalk coefficients.

makeData()

Generate simulated ISR data.

makeDefectList([isTrimmed])

Generate a simple defect list.

makeDeferredChargeCalib()

Generate a CTI calibration.

makeField(doc)

Make a lsst.pex.config.ConfigurableField for this task.

makeImage()

Generate a simulated ISR LSST image.

makeLinearity()

Generate a linearity dataset.

makeLinearizer()

makeSubtask(name, **keyArgs)

Create a subtask as a new instance as the name attribute of this task.

makeTransmissionCurve()

Generate a simulated flat transmission curve.

roundADU(ampData)

Round adu to nearest integer.

run()

Generate a mock ISR product following LSSTCam ISR, and return it.

timer(name[, logLevel])

Context manager to log performance data for an arbitrary block of code.

Methods Documentation

addBiasLevel(ampData, biasLevel)

Add bias level to an amplifier’s image data.

Parameters:
ampDatalsst.afw.image.ImageF

Amplifier image to operate on.

biasLevelfloat

Bias level to be added to the image.

amplifierAddBrighterFatter(ampImageData, rng, bfStrength, nRecalc)

Add brighter fatter effect and/or diffusion to the image. Parameters ———- ampImageData : lsst.afw.image.ImageF

Amplifier image to operate on.

rnggalsim.BaseDeviate

Random number generator.

bfStrengthfloat

Scaling parameter of the brighter fatter effect (nominally = 1)

nRecalc: ‘int’

The number of electrons to accumulate before recalculating the distortion of the pixel shapes.

amplifierAddCT(ampDataSource, ampDataTarget, scale)

Add a scaled copy of an amplifier to another, simulating crosstalk.

This method operates in the amplifier coordinate frame.

Parameters:
ampDataSourcelsst.afw.image.ImageF

Amplifier image to add scaled copy from.

ampDataTargetlsst.afw.image.ImageF

Amplifier image to add scaled copy to.

scalefloat

Flux scale of the copy to add to the target.

Notes

This simulates simple crosstalk between amplifiers.

amplifierAddDeferredCharge(exposure, amp)

Add serial CTI to the amplifier data.

Parameters:
exposurelsst.afw.image.ExposureF

The exposure object containing the amplifier to apply deferred charge to.

amplsst.afw.image.Amplifier

The amplifier object (contains geometry info).

amplifierAddFringe(amp, ampData, scale, x0=100, y0=0)

Add a fringe-like ripple pattern to an amplifier’s image data.

Parameters:
ampAmpInfoRecord

Amplifier to operate on. Needed for amp<->exp coordinate transforms.

ampDatalsst.afw.image.ImageF

Amplifier image to operate on.

scalenumpy.array or float

Peak intensity scaling for the ripple.

x0numpy.array or float, optional

Fringe center

y0numpy.array or float, optional

Fringe center

Notes

This uses an offset sinc function to generate a ripple pattern. True fringes have much finer structure, but this pattern should be visually identifiable. The (x, y) coordinates are in the frame of the amplifier, and (u, v) in the frame of the full trimmed image.

amplifierAddNoise(ampData, mean, sigma, rng=None)

Add Gaussian noise to an amplifier’s image data.

This method operates in the amplifier coordinate frame.

Parameters:
ampDatalsst.afw.image.ImageF

Amplifier image to operate on.

meanfloat

Mean value of the Gaussian noise.

sigmafloat

Sigma of the Gaussian noise.

rngnp.random.RandomState, optional

Random state to use instead of self.rng.

amplifierAddNonlinearity(ampData, centers, values, offset)

Add non-linearity to amplifier data.

Parameters:
ampDatalsst.afw.image.ImageF

Amplifier image to operate on.

centersnp.ndarray

Spline nodes.

valuesnp.ndarray

Spline values.

offsetfloat

Offset zero-point between linearizer (internal vs external).

amplifierAddSource(ampData, scale, x0, y0)

Add a single Gaussian source to an amplifier.

This method operates in the amplifier coordinate frame.

Parameters:
ampDatalsst.afw.image.ImageF

Amplifier image to operate on.

scalefloat

Peak flux of the source to add.

x0float

X-coordinate of the source peak.

y0float

Y-coordinate of the source peak.

amplifierAddXGradient(ampData, start, end)

Add a x-axis linear gradient to an amplifier’s image data.

This method operates in the amplifier coordinate frame.

Parameters:
ampDatalsst.afw.image.ImageF

Amplifier image to operate on.

startfloat

Start value of the gradient (at x=0).

endfloat

End value of the gradient (at x=xmax).

amplifierAddYGradient(ampData, start, end)

Add a y-axis linear gradient to an amplifier’s image data.

This method operates in the amplifier coordinate frame.

Parameters:
ampDatalsst.afw.image.ImageF

Amplifier image to operate on.

startfloat

Start value of the gradient (at y=0).

endfloat

End value of the gradient (at y=ymax).

amplifierMultiplyFlat(amp, ampData, fracDrop, u0=100.0, v0=100.0)

Multiply an amplifier’s image data by a flat-like pattern.

Parameters:
amplsst.afw.ampInfo.AmpInfoRecord

Amplifier to operate on. Needed for amp<->exp coordinate transforms.

ampDatalsst.afw.image.ImageF

Amplifier image to operate on.

fracDropfloat

Fractional drop from center to edge of detector along x-axis.

u0float

Peak location in detector coordinates.

v0float

Peak location in detector coordinates.

applyGain(ampData, gain)

Apply gain to the amplifier’s data. This method divides the data by the gain because the mocks need to convert the data in electron to adu, so it does the inverse operation to applyGains in isrFunctions.

Parameters:
ampDatalsst.afw.image.ImageF

Amplifier image to operate on.

gainfloat

Gain value in electron/adu.

emptyMetadata() None

Empty (clear) the metadata for this Task and all sub-Tasks.

getCamera(isForAssembly=False)

Construct a test camera object.

Parameters

isForAssemblybool

If True, construct a camera with “super raw” orientation (all amplifiers have LL readout corner but still contains the necessary flip and offset info needed for assembly. This is needed if isLsstLike is True. If False, return a camera with bboxes flipped and offset to the correct orientation given the readout corner.

Returns:
cameralsst.afw.cameraGeom.camera

Test camera.

getExposure(isTrimmed=None)

Construct a test exposure.

The test exposure has a simple WCS set, as well as a list of unlikely header keywords that can be removed during ISR processing to exercise that code.

Parameters:
isTrimmedbool or None, optional

Override the configuration isTrimmed?

Returns:
exposurelsst.afw.exposure.Exposure

Construct exposure containing masked image of the appropriate size.

getFullMetadata() TaskMetadata

Get metadata for all tasks.

Returns:
metadataTaskMetadata

The keys are the full task name. Values are metadata for the top-level task and all subtasks, sub-subtasks, etc.

Notes

The returned metadata includes timing information (if @timer.timeMethod is used) and any metadata set by the task. The name of each item consists of the full task name with . replaced by :, followed by . and the name of the item, e.g.:

topLevelTaskName:subtaskName:subsubtaskName.itemName

using : in the full task name disambiguates the rare situation that a task has a subtask and a metadata item with the same name.

getFullName() str

Get the task name as a hierarchical name including parent task names.

Returns:
fullNamestr

The full name consists of the name of the parent task and each subtask separated by periods. For example:

  • The full name of top-level task “top” is simply “top”.

  • The full name of subtask “sub” of top-level task “top” is “top.sub”.

  • The full name of subtask “sub2” of subtask “sub” of top-level task “top” is “top.sub.sub2”.

getFullSerialOverscanBBox(amp)

Get the full serial overscan bounding box from an amplifier.

This includes the serial/parallel overscan region.

Parameters:
amplsst.afw.ampInfo.AmpInfoRecord

Amplifier to operate on.

Returns:
bboxlsst.geom.Box2I
getName() str

Get the name of the task.

Returns:
taskNamestr

Name of the task.

See also

getFullName

Get the full name of the task.

getTaskDict() dict[str, weakref.ReferenceType[lsst.pipe.base.task.Task]]

Get a dictionary of all tasks as a shallow copy.

Returns:
taskDictdict

Dictionary containing full task name: task object for the top-level task and all subtasks, sub-subtasks, etc.

getWcs()

Construct a dummy WCS object.

Taken from the deprecated ip_isr/examples/exampleUtils.py.

This is not guaranteed, given the distortion and pixel scale listed in the afwTestUtils camera definition.

Returns:
wcslsst.afw.geom.SkyWcs

Test WCS transform.

localCoordToExpCoord(ampData, x, y)

Convert between a local amplifier coordinate and the full exposure coordinate.

Parameters:
ampDatalsst.afw.image.ImageF

Amplifier image to use for conversions.

xint

X-coordinate of the point to transform.

yint

Y-coordinate of the point to transform.

Returns:
uint

Transformed x-coordinate.

vint

Transformed y-coordinate.

Notes

The output is transposed intentionally here, to match the internal transpose between numpy and afw.image coordinates.

makeBfKernel()

Generate a simple simulated brighter-fatter kernel. Returns ——- kernel : lsst.ip.isr.BrighterFatterKernel

Simulated brighter-fatter kernel.

makeCrosstalkCoeff()

Generate the simulated crosstalk coefficients.

Returns:
coeffsnumpy.ndarray

Simulated crosstalk coefficients.

makeData()

Generate simulated ISR data.

Currently, only the class defined crosstalk coefficient matrix, brighter-fatter kernel, a constant unity transmission curve, or a simple single-entry defect list can be generated.

Returns:
dataProduct

Simulated ISR data product.

makeDefectList(isTrimmed=True)

Generate a simple defect list.

Parameters:
isTrimmedbool, optional

Return defects in trimmed coordinates?

Returns:
defectListlsst.meas.algorithms.Defects

Simulated defect list

makeDeferredChargeCalib()

Generate a CTI calibration.

Returns:
ctilsst.ip.isr.deferredCharge.DeferredChargeCalib

Simulated deferred charge calibration.

classmethod makeField(doc: str) ConfigurableField

Make a lsst.pex.config.ConfigurableField for this task.

Parameters:
docstr

Help text for the field.

Returns:
configurableFieldlsst.pex.config.ConfigurableField

A ConfigurableField for this task.

Examples

Provides a convenient way to specify this task is a subtask of another task.

Here is an example of use:

class OtherTaskConfig(lsst.pex.config.Config):
    aSubtask = ATaskClass.makeField("brief description of task")
makeImage()

Generate a simulated ISR LSST image.

Returns:
exposurelsst.afw.image.Exposure or dict

Simulated ISR image data.

Notes

This method constructs a “raw” data image.

makeLinearity()

Generate a linearity dataset.

Returns:
linearizerlsst.ip.isr.Linearizer
makeLinearizer()
makeSubtask(name: str, **keyArgs: Any) None

Create a subtask as a new instance as the name attribute of this task.

Parameters:
namestr

Brief name of the subtask.

**keyArgs

Extra keyword arguments used to construct the task. The following arguments are automatically provided and cannot be overridden:

  • config.

  • parentTask.

Notes

The subtask must be defined by Task.config.name, an instance of ConfigurableField or RegistryField.

makeTransmissionCurve()

Generate a simulated flat transmission curve.

Returns:
transmissionlsst.afw.image.TransmissionCurve

Simulated transmission curve.

roundADU(ampData)

Round adu to nearest integer.

Parameters:
ampDatalsst.afw.image.ImageF

Amplifier image to operate on.

run()

Generate a mock ISR product following LSSTCam ISR, and return it.

Returns:
imagelsst.afw.image.Exposure

Simulated ISR image with signals added.

dataProduct

Simulated ISR data products.

None

Returned if no valid configuration was found.

Raises:
RuntimeError

Raised if both doGenerateImage and doGenerateData are specified.

timer(name: str, logLevel: int = 10) Iterator[None]

Context manager to log performance data for an arbitrary block of code.

Parameters:
namestr

Name of code being timed; data will be logged using item name: Start and End.

logLevelint

A logging level constant.

See also

lsst.utils.timer.logInfo

Implementation function.

Examples

Creating a timer context:

with self.timer("someCodeToTime"):
    pass  # code to time