LSSTApplications
19.0.0,19.0.0+1,19.0.0+10,19.0.0+13,19.0.0+3,19.0.0+5,19.0.0+9,tickets.DM-22703-ga158cbef15,w.2019.51
LSSTDataManagementBasePackage
stack
Linux64
pipe_tasks
19.0.0+3
python
lsst
pipe
tasks
ingestDefects.py
Go to the documentation of this file.
1
from
.ingestCalibs
import
IngestCalibsTask, IngestCalibsConfig
2
from
.read_defects
import
read_all_defects
3
from
lsst.pipe.base
import
InputOnlyArgumentParser
4
5
import
tempfile
6
import
shutil
7
import
os
8
9
10
class
IngestDefectsArgumentParser
(
InputOnlyArgumentParser
):
11
"""Argument parser to support ingesting calibration images into the repository"""
12
13
def
__init__
(self, *args, **kwargs):
14
InputOnlyArgumentParser.__init__(self, *args, **kwargs)
15
self.add_argument(
"-n"
,
"--dry-run"
, dest=
"dryrun"
, action=
"store_true"
,
16
default=
False
, help=
"Don't perform any action?"
)
17
self.add_argument(
"--create"
, action=
"store_true"
, help=
"Create new registry?"
)
18
self.add_argument(
"--ignore-ingested"
, dest=
"ignoreIngested"
, action=
"store_true"
,
19
help=
"Don't register files that have already been registered"
)
20
self.add_argument(
"root"
, help=
"Root directory to scan for defects."
)
21
22
23
class
IngestDefectsConfig
(
IngestCalibsConfig
):
24
def
setDefaults
(self):
25
if
"filter"
in
self.
register
.columns:
26
self.
parse
.defaults[
"filter"
] =
"NONE"
27
28
29
class
IngestDefectsTask
(
IngestCalibsTask
):
30
"""Task that generates registry for calibration images"""
31
ArgumentParser = IngestDefectsArgumentParser
32
_DefaultName =
"ingestDefects"
33
ConfigClass = IngestDefectsConfig
34
35
def
run
(self, args):
36
"""Ingest all defect files and add them to the registry"""
37
38
try
:
39
camera = args.butler.get(
'camera'
)
40
temp_dir = tempfile.mkdtemp()
41
defects =
read_all_defects
(args.root, camera)
42
file_names = []
43
for
d
in
defects:
44
for
s
in
defects[d]:
45
file_name = f
'defects_{d}_{s.isoformat()}.fits'
46
full_file_name = os.path.join(temp_dir, file_name)
47
self.
log
.
info
(
'%i defects written for sensor: %s and calibDate: %s'
%
48
(len(defects[d][s]), d, s.isoformat()))
49
defects[d][s].writeFits(full_file_name)
50
file_names.append(full_file_name)
51
args.files = file_names
52
args.mode =
'move'
53
args.validity =
None
# Validity range is determined from the files
54
IngestCalibsTask.run(self, args)
55
finally
:
56
shutil.rmtree(temp_dir)
lsst.pipe.tasks.ingestDefects.IngestDefectsTask
Definition:
ingestDefects.py:29
lsst.pipe.tasks.ingestDefects.IngestDefectsTask.run
def run(self, args)
Definition:
ingestDefects.py:35
lsst.pipe.tasks.ingestCalibs.IngestCalibsConfig.register
register
Definition:
ingestCalibs.py:205
lsst.pipe.tasks.read_defects.read_all_defects
def read_all_defects(root, camera)
Definition:
read_defects.py:78
lsst.pipe.base
Definition:
__init__.py:1
lsst.pipe.tasks.ingestDefects.IngestDefectsConfig
Definition:
ingestDefects.py:23
lsst.pipe.tasks.ingestDefects.IngestDefectsArgumentParser.__init__
def __init__(self, args, kwargs)
Definition:
ingestDefects.py:13
lsst.pipe.base.argumentParser.InputOnlyArgumentParser
Definition:
argumentParser.py:914
lsst.pipe.tasks.ingestCalibs.IngestCalibsConfig
Definition:
ingestCalibs.py:202
lsst.pipe.tasks.ingestDefects.IngestDefectsArgumentParser
Definition:
ingestDefects.py:10
lsst.pipe.tasks.ingestCalibs.IngestCalibsConfig.parse
parse
Definition:
ingestCalibs.py:204
lsst.pipe.base.task.Task.log
log
Definition:
task.py:148
lsst.pipe.tasks.ingestCalibs.IngestCalibsTask
Definition:
ingestCalibs.py:210
lsst::log.log.logContinued.info
def info(fmt, args)
Definition:
logContinued.py:190
lsst.pipe.tasks.ingestDefects.IngestDefectsConfig.setDefaults
def setDefaults(self)
Definition:
ingestDefects.py:24
Generated on Mon Dec 23 2019 19:03:43 for LSSTApplications by
1.8.13