Hide keyboard shortcuts

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 

3 

4from lsst.faro.base.CatalogMeasurementBase import (CatalogMeasurementBaseTaskConfig, 

5 CatalogMeasurementBaseTask) 

6 

7__all__ = ("PatchMeasurementTaskConnections", "PatchMeasurementTaskConfig", "PatchMeasurementTask") 

8 

9 

10class PatchMeasurementTaskConnections(MetricConnections, 

11 dimensions=("tract", "patch", "skymap", 

12 "band")): 

13 

14 cat = pipeBase.connectionTypes.Input(doc="Object catalog.", 

15 dimensions=("tract", "patch", "skymap", 

16 "band"), 

17 storageClass="SourceCatalog", 

18 name="deepCoadd_forced_src") 

19 

20 measurement = pipeBase.connectionTypes.Output(doc="Per-patch measurement.", 

21 dimensions=("tract", "patch", "skymap", 

22 "band"), 

23 storageClass="MetricValue", 

24 name="metricvalue_{package}_{metric}") 

25 

26 

27class PatchMeasurementTaskConfig(CatalogMeasurementBaseTaskConfig, 

28 pipelineConnections=PatchMeasurementTaskConnections): 

29 pass 

30 

31 

32class PatchMeasurementTask(CatalogMeasurementBaseTask): 

33 

34 ConfigClass = PatchMeasurementTaskConfig 

35 _DefaultName = "patchMeasurementTask" 

36 

37 def run(self, cat, vIds): 

38 return self.measure.run(cat, self.config.connections.metric, vIds) 

39 

40 def runQuantum(self, butlerQC, inputRefs, outputRefs): 

41 inputs = butlerQC.get(inputRefs) 

42 inputs['vIds'] = inputRefs.cat.dataId 

43 outputs = self.run(**inputs) 

44 if outputs.measurement is not None: 

45 butlerQC.put(outputs, outputRefs) 

46 else: 

47 self.log.debug("Skipping measurement of {!r} on {} " 

48 "as not applicable.", self, inputRefs)