I think it’ll be simpler if I just write out my counter-proposal (which I think isn’t that different from @rowen’s original).
I think I agree with @nidever that having ISR as a top-level task would be useful; maybe what we want is to split processCcd.py into three CmdLineTasks, but continue to have ProcessCcdTask to aggregate them (there’s nothing that says a subtask can’t be a CmdLineTask). We may even want to make ProcessCcdTask inherit from the new lsst.ctrl.pool.BatchPoolTask, but that’s really a separate issue (DM-3368).
Anyhow, here’s my proposal for the subtask hierarchy:
-
ProcessCcdTask(CmdLineTask)IsrTask(CmdLineTask)-
ImageCharacterizationTask(CmdLineTask)-
SourceDetectionTask(just detect bright stars; includes background estimation) -
SourceDeblendTask(maybe unnecessary, but we should include it until/unless we can prove that) -
SingleFrameMeasurementTask(just algorithms needed to select stars) -
MeasurePsfTask(then go back toSourceDetectionTask.runand iterate as necessary) RepairTask
-
-
CalibrateTask(CmdLineTask)-
SourceDetectionTask(detect to 5-sigma limit; re-estimate background) SourceDeblendTask-
SingleFrameMeasurementTask(*all algorithms needed for Source table and calibration) AstrometryTaskPhotoCalTask
-
Maybe reusing the name “CalibrateTask” here isn’t a great idea; I’m open to other ideas for the name, but I also feel like “MeasureSourcesTask” is a bit too easy to confuse with the old “SourceMeasurementTask” or “SingleFrameMeasurementTask”.