22"""Pipeline for computing DiaObject summary/light curve values.
25__all__ = [
"DrpDiaCalculationPipeTask",
26 "DrpDiaCalculationPipeConfig",
27 "DrpDiaCalculationPipeConnections"]
37 dimensions=(
"tract",
"patch",
"skymap"),
38 defaultTemplates={
"coaddName":
"deep",
40 assocDiaSourceTable = pipeBase.connectionTypes.Input(
41 doc=
"Catalog of DiaSources covering the patch and associated with a "
43 name=
"{fakesType}{coaddName}Diff_assocDiaSrcTable",
44 storageClass=
"DataFrame",
45 dimensions=(
"tract",
"patch"),
47 diaObjectTable = pipeBase.connectionTypes.Input(
48 doc=
"Catalog of DiaObjects created from spatially associating "
50 name=
"{fakesType}{coaddName}Diff_diaObjTable",
51 storageClass=
"DataFrame",
52 dimensions=(
"tract",
"patch"),
54 fullDiaObjectTable = pipeBase.connectionTypes.Output(
55 doc=
"Catalog of DiaObjects created from spatially associating "
57 name=
"{fakesType}{coaddName}Diff_fullDiaObjTable",
58 storageClass=
"DataFrame",
59 dimensions=(
"tract",
"patch"),
63class DrpDiaCalculationPipeConfig(
64 pipeBase.PipelineTaskConfig,
65 pipelineConnections=DrpDiaCalculationPipeConnections):
66 filterNames = pexConfig.ListField(
68 default=[
'u',
'g',
'r',
'i',
'z',
'y'],
69 doc=
"List of filters to attempt to calculate DiaObject summary "
72 diaCalculation = pexConfig.ConfigurableField(
73 target=DiaObjectCalculationTask,
74 doc=
"Task to compute summary statistics for DiaObjects.",
78 self.diaCalculation.plugins = [
"ap_meanPosition",
95class DrpDiaCalculationPipeTask(pipeBase.PipelineTask):
96 """Driver pipeline for loading DiaSource catalogs in a patch/tract
97 region and associating them.
99 ConfigClass = DrpDiaCalculationPipeConfig
100 _DefaultName = "drpDiaCalculation"
102 def __init__(self, **kwargs):
103 super().__init__(**kwargs)
104 self.makeSubtask(
"diaCalculation")
106 def run(self, assocDiaSourceTable, diaObjectTable):
107 """Compute summary statistics over the input set of DiaSources and
108 store summary statistics into the associated DiaObjects.
112 assocDiaSourceTable : `pandas.DataFrame`
113 Set of DiaSources spatially associated into the DiaObjects in
115 diaObjectTable : `pandas.DataFrame`
116 DiaObjects created
from associating the sources
in
117 ``assocDiaSourceTable``. All ids
in the catalog must have a
118 corresponding DiaSource
in the input catalog.
122 results : `lsst.pipe.base.Struct`
125 ``fullDiaObjectTable``
126 DiaObjects
with computed summary statistics based on their
127 associated DiaSource light curves. (`pandas.DataFrame`).
130 if len(diaObjectTable) <= 0
or len(assocDiaSourceTable) <= 0:
131 return pipeBase.Struct(fullDiaObjectTable=pd.DataFrame())
132 result = self.diaCalculation.run(
135 diaObjectTable.index.to_numpy(),
136 self.config.filterNames)
137 return pipeBase.Struct(fullDiaObjectTable=result.updatedDiaObjects)