lsst.pipe.tasks
g2c8cee2ce7+a177a69160
Toggle main menu visibility
Loading...
Searching...
No Matches
python
lsst
pipe
tasks
drpDiaCalculationPipe.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
"""Pipeline for computing DiaObject summary/light curve values.
23
"""
24
25
__all__ = [
"DrpDiaCalculationPipeTask"
,
26
"DrpDiaCalculationPipeConfig"
,
27
"DrpDiaCalculationPipeConnections"
]
28
29
import
pandas
as
pd
30
31
from
lsst.meas.base
import
DiaObjectCalculationTask
32
import
lsst.pex.config
as
pexConfig
33
import
lsst.pipe.base
as
pipeBase
34
35
36
class
DrpDiaCalculationPipeConnections
(pipeBase.PipelineTaskConnections,
37
dimensions=(
"tract"
,
"patch"
,
"skymap"
),
38
defaultTemplates={
"coaddName"
:
"deep"
,
39
"fakesType"
:
""
}):
40
assocDiaSourceTable = pipeBase.connectionTypes.Input(
41
doc=
"Catalog of DiaSources covering the patch and associated with a "
42
"DiaObject."
,
43
name=
"{fakesType}{coaddName}Diff_assocDiaSrcTable"
,
44
storageClass=
"DataFrame"
,
45
dimensions=(
"tract"
,
"patch"
),
46
)
47
diaObjectTable = pipeBase.connectionTypes.Input(
48
doc=
"Catalog of DiaObjects created from spatially associating "
49
"DiaSources."
,
50
name=
"{fakesType}{coaddName}Diff_diaObjTable"
,
51
storageClass=
"DataFrame"
,
52
dimensions=(
"tract"
,
"patch"
),
53
)
54
fullDiaObjectTable = pipeBase.connectionTypes.Output(
55
doc=
"Catalog of DiaObjects created from spatially associating "
56
"DiaSources."
,
57
name=
"{fakesType}{coaddName}Diff_fullDiaObjTable"
,
58
storageClass=
"DataFrame"
,
59
dimensions=(
"tract"
,
"patch"
),
60
)
61
62
63
class
DrpDiaCalculationPipeConfig(
64
pipeBase.PipelineTaskConfig,
65
pipelineConnections=DrpDiaCalculationPipeConnections):
66
filterNames = pexConfig.ListField(
67
dtype=str,
68
default=[
'u'
,
'g'
,
'r'
,
'i'
,
'z'
,
'y'
],
69
doc=
"List of filters to attempt to calculate DiaObject summary "
70
"values."
71
)
72
diaCalculation = pexConfig.ConfigurableField(
73
target=DiaObjectCalculationTask,
74
doc=
"Task to compute summary statistics for DiaObjects."
,
75
)
76
77
def
setDefaults(self):
78
self.diaCalculation.plugins = [
"ap_meanPosition"
,
79
"ap_diaObjectFlag"
,
80
"ap_meanFlux"
,
81
"ap_sigmaFlux"
,
82
"ap_minMaxFlux"
,
83
"ap_maxSlopeFlux"
,
84
"ap_meanErrFlux"
,
85
"ap_meanTotFlux"
]
86
87
88
class
DrpDiaCalculationPipeTask(pipeBase.PipelineTask):
89
"""Driver pipeline for loading DiaSource catalogs in a patch/tract
90
region and associating them.
91
"""
92
ConfigClass = DrpDiaCalculationPipeConfig
93
_DefaultName =
"drpDiaCalculation"
94
95
def
__init__(self, **kwargs):
96
super().__init__(**kwargs)
97
self.makeSubtask(
"diaCalculation"
)
98
99
def
run(self, assocDiaSourceTable, diaObjectTable):
100
"""Compute summary statistics over the input set of DiaSources and
101
store summary statistics into the associated DiaObjects.
102
103
Parameters
104
----------
105
assocDiaSourceTable : `pandas.DataFrame`
106
Set of DiaSources spatially associated into the DiaObjects in
107
``diaObjectTable``.
108
diaObjectTable : `pandas.DataFrame`
109
DiaObjects created from associating the sources in
110
``assocDiaSourceTable``. All ids in the catalog must have a
111
corresponding DiaSource in the input catalog.
112
113
Returns
114
-------
115
results : `lsst.pipe.base.Struct`
116
Struct containing
117
118
``fullDiaObjectTable``
119
DiaObjects with computed summary statistics based on their
120
associated DiaSource light curves. (`pandas.DataFrame`).
121
"""
122
# Return empty dataFrame if no DiaObjects in this patch.
123
if
len(diaObjectTable) <= 0
or
len(assocDiaSourceTable) <= 0:
124
return
pipeBase.Struct(fullDiaObjectTable=pd.DataFrame())
125
result = self.diaCalculation.run(
126
diaObjectTable,
127
assocDiaSourceTable,
128
diaObjectTable.index.to_numpy(),
129
self.config.filterNames)
130
return
pipeBase.Struct(fullDiaObjectTable=result.updatedDiaObjects)
lsst.pipe.tasks.drpDiaCalculationPipe.DrpDiaCalculationPipeConnections
Definition
drpDiaCalculationPipe.py:38
lsst::meas::base
lsst::pex::config
Generated on
for lsst.pipe.tasks by
1.17.0