23 """Pipeline for computing DiaObject summary/light curve values.
26 __all__ = [
"DrpDiaCalculationPipeTask",
27 "DrpDiaCalculationPipeConfig",
28 "DrpDiaCalculationPipeConnections"]
38 dimensions=(
"tract",
"patch",
"skymap"),
39 defaultTemplates={
"coaddName":
"deep",
41 assocDiaSourceTable = pipeBase.connectionTypes.Input(
42 doc=
"Catalog of DiaSources covering the patch and associated with a "
44 name=
"{fakesType}{coaddName}Diff_assocDiaSrcTable",
45 storageClass=
"DataFrame",
46 dimensions=(
"tract",
"patch"),
48 diaObjectTable = pipeBase.connectionTypes.Input(
49 doc=
"Catalog of DiaObjects created from spatially associating "
51 name=
"{fakesType}{coaddName}Diff_diaObjTable",
52 storageClass=
"DataFrame",
53 dimensions=(
"tract",
"patch"),
55 fullDiaObjectTable = pipeBase.connectionTypes.Output(
56 doc=
"Catalog of DiaObjects created from spatially associating "
58 name=
"{fakesType}{coaddName}Diff_fullDiaObjTable",
59 storageClass=
"DataFrame",
60 dimensions=(
"tract",
"patch"),
64 class DrpDiaCalculationPipeConfig(
65 pipeBase.PipelineTaskConfig,
66 pipelineConnections=DrpDiaCalculationPipeConnections):
67 filterNames = pexConfig.ListField(
69 default=[
'u',
'g',
'r',
'i',
'z',
'y'],
70 doc=
"List of filters to attempt to calculate DiaObject summary "
73 diaCalculation = pexConfig.ConfigurableField(
74 target=DiaObjectCalculationTask,
75 doc=
"Task to compute summary statistics for DiaObjects.",
78 def setDefaults(self):
79 self.diaCalculation.plugins = [
"ap_meanPosition",
97 class DrpDiaCalculationPipeTask(pipeBase.PipelineTask):
98 """Driver pipeline for loading DiaSource catalogs in a patch/tract
99 region and associating them.
101 ConfigClass = DrpDiaCalculationPipeConfig
102 _DefaultName =
"drpDiaCalculation"
104 def __init__(self, **kwargs):
105 super().__init__(**kwargs)
106 self.makeSubtask(
"diaCalculation")
108 def run(self, assocDiaSourceTable, diaObjectTable):
109 """Compute summary statistics over the input set of DiaSources and
110 store summary statistics into the associated DiaObjects.
114 assocDiaSourceTable : `pandas.DataFrame`
115 Set of DiaSources spatially associated into the DiaObjects in
117 diaObjectTable : `pandas.DataFrame`
118 DiaObjects created from associating the sources in
119 ``assocDiaSourceTable``. All ids in the catalog must have a
120 corresponding DiaSource in the input catalog.
124 results : `lsst.pipe.base.Struct`
127 ``fullDiaObjectTable``
128 DiaObjects with computed summary statistics based on their
129 associated DiaSource light curves. (`pandas.DataFrame`).
132 if len(diaObjectTable) <= 0
or len(assocDiaSourceTable) <= 0:
133 return pipeBase.Struct(fullDiaObjectTable=pd.DataFrame())
134 result = self.diaCalculation.run(
137 diaObjectTable[
"diaObjectId"].to_numpy(),
138 self.config.filterNames)
139 return pipeBase.Struct(fullDiaObjectTable=result.updatedDiaObjects)