LSSTApplications  20.0.0
LSSTDataManagementBasePackage
ingestCuratedCalibs.py
Go to the documentation of this file.
1 from .ingestCalibs import IngestCalibsTask, IngestCalibsConfig
2 from .read_curated_calibs import read_all
3 from lsst.pipe.base import InputOnlyArgumentParser
4 
5 import tempfile
6 import shutil
7 import os
8 
9 
11  """Argument parser to support ingesting human curated calibration
12  products in a standardized text file format into the repository"""
13 
14  def __init__(self, *args, **kwargs):
15  InputOnlyArgumentParser.__init__(self, *args, **kwargs)
16  self.add_argument("-n", "--dry-run", dest="dryrun", action="store_true",
17  default=False, help="Don't perform any action?")
18  self.add_argument("--create", action="store_true", help="Create new registry?")
19  self.add_argument("--ignore-ingested", dest="ignoreIngested", action="store_true",
20  help="Don't register files that have already been registered")
21  self.add_argument("root", help="Root directory to scan for calibs.")
22 
23 
25  def setDefaults(self):
26  if "filter" in self.register.columns:
27  self.parse.defaults["filter"] = "NONE"
28 
29 
31  """Task that generates registry for human curated calibration products
32  in a standardized text file format"""
33  ArgumentParser = IngestCuratedCalibsArgumentParser
34  _DefaultName = "ingestCuratedCalibs"
35  ConfigClass = IngestCuratedCalibsConfig
36 
37  def run(self, args):
38  """Ingest all defect files and add them to the registry"""
39 
40  try:
41  camera = args.butler.get('camera')
42  temp_dir = tempfile.mkdtemp()
43  calibs, calib_type = read_all(args.root, camera)
44  file_names = []
45  for d in calibs:
46  for s in calibs[d]:
47  file_name = f'{calib_type}_{d}_{s.isoformat()}.fits'
48  full_file_name = os.path.join(temp_dir, file_name)
49  self.log.info('%s written for sensor: %s and calibDate: %s' %
50  (calib_type, d, s.isoformat()))
51  calibs[d][s].writeFits(full_file_name)
52  file_names.append(full_file_name)
53  args.files = file_names
54  args.mode = 'move'
55  args.validity = None # Validity range is determined from the files
56  IngestCalibsTask.run(self, args)
57  finally:
58  shutil.rmtree(temp_dir)
lsst.pipe.tasks.ingestCalibs.IngestCalibsTask
Definition: ingestCalibs.py:214
lsst.pipe.tasks.ingestCalibs.IngestCalibsConfig.register
register
Definition: ingestCalibs.py:209
lsst::log.log.logContinued.info
def info(fmt, *args)
Definition: logContinued.py:198
lsst.pipe.base.argumentParser.InputOnlyArgumentParser
Definition: argumentParser.py:914
lsst.pipe.tasks.ingestCuratedCalibs.IngestCuratedCalibsArgumentParser
Definition: ingestCuratedCalibs.py:10
lsst.pipe.tasks.ingestCuratedCalibs.IngestCuratedCalibsConfig.setDefaults
def setDefaults(self)
Definition: ingestCuratedCalibs.py:25
lsst.pipe.tasks.ingestCalibs.IngestCalibsConfig.parse
parse
Definition: ingestCalibs.py:208
lsst.pipe.tasks.ingestCuratedCalibs.IngestCuratedCalibsArgumentParser.__init__
def __init__(self, *args, **kwargs)
Definition: ingestCuratedCalibs.py:14
lsst.pipe.tasks.ingestCuratedCalibs.IngestCuratedCalibsTask.run
def run(self, args)
Definition: ingestCuratedCalibs.py:37
lsst.pipe.base.task.Task.log
log
Definition: task.py:148
lsst.pipe.tasks.ingestCuratedCalibs.IngestCuratedCalibsTask
Definition: ingestCuratedCalibs.py:30
lsst.pipe.tasks.read_curated_calibs.read_all
def read_all(root, camera)
Definition: read_curated_calibs.py:92
lsst.pipe.tasks.ingestCalibs.IngestCalibsConfig
Definition: ingestCalibs.py:206
lsst.pipe.tasks.ingestCuratedCalibs.IngestCuratedCalibsConfig
Definition: ingestCuratedCalibs.py:24
lsst.pipe.base
Definition: __init__.py:1