25 from .calibrate
import CalibrateTask
26 from .characterizeImage
import CharacterizeImageTask
28 __all__ = [
"ProcessCcdConfig",
"ProcessCcdTask"]
32 """Config for ProcessCcd""" 33 isr = pexConfig.ConfigurableField(
35 doc=
"""Task to perform instrumental signature removal or load a post-ISR image; ISR consists of: 36 - assemble raw amplifier images into an exposure with image, variance and mask planes 37 - perform bias subtraction, flat fielding, etc. 38 - mask known bad pixels 39 - provide a preliminary WCS 42 charImage = pexConfig.ConfigurableField(
43 target=CharacterizeImageTask,
44 doc=
"""Task to characterize a science exposure: 45 - detect sources, usually at high S/N 46 - estimate the background, which is subtracted from the image and returned as field "background" 47 - estimate a PSF model, which is added to the exposure 48 - interpolate over defects and cosmic rays, updating the image, variance and mask planes 51 doCalibrate = pexConfig.Field(
54 doc=
"Perform calibration?",
56 calibrate = pexConfig.ConfigurableField(
58 doc=
"""Task to perform astrometric and photometric calibration: 59 - refine the WCS in the exposure 60 - refine the PhotoCalib object in the exposure 61 - detect sources, usually at low S/N 66 self.
isr.doWrite =
False 68 self.
charImage.detection.doTempLocalBackground =
False 69 self.
calibrate.detection.doTempLocalBackground =
False 70 self.
calibrate.deblend.maxFootprintSize = 2000
81 r"""!Assemble raw data, fit the PSF, detect and measure, and fit WCS and zero-point 83 @anchor ProcessCcdTask_ 85 @section pipe_tasks_processCcd_Contents Contents 87 - @ref pipe_tasks_processCcd_Purpose 88 - @ref pipe_tasks_processCcd_Initialize 89 - @ref pipe_tasks_processCcd_IO 90 - @ref pipe_tasks_processCcd_Config 91 - @ref pipe_tasks_processCcd_Debug 92 - @ref pipe_tasks_processCcd_Example 94 @section pipe_tasks_processCcd_Purpose Description 96 Perform the following operations: 97 - Call isr to unpersist raw data and assemble it into a post-ISR exposure 98 - Call charImage subtract background, fit a PSF model, repair cosmic rays, 99 detect and measure bright sources, and measure aperture correction 100 - Call calibrate to perform deep detection, deblending and single-frame measurement, 101 refine the WCS and fit the photometric zero-point 103 @section pipe_tasks_processCcd_Initialize Task initialisation 105 @copydoc \_\_init\_\_ 107 @section pipe_tasks_processCcd_IO Invoking the Task 109 This task is primarily designed to be run from the command line. 111 The main method is `runDataRef`, which takes a single butler data reference for the raw input data. 113 @section pipe_tasks_processCcd_Config Configuration parameters 115 See @ref ProcessCcdConfig 117 @section pipe_tasks_processCcd_Debug Debug variables 119 ProcessCcdTask has no debug output, but its subtasks do. 121 @section pipe_tasks_processCcd_Example A complete example of using ProcessCcdTask 123 The following commands will process all raw data in obs_test's data repository. 124 Note: be sure to specify an `--output` that does not already exist: 128 processCcd.py $OBS_TEST_DIR/data/input --output processCcdOut --id 130 The data is read from the small repository in the `obs_test` package and written `./processCcdOut` 131 (or whatever output you specified). Specifying `--id` with no values processes all data. 132 Add the option `--help` to see more options. 134 ConfigClass = ProcessCcdConfig
135 RunnerClass = pipeBase.ButlerInitializedTaskRunner
136 _DefaultName =
"processCcd" 138 def __init__(self, butler=None, psfRefObjLoader=None, astromRefObjLoader=None, photoRefObjLoader=None,
141 @param[in] butler The butler is passed to the refObjLoader constructor in case it is 142 needed. Ignored if the refObjLoader argument provides a loader directly. 143 @param[in] psfRefObjLoader An instance of LoadReferenceObjectsTasks that supplies an 144 external reference catalog for image characterization. May be None if the desired 145 loader can be constructed from the butler argument or all steps requiring a catalog 147 @param[in] astromRefObjLoader An instance of LoadReferenceObjectsTasks that supplies an 148 external reference catalog for astrometric calibration. May be None if the desired 149 loader can be constructed from the butler argument or all steps requiring a reference 150 catalog are disabled. 151 @param[in] photoRefObjLoader An instance of LoadReferenceObjectsTasks that supplies an 152 external reference catalog for photometric calibration. May be None if the desired 153 loader can be constructed from the butler argument or all steps requiring a reference 154 catalog are disabled. 155 @param[in,out] kwargs other keyword arguments for lsst.pipe.base.CmdLineTask 157 pipeBase.CmdLineTask.__init__(self, **kwargs)
158 self.makeSubtask(
"isr")
159 self.makeSubtask(
"charImage", butler=butler, refObjLoader=psfRefObjLoader)
160 self.makeSubtask(
"calibrate", butler=butler, icSourceSchema=self.charImage.schema,
161 astromRefObjLoader=astromRefObjLoader, photoRefObjLoader=photoRefObjLoader)
167 The sequence of operations is: 168 - remove instrument signature 169 - characterize image to estimate PSF and background 170 - calibrate astrometry and photometry 172 @param sensorRef: butler data reference for raw data 174 @return pipe_base Struct containing these fields: 175 - charRes: object returned by image characterization task; an lsst.pipe.base.Struct 176 that will include "background" and "sourceCat" fields 177 - calibRes: object returned by calibration task: an lsst.pipe.base.Struct 178 that will include "background" and "sourceCat" fields 179 - exposure: final exposure (an lsst.afw.image.ExposureF) 180 - background: final background model (an lsst.afw.math.BackgroundList) 182 self.log.
info(
"Processing %s" % (sensorRef.dataId))
184 exposure = self.isr.
runDataRef(sensorRef).exposure
191 exposure = charRes.exposure
193 if self.config.doCalibrate:
196 exposure=charRes.exposure,
197 background=charRes.background,
199 icSourceCat=charRes.sourceCat,
202 return pipeBase.Struct(
204 calibRes=calibRes
if self.config.doCalibrate
else None,
206 background=calibRes.background
if self.config.doCalibrate
else charRes.background,
210 def _makeArgumentParser(cls):
211 """!Create and return an argument parser 213 @param[in] cls the class object 214 @return the argument parser for this task. 216 This override is used to delay making the data ref list until the dataset type is known; 217 this is done in @ref parseAndRun. 220 parser.add_id_argument(name=
"--id",
221 datasetType=pipeBase.ConfigDatasetType(name=
"isr.datasetType"),
222 help=
"data IDs, e.g. --id visit=12345 ccd=1,2^0,3")
Assemble raw data, fit the PSF, detect and measure, and fit WCS and zero-point.
def runDataRef(self, sensorRef)
def __init__(self, butler=None, psfRefObjLoader=None, astromRefObjLoader=None, photoRefObjLoader=None, kwargs)