Coverage for python/lsst/faro/measurement/TractMeasurement.py : 69%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1import lsst.pipe.base as pipeBase
2from lsst.verify.tasks import MetricConnections
4from lsst.faro.base.CatalogMeasurementBase import CatalogMeasurementBaseTaskConfig, CatalogMeasurementBaseTask
6__all__ = ("TractMeasurementTaskConnections", "TractMeasurementTaskConfig",
7 "TractMeasurementTask",
8 "TractMultiBandMeasurementTaskConnections", "TractMultiBandMeasurementTaskConfig",
9 "TractMultiBandMeasurementTask")
12class TractMeasurementTaskConnections(MetricConnections,
13 dimensions=("tract", "skymap",
14 "band"),
15 defaultTemplates={"coaddName": "deepCoadd",
16 "photoCalibName": "deepCoadd_calexp.photoCalib",
17 "wcsName": "deepCoadd_calexp.wcs"}):
19 catalogs = pipeBase.connectionTypes.Input(doc="Object catalog.",
20 dimensions=("tract", "patch",
21 "skymap", "band"),
22 storageClass="SourceCatalog",
23 name="deepCoadd_forced_src",
24 multiple=True)
26 photoCalibs = pipeBase.connectionTypes.Input(doc="Photometric calibration object.",
27 dimensions=("tract", "patch",
28 "skymap", "band"),
29 storageClass="PhotoCalib",
30 name="{photoCalibName}",
31 multiple=True)
33 astromCalibs = pipeBase.connectionTypes.Input(doc="WCS for the catalog.",
34 dimensions=("tract", "patch",
35 "skymap", "band"),
36 storageClass="Wcs",
37 name="{wcsName}",
38 multiple=True)
40 measurement = pipeBase.connectionTypes.Output(doc="Per-tract measurement.",
41 dimensions=("tract", "skymap",
42 "band"),
43 storageClass="MetricValue",
44 name="metricvalue_{package}_{metric}")
47class TractMeasurementTaskConfig(CatalogMeasurementBaseTaskConfig,
48 pipelineConnections=TractMeasurementTaskConnections):
49 pass
52class TractMeasurementTask(CatalogMeasurementBaseTask):
54 ConfigClass = TractMeasurementTaskConfig
55 _DefaultName = "tractMeasurementTask"
57 def run(self, catalogs, photoCalibs, astromCalibs, dataIds):
58 return self.measure.run(self.config.connections.metric, catalogs, photoCalibs, astromCalibs, dataIds)
60 def runQuantum(self, butlerQC, inputRefs, outputRefs):
61 inputs = butlerQC.get(inputRefs)
62 inputs['dataIds'] = [butlerQC.registry.expandDataId(cat.dataId) for cat in inputRefs.catalogs]
63 outputs = self.run(**inputs)
64 if outputs.measurement is not None:
65 butlerQC.put(outputs, outputRefs)
66 else:
67 self.log.debugf("Skipping measurement of {!r} on {} "
68 "as not applicable.", self, inputRefs)
71class TractMultiBandMeasurementTaskConnections(TractMeasurementTaskConnections,
72 dimensions=("tract", "skymap"),
73 defaultTemplates={"coaddName": "deepCoadd", "photoCalibName":
74 "deepCoadd_calexp.photoCalib"}):
76 cat = pipeBase.connectionTypes.Input(doc="Object catalog.",
77 dimensions=("tract", "skymap", "patch",
78 "band"),
79 storageClass="SourceCatalog",
80 name="deepCoadd_forced_src",
81 multiple=True)
83 photoCalibs = pipeBase.connectionTypes.Input(doc="Photometric calibration object.",
84 dimensions=("tract", "skymap",
85 "patch", "band"),
86 storageClass="PhotoCalib",
87 name="{photoCalibName}",
88 multiple=True)
90 measurement = pipeBase.connectionTypes.Output(doc="Per-tract measurement.",
91 dimensions=("tract", "skymap"),
92 storageClass="MetricValue",
93 name="metricvalue_{package}_{metric}")
96class TractMultiBandMeasurementTaskConfig(CatalogMeasurementBaseTaskConfig,
97 pipelineConnections=TractMultiBandMeasurementTaskConnections):
98 pass
101class TractMultiBandMeasurementTask(TractMeasurementTask):
103 ConfigClass = TractMultiBandMeasurementTaskConfig
104 _DefaultName = "tractMultiBandMeasurementTask"