As part of overhauling processCcd we have a new ImageCharacterizationTask, which is run before CalibrationTask to measure the PSF and provide an initial background model. Potential outputs include a characterized image (new, e.g. “charexp”), source catalog (the existing “src” looks appropriate) and background model (new, e.g. “charexpBackground”). These are preliminary products that will be further refined by the calibration task. How much control do we need for which products are written? I propose at least one flag that enables and disables all of it, but do we need the further ability to control which products are written? If we’re not sure I suggest starting simple and adding flags as they prove necessary.
For reference, the old ProcessCcdTask offers the following flags: doWriteCalibrate doWriteCalibrateMatches, both of which control output after running the calibrate task, which is very different than the new calibrate task since the new one is the final operation, and these flags that control later outputs: doWriteSources, doWriteSourceMatches, doWriteHeavyFootprintsInSources.
Also the old ProcessCcdTask had persistBackgroundModel: if True then save background model separately from calexp and calexp is bg-subtracted. If False then don’t save background model and calexp is includes bg. That’s confusing. Do we still need both options? I propose to always leave the background in and persist the model (if the calexp is persisted) and likewise for the image char. task.
More generally some sort of rule of thumb for how much granularity is wanted would be helpful.