lsst.pipe.tasks
g2c8cee2ce7+363d2db7ea
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
pipe
tasks
getRegionTimeFromVisit.py
Go to the documentation of this file.
1
# This file is part of pipe_tasks.
2
#
3
# Developed for the LSST Data Management System.
4
# This product includes software developed by the LSST Project
5
# (https://www.lsst.org).
6
# See the COPYRIGHT file at the top-level directory of this distribution
7
# for details of code ownership.
8
#
9
# This program is free software: you can redistribute it and/or modify
10
# it under the terms of the GNU General Public License as published by
11
# the Free Software Foundation, either version 3 of the License, or
12
# (at your option) any later version.
13
#
14
# This program is distributed in the hope that it will be useful,
15
# but WITHOUT ANY WARRANTY; without even the implied warranty of
16
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
# GNU General Public License for more details.
18
#
19
# You should have received a copy of the GNU General Public License
20
# along with this program. If not, see <https://www.gnu.org/licenses/>.
21
22
23
__all__ = [
"GetRegionTimeFromVisitTask"
,
"GetRegionTimeFromVisitConfig"
]
24
25
26
import
lsst.pipe.base
as
pipeBase
27
from
lsst.pipe.base.utils
import
RegionTimeInfo
28
from
lsst.utils.timer
import
timeMethod
29
30
31
class
GetRegionTimeFromVisitConnections
(pipeBase.PipelineTaskConnections,
32
dimensions={
"instrument"
,
"group"
,
"detector"
},
33
defaultTemplates={
"coaddName"
:
"goodSeeing"
,
"fakesType"
:
""
}):
34
35
dummy_visit = pipeBase.connectionTypes.Input(
36
doc=
"Placeholder connection to provide visit-detector records and "
37
"constrain data IDs to images we're processing."
,
38
name=
"initial_stars_footprints_detector"
,
39
storageClass=
"SourceCatalog"
,
40
dimensions=[
"instrument"
,
"visit"
,
"detector"
],
41
)
42
dummy_exposure = pipeBase.connectionTypes.Output(
43
doc=
"Placeholder connection to guarantee visit-exposure-group mapping. "
44
"This output is never produced and need not be registered."
,
45
name=
"getRegionTimeFromVisit_dummy2"
,
# Unique because it gets registered anyway.
46
storageClass=
"int"
,
47
dimensions={
"instrument"
,
"exposure"
,
"detector"
},
48
multiple=
True
,
49
)
50
output = pipeBase.connectionTypes.Output(
51
doc=
"The region and time associated with this group's visit."
,
52
name=
"regionTimeInfo"
,
53
storageClass=
"RegionTimeInfo"
,
54
dimensions={
"instrument"
,
"group"
,
"detector"
},
55
)
56
57
58
class
GetRegionTimeFromVisitConfig(pipeBase.PipelineTaskConfig,
59
pipelineConnections=GetRegionTimeFromVisitConnections):
60
pass
61
62
63
class
GetRegionTimeFromVisitTask(pipeBase.PipelineTask):
64
"""A converter that reads metadata from visit-dimension records and writes
65
it to a Butler dataset.
66
"""
67
_DefaultName =
"getRegionTimeFromVisit"
68
ConfigClass = GetRegionTimeFromVisitConfig
69
70
@timeMethod
71
def
runQuantum(self, butlerQC, inputRefs, outputRefs):
72
"""Convert the passed dataset refs to persistable metadata.
73
"""
74
# Input datasetRefs guaranteed to be expanded.
75
times = inputRefs.dummy_visit.dataId.records[
"visit"
].timespan
76
region = inputRefs.dummy_visit.dataId.records[
"visit_detector_region"
].region
77
self.log.info(
"Associated visit for this group is %d"
, inputRefs.dummy_visit.dataId[
"visit"
])
78
self.metadata[
"visit"
] = inputRefs.dummy_visit.dataId[
"visit"
]
79
outputs = pipeBase.Struct(
80
output=RegionTimeInfo(region=region, timespan=times),
81
dummy_exposure=
None
,
82
)
83
butlerQC.put(outputs, outputRefs)
84
85
# All work is done in runQuantum
86
run =
None
lsst.pipe.tasks.getRegionTimeFromVisit.GetRegionTimeFromVisitConnections
Definition
getRegionTimeFromVisit.py:33
Generated on
for lsst.pipe.tasks by
1.17.0