FringeTask#
- class lsst.ip.isr.FringeTask(config: Config | None = None, *, name: str | None = None, parentTask: Task | None = None, log: logging.Logger | lsst.utils.logging.LsstLogAdapter | None = None)#
Bases:
TaskTask to remove fringes from a science exposure
We measure fringe amplitudes at random positions on the science exposure and at the same positions on the (potentially multiple) fringe frames and solve for the scales simultaneously.
Methods Summary
checkFilter(exposure)Check whether we should fringe-subtract the science exposure.
generatePositions(exposure, rng)Generate a random distribution of positions for measuring fringe amplitudes.
loadFringes(fringeExp[, expId, assembler])Pack the fringe data into a Struct.
measureExposure(exposure, positions[, title])Measure fringe amplitudes for an exposure
removePedestal(fringe)Remove pedestal from fringe exposure.
run(exposure, fringes[, seed])Remove fringes from the provided science exposure.
solve(science, fringes)Solve for the scale factors with iterative clipping.
subtract(science, fringes, solution)Subtract the fringes.
Methods Documentation
- checkFilter(exposure)#
Check whether we should fringe-subtract the science exposure.
Parameters#
- exposure
lsst.afw.image.Exposure Exposure to check the filter of.
Returns#
- needsFringe
bool If True, then the exposure has a filter listed in the configuration, and should have the fringe applied.
- exposure
- generatePositions(exposure, rng)#
Generate a random distribution of positions for measuring fringe amplitudes.
Parameters#
- exposure
lsst.afw.image.Exposure Exposure to measure the positions on.
- rng
numpy.random.RandomState Random number generator to use.
Returns#
- positions
numpy.array Two-dimensional array containing the positions to sample for fringe amplitudes.
- exposure
- loadFringes(fringeExp, expId=None, assembler=None)#
Pack the fringe data into a Struct.
This method moves the struct parsing code into a butler generation agnostic handler.
Parameters#
- fringeExp
lsst.afw.exposure.Exposure The exposure containing the fringe data.
- expId
int, optional Exposure id to be fringe corrected, used to set RNG seed.
- assembler
lsst.ip.isr.AssembleCcdTask, optional An instance of AssembleCcdTask (for assembling fringe frames).
Returns#
- fringeData
pipeBase.Struct Struct containing fringe data:
fringesCalibration fringe files containing master fringe frames. ( :
lsst.afw.image.Exposureorlistthereof)seedSeed for random number generation. (
int, optional)
- fringeExp
- measureExposure(exposure, positions, title='Fringe')#
Measure fringe amplitudes for an exposure
The fringe amplitudes are measured as the statistic within a square aperture. The statistic within a larger aperture are subtracted so as to remove the background.
Parameters#
- exposure
lsst.afw.image.Exposure Exposure to measure the positions on.
- positions
numpy.array Two-dimensional array containing the positions to sample for fringe amplitudes.
- title
str, optional Title used for debug out plots.
Returns#
- fringes
numpy.array Array of measured exposure values at each of the positions supplied.
- exposure
- removePedestal(fringe)#
Remove pedestal from fringe exposure.
Parameters#
- fringe
lsst.afw.image.Exposure Fringe data to subtract the pedestal value from.
- fringe
- run(exposure, fringes, seed=None)#
Remove fringes from the provided science exposure.
Primary method of FringeTask. Fringes are only subtracted if the science exposure has a filter listed in the configuration.
Parameters#
- exposure
lsst.afw.image.Exposure Science exposure from which to remove fringes.
- fringes
lsst.afw.image.Exposureorlistthereof Calibration fringe files containing master fringe frames.
- seed
int, optional Seed for random number generation.
Returns#
- solution
np.array Fringe solution amplitudes for each input fringe frame.
- rms
float RMS error for the fit solution for this exposure.
- exposure
- solve(science, fringes)#
Solve for the scale factors with iterative clipping.
Parameters#
- science
numpy.array Array of measured science image values at each of the positions supplied.
- fringes
numpy.array Array of measured fringe values at each of the positions supplied.
Returns#
- solution
np.array Fringe solution amplitudes for each input fringe frame.
- rms
float RMS error for the fit solution for this exposure.
- science
- subtract(science, fringes, solution)#
Subtract the fringes.
Parameters#
- science
lsst.afw.image.Exposure Science exposure from which to remove fringes.
- fringes
lsst.afw.image.Exposureorlistthereof Calibration fringe files containing master fringe frames.
- solution
np.array Fringe solution amplitudes for each input fringe frame.
Raises#
- RuntimeError
Raised if the number of fringe frames does not match the number of measured amplitudes.
- science