lsst.ip.isr  20.0.0-22-gdf434b7+ec36e0f211
Public Member Functions | Static Public Attributes | List of all members
lsst.ip.isr.fringe.FringeTask Class Reference
Inheritance diagram for lsst.ip.isr.fringe.FringeTask:

Public Member Functions

def readFringes (self, dataRef, assembler=None)
 
def loadFringes (self, fringeExp, expId=0, assembler=None)
 
def run (self, exposure, fringes, seed=None)
 
def runDataRef (self, exposure, dataRef, assembler=None)
 
def checkFilter (self, exposure)
 
def removePedestal (self, fringe)
 
def generatePositions (self, exposure, rng)
 
def measureExposure (self, exposure, positions, title="Fringe")
 
def solve (self, science, fringes)
 
def subtract (self, science, fringes, solution)
 

Static Public Attributes

 ConfigClass = FringeConfig
 

Detailed Description

Task 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.

Definition at line 67 of file fringe.py.

Member Function Documentation

◆ checkFilter()

def lsst.ip.isr.fringe.FringeTask.checkFilter (   self,
  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.

Definition at line 238 of file fringe.py.

◆ generatePositions()

def lsst.ip.isr.fringe.FringeTask.generatePositions (   self,
  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.

Definition at line 275 of file fringe.py.

◆ loadFringes()

def lsst.ip.isr.fringe.FringeTask.loadFringes (   self,
  fringeExp,
  expId = 0,
  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:
    - ``fringes`` : `lsst.afw.image.Exposure` or `list` thereof
Calibration fringe files containing master fringe frames.
    - ``seed`` : `int`, optional
Seed for random number generation.

Definition at line 111 of file fringe.py.

◆ measureExposure()

def lsst.ip.isr.fringe.FringeTask.measureExposure (   self,
  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.

Definition at line 299 of file fringe.py.

◆ readFringes()

def lsst.ip.isr.fringe.FringeTask.readFringes (   self,
  dataRef,
  assembler = None 
)
Read the fringe frame(s), and pack data into a Struct

The current implementation assumes only a single fringe frame and
will have to be updated to support multi-mode fringe subtraction.

This implementation could be optimised by persisting the fringe
positions and fluxes.

Parameters
----------
dataRef : `daf.butler.butlerSubset.ButlerDataRef`
    Butler reference for the exposure that will have fringing
    removed.
assembler : `lsst.ip.isr.AssembleCcdTask`, optional
    An instance of AssembleCcdTask (for assembling fringe
    frames).

Returns
-------
fringeData : `pipeBase.Struct`
    Struct containing fringe data:
    - ``fringes`` : `lsst.afw.image.Exposure` or `list` thereof
Calibration fringe files containing master fringe frames.
    - ``seed`` : `int`, optional
Seed for random number generation.

Definition at line 77 of file fringe.py.

◆ removePedestal()

def lsst.ip.isr.fringe.FringeTask.removePedestal (   self,
  fringe 
)
Remove pedestal from fringe exposure.

Parameters
----------
fringe : `lsst.afw.image.Exposure`
    Fringe data to subtract the pedestal value from.

Definition at line 259 of file fringe.py.

◆ run()

def lsst.ip.isr.fringe.FringeTask.run (   self,
  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.Exposure` or `list` thereof
    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.

Definition at line 152 of file fringe.py.

◆ runDataRef()

def lsst.ip.isr.fringe.FringeTask.runDataRef (   self,
  exposure,
  dataRef,
  assembler = None 
)
Remove fringes from the provided science exposure.

Retrieve fringes from butler dataRef provided and remove from
provided science exposure. 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.
dataRef : `daf.persistence.butlerSubset.ButlerDataRef`
    Butler reference to the exposure.  Used to find
    appropriate fringe data.
assembler : `lsst.ip.isr.AssembleCcdTask`, optional
    An instance of AssembleCcdTask (for assembling fringe
    frames).

Returns
-------
solution : `np.array`
    Fringe solution amplitudes for each input fringe frame.
rms : `float`
    RMS error for the fit solution for this exposure.

Definition at line 207 of file fringe.py.

◆ solve()

def lsst.ip.isr.fringe.FringeTask.solve (   self,
  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.

Definition at line 351 of file fringe.py.

◆ subtract()

def lsst.ip.isr.fringe.FringeTask.subtract (   self,
  science,
  fringes,
  solution 
)
Subtract the fringes.

Parameters
----------
science : `lsst.afw.image.Exposure`
    Science exposure from which to remove fringes.
fringes : `lsst.afw.image.Exposure` or `list` thereof
    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.

Definition at line 486 of file fringe.py.

Member Data Documentation

◆ ConfigClass

lsst.ip.isr.fringe.FringeTask.ConfigClass = FringeConfig
static

Definition at line 74 of file fringe.py.


The documentation for this class was generated from the following file: