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, CatalogMeasurementBaseTask 

5 

6__all__ = ("TractMeasurementTaskConnections", "TractMeasurementTaskConfig", 

7 "TractMeasurementTask", 

8 "TractMultiBandMeasurementTaskConnections", "TractMultiBandMeasurementTaskConfig", 

9 "TractMultiBandMeasurementTask") 

10 

11 

12class TractMeasurementTaskConnections(MetricConnections, 

13 dimensions=("tract", "skymap", 

14 "band"), 

15 defaultTemplates={"coaddName": "deepCoadd", 

16 "photoCalibName": "deepCoadd_calexp.photoCalib"}): 

17 

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

19 dimensions=("tract", "skymap", 

20 "band"), 

21 storageClass="SourceCatalog", 

22 name="deepCoadd_forced_src") 

23 

24 photo_calibs = pipeBase.connectionTypes.Input(doc="Photometric calibration object.", 

25 dimensions=("tract", "skymap", 

26 "band"), 

27 storageClass="PhotoCalib", 

28 name="{photoCalibName}", 

29 multiple=True) 

30 

31 measurement = pipeBase.connectionTypes.Output(doc="Per-tract measurement.", 

32 dimensions=("tract", "skymap", 

33 "band"), 

34 storageClass="MetricValue", 

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

36 

37 

38class TractMeasurementTaskConfig(CatalogMeasurementBaseTaskConfig, 

39 pipelineConnections=TractMeasurementTaskConnections): 

40 pass 

41 

42 

43class TractMeasurementTask(CatalogMeasurementBaseTask): 

44 

45 ConfigClass = TractMeasurementTaskConfig 

46 _DefaultName = "tractMeasurementTask" 

47 

48 def run(self, cat, photo_calibs, vIds): 

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

50 

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

52 inputs = butlerQC.get(inputRefs) 

53 inputs['vIds'] = [butlerQC.registry.expandDataId(el.dataId) for el in inputRefs.cat] 

54 outputs = self.run(**inputs) 

55 if outputs.measurement is not None: 

56 butlerQC.put(outputs, outputRefs) 

57 else: 

58 self.log.debugf("Skipping measurement of {!r} on {} " 

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

60 

61 

62class TractMultiBandMeasurementTaskConnections(TractMeasurementTaskConnections, 

63 dimensions=("tract", "skymap"), 

64 defaultTemplates={"coaddName": "deepCoadd", "photoCalibName": 

65 "deepCoadd_calexp.photoCalib"}): 

66 

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

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

69 "band"), 

70 storageClass="SourceCatalog", 

71 name="deepCoadd_forced_src", 

72 multiple=True) 

73 

74 photo_calibs = pipeBase.connectionTypes.Input(doc="Photometric calibration object.", 

75 dimensions=("tract", "skymap", 

76 "patch", "band"), 

77 storageClass="PhotoCalib", 

78 name="{photoCalibName}", 

79 multiple=True) 

80 

81 measurement = pipeBase.connectionTypes.Output(doc="Per-tract measurement.", 

82 dimensions=("tract", "skymap"), 

83 storageClass="MetricValue", 

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

85 

86 

87class TractMultiBandMeasurementTaskConfig(CatalogMeasurementBaseTaskConfig, 

88 pipelineConnections=TractMultiBandMeasurementTaskConnections): 

89 pass 

90 

91 

92class TractMultiBandMeasurementTask(TractMeasurementTask): 

93 

94 ConfigClass = TractMultiBandMeasurementTaskConfig 

95 _DefaultName = "tractMultiBandMeasurementTask"