Hello,
I’m trying to process calibration images using the gen2 stack.
I can successfully ingest all images with ingestImages.py
The files are all linked using the directory structure that I set in the policy file,
so I think that part is working well.
But when I try to construct master calibration frames with
constructDark.py DATA --rerun darkcombine --id dataType=dark --job dark --cores 1 --batch-type=smp
I get this error:
$ constructDark.py DATA --rerun darkcombine --id dataType=dark --job dark --cores 1 --batch-type=smp
root INFO: Loading config overrride file '/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/obs_ctmo/v1/config/dark.py'
CameraMapper INFO: Loading exposure registry from /home/lsst/pipe/DATA/registry.sqlite3
root INFO: Loading config overrride file '/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/obs_ctmo/v1/config/dark.py'
CameraMapper INFO: Loading exposure registry from /home/lsst/pipe/DATA/registry.sqlite3
root INFO: Running: -c DATA --rerun darkcombine --id dataType=dark --noExit
dark FATAL: Failed: Unable to determine output filename "dark_filename" from {'ccd': 1, 'filter': 'NONE', 'calibDate': '2020-10-11'}: No unique lookup for {'taiObs'} from DataId(initialdata={'ccd': 1, 'filter': 'NONE', 'calibDate': '2020-10-11'}, tag=set()): 0 matches
root ERROR: 1 dataRefs failed; not exiting as --noExit was set
Traceback (most recent call last):
File "/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/pipe_drivers/20.0.0/python/lsst/pipe/drivers/constructCalibs.py", line 453, in runDataRef
butler.get(self.calibName + "_filename", dataId)
File "/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/daf_persistence/20.0.0/python/lsst/daf/persistence/butler.py", line 1397, in get
location = self._locate(datasetType, dataId, write=False)
File "/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/daf_persistence/20.0.0/python/lsst/daf/persistence/butler.py", line 1316, in _locate
location = repoData.repo.map(datasetType, dataId, write=write)
File "/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/daf_persistence/20.0.0/python/lsst/daf/persistence/repository.py", line 239, in map
loc = self._mapper.map(*args, **kwargs)
File "/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/daf_persistence/20.0.0/python/lsst/daf/persistence/mapper.py", line 163, in map
return func(self.validate(dataId), write)
File "/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/obs_base/20.0.0/python/lsst/obs/base/cameraMapper.py", line 383, in mapClosure
return mapping.map(mapper, dataId, write)
File "/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/obs_base/20.0.0/python/lsst/obs/base/mapping.py", line 454, in map
location = Mapping.map(self, mapper, dataId, write=write)
File "/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/obs_base/20.0.0/python/lsst/obs/base/mapping.py", line 152, in map
actualId = self.need(iter(self.keyDict.keys()), dataId)
File "/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/obs_base/20.0.0/python/lsst/obs/base/mapping.py", line 316, in need
lookups = self.lookup(newProps, newId)
File "/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/obs_base/20.0.0/python/lsst/obs/base/mapping.py", line 506, in lookup
(columns, dataId, len(lookups)))
RuntimeError: No unique lookup for {'taiObs'} from DataId(initialdata={'ccd': 1, 'filter': 'NONE', 'calibDate': '2020-10-11'}, tag=set()): 0 matches
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/pipe_drivers/20.0.0/python/lsst/pipe/drivers/constructCalibs.py", line 365, in __call__
result = task.runDataRef(**args)
File "/opt/lsst/software/stack/stack/miniconda3-py37_4.8.2-1a1d771/Linux64/pipe_drivers/20.0.0/python/lsst/pipe/drivers/constructCalibs.py", line 457, in runDataRef
(self.calibName, dataId, e))
RuntimeError: Unable to determine output filename "dark_filename" from {'ccd': 1, 'filter': 'NONE', 'calibDate': '2020-10-11'}: No unique lookup for {'taiObs'} from DataId(initialdata={'ccd': 1, 'filter': 'NONE', 'calibDate': '2020-10-11'}, tag=set()): 0 matches
I think that the “taiObs
” refers to this taiObs
in yaml configuration in the ObsMapper
policy file
dark:
columns:
- ccd
- taiObs
taiObs
is a column in both the raw
and raw_visit
tables of registry and it’s populated with a date.
So, I don’t know what could be wrong, why the stack is not picking taiObs
from registry or somewhere else.
Anyone can give me a hand on this one? Much appreciated.
Thanks.
M.