Coverage for python/lsst/faro/measurement/VisitMeasurement.py : 59%

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__ = ("VisitMeasurementTaskConfig", "VisitMeasurementTask")
9class VisitMeasurementTaskConnections(MetricConnections,
10 dimensions=("instrument", "visit", "band"),
11 defaultTemplates={"photoCalibName": "calexp.photoCalib",
12 "wcsName": "calexp.wcs"}):
14 catalogs = pipeBase.connectionTypes.Input(doc="Source catalogs.",
15 dimensions=("instrument", "visit",
16 "detector", "band"),
17 storageClass="SourceCatalog",
18 name="src",
19 multiple=True)
21 photoCalibs = pipeBase.connectionTypes.Input(doc="Photometric calibration object.",
22 dimensions=("instrument", "visit",
23 "detector", "band"),
24 storageClass="PhotoCalib",
25 name="{photoCalibName}",
26 multiple=True)
28 astromCalibs = pipeBase.connectionTypes.Input(doc="WCS for the catalog.",
29 dimensions=("instrument", "visit",
30 "detector", "band"),
31 storageClass="Wcs",
32 name="{wcsName}",
33 multiple=True)
35 measurement = pipeBase.connectionTypes.Output(doc="Per-visit measurement.",
36 dimensions=("instrument", "visit", "band"),
37 storageClass="MetricValue",
38 name="metricvalue_{package}_{metric}")
41class VisitMeasurementTaskConfig(CatalogMeasurementBaseTaskConfig,
42 pipelineConnections=VisitMeasurementTaskConnections):
43 pass
46class VisitMeasurementTask(CatalogMeasurementBaseTask):
47 ConfigClass = VisitMeasurementTaskConfig
48 _DefaultName = "visitMeasurementTask"
50 def run(self, catalogs, photoCalibs, astromCalibs, dataIds):
51 return self.measure.run(self.config.connections.metric, catalogs, photoCalibs, astromCalibs, dataIds)
53 def runQuantum(self, butlerQC, inputRefs, outputRefs):
54 inputs = butlerQC.get(inputRefs)
55 inputs['dataIds'] = [butlerQC.registry.expandDataId(c.dataId) for c in inputRefs.catalogs]
56 outputs = self.run(**inputs)
57 if outputs.measurement is not None:
58 butlerQC.put(outputs, outputRefs)
59 else:
60 self.log.debugf("Skipping measurement of {!r} on {} "
61 "as not applicable.", self, inputRefs)