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: - Task- 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. - Methods Summary - checkFilter(exposure)- Check whether we should fringe-subtract the science exposure. - Empty (clear) the metadata for this Task and all sub-Tasks. - generatePositions(exposure, rng)- Generate a random distribution of positions for measuring fringe amplitudes. - Get metadata for all tasks. - Get the task name as a hierarchical name including parent task names. - getName()- Get the name of the task. - Get a dictionary of all tasks as a shallow copy. - loadFringes(fringeExp[, expId, assembler])- Pack the fringe data into a Struct. - makeField(doc)- Make a - lsst.pex.config.ConfigurableFieldfor this task.- makeSubtask(name, **keyArgs)- Create a subtask as a new instance as the - nameattribute of this task.- 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. - timer(name[, logLevel])- Context manager to log performance data for an arbitrary block of code. - Methods Documentation - checkFilter(exposure)¶
- Check whether we should fringe-subtract the science exposure. - Parameters:
- exposurelsst.afw.image.Exposure
- Exposure to check the filter of. 
 
- exposure
- Returns:
- needsFringebool
- If True, then the exposure has a filter listed in the configuration, and should have the fringe applied. 
 
- needsFringe
 
 - generatePositions(exposure, rng)¶
- Generate a random distribution of positions for measuring fringe amplitudes. - Parameters:
- exposurelsst.afw.image.Exposure
- Exposure to measure the positions on. 
- rngnumpy.random.RandomState
- Random number generator to use. 
 
- exposure
- Returns:
- positionsnumpy.array
- Two-dimensional array containing the positions to sample for fringe amplitudes. 
 
- positions
 
 - 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. 
 
- metadata
 - Notes - The returned metadata includes timing information (if - @timer.timeMethodis 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”. 
 
 
- fullName
 
 - getName() str¶
- Get the name of the task. - Returns:
- taskNamestr
- Name of the task. 
 
- taskName
 - 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. 
 
- taskDict
 
 - 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:
- fringeExplsst.afw.exposure.Exposure
- The exposure containing the fringe data. 
- expIdint, optional
- Exposure id to be fringe corrected, used to set RNG seed. 
- assemblerlsst.ip.isr.AssembleCcdTask, optional
- An instance of AssembleCcdTask (for assembling fringe frames). 
 
- fringeExp
- Returns:
 
 - classmethod makeField(doc: str) ConfigurableField¶
- Make a - lsst.pex.config.ConfigurableFieldfor this task.- Parameters:
- docstr
- Help text for the field. 
 
- doc
- Returns:
- configurableFieldlsst.pex.config.ConfigurableField
- A - ConfigurableFieldfor this task.
 
- configurableField
 - 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") 
 - makeSubtask(name: str, **keyArgs: Any) None¶
- Create a subtask as a new instance as the - nameattribute 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.
 
 
- name
 - Notes - The subtask must be defined by - Task.config.name, an instance of- ConfigurableFieldor- RegistryField.
 - 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:
- exposurelsst.afw.image.Exposure
- Exposure to measure the positions on. 
- positionsnumpy.array
- Two-dimensional array containing the positions to sample for fringe amplitudes. 
- titlestr, optional
- Title used for debug out plots. 
 
- exposure
- Returns:
- fringesnumpy.array
- Array of measured exposure values at each of the positions supplied. 
 
- fringes
 
 - removePedestal(fringe)¶
- Remove pedestal from fringe exposure. - Parameters:
- fringelsst.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:
- Returns:
- solutionnp.array
- Fringe solution amplitudes for each input fringe frame. 
- rmsfloat
- RMS error for the fit solution for this exposure. 
 
- solution
 
 - solve(science, fringes)¶
- Solve for the scale factors with iterative clipping. - Parameters:
- sciencenumpy.array
- Array of measured science image values at each of the positions supplied. 
- fringesnumpy.array
- Array of measured fringe values at each of the positions supplied. 
 
- science
- Returns:
- solutionnp.array
- Fringe solution amplitudes for each input fringe frame. 
- rmsfloat
- RMS error for the fit solution for this exposure. 
 
- solution
 
 - subtract(science, fringes, solution)¶
- Subtract the fringes. - Parameters:
- sciencelsst.afw.image.Exposure
- Science exposure from which to remove fringes. 
- fringeslsst.afw.image.Exposureorlistthereof
- Calibration fringe files containing master fringe frames. 
- solutionnp.array
- Fringe solution amplitudes for each input fringe frame. 
 
- science
- Raises:
- RuntimeError
- Raised if the number of fringe frames does not match the number of measured amplitudes.