I am currently running a Gen3 version of the LSST pipelines (v23_0_1
) on DECam data, and I’m seeing what I think may be essentially the same failure of my specified config argument(s) to have any effect on which outputs get written/saved, though now in the context of postISRCCD
and icExp
outputs, not the src
table outputs discussed previously.
I want to not have either postISRCCD
or icExp
outputs saved to disk after running CCD-level calibrations, by which I mean effectively the Gen3 equivalent of what used to be called processCcd.py
in Gen2. Even better would be if postISRCCD
and icExp
never get written to disk to begin with. The combination of postISRCCD
and icExp
outputs is roughly tripling the CCD-level calibration step’s output data volume relative to what I was getting with Gen2 (in Gen2 the output data volume was entirely dominated by calexp
).
Specifically, the config options -c characterizeImage:doWrite=False
and -c characterizeImage:doWriteExposure=False
appear not to have any effect on what outputs get written/saved. For context, the full command I’m running looks like:
OUTPUT=DECam/runs/reduce_data_volume
LOGFILE=$LOGDIR/step1_skip_transformPreSourceTable-reduce_data_volume.log; \
date | tee $LOGFILE; \
pipetask --long-log run --register-dataset-types \
-b $REPO --instrument lsst.obs.decam.DarkEnergyCamera \
-i $INPUT \
-o $OUTPUT \
-C calibrate:config/processCcd_g_config.py \
-c characterizeImage:doWrite=False \
-c characterizeImage:doWriteExposure=False \
-p DRP-Merian-step1-skip_transformPreSourceTable.yaml \
-d "instrument='DECam' AND $DATAQUERY" \
2>&1 | tee -a $LOGFILE; \
date | tee -a $LOGFILE
I’ve attached the associated input YAML pipeline definition file and input calibrate:config
file. I have checked that these doWrite
and doWriteExposure
config parameter settings from my launch command are indeed getting propagated into their associated output .py config files.
Beyond setting characterizeImage:doWrite=False
and characterizeImage:doWriteExposure=False
, I also tried adding in -c isr:doWrite=False
, but then this crashed right from the outset with:
RuntimeError: QuantumGraph is empty.
I do not understand why the writing versus not writing of ISR results would affect the QuantumGraph — I would think that ISR results can simply be held in memory during other calibration steps for each CCD? Or is such holding of data in memory not allowed, because e.g., isr
and characterizeImage
are distinct Tasks
within this processing framework?
As an alternative, I have been exploring butler prune-datasets
, but I have some questions about that as well, which I will plan on splitting off into a separate, new forum topic. Thanks very much.
DRP-Merian-step1-skip_transformPreSourceTable.yaml (1.6 KB)
processCcd_g_config.py (359 Bytes)