33 __all__ = [
"DetectDcrCoaddSources",
"DeblendDcrCoaddSourcesTask",
"MergeDcrDetectionsTask",
34 "MeasureMergedDcrCoaddSourcesTask",
"MergeDcrMeasurementsTask"]
36 """Measure sources and their sub-filter spectrum from a DCR model.""" 40 """Task runner for the MergeSourcesTask. 42 Required because the run method requires a list of dataRefs 43 rather than a single dataRef. 48 """Build a hierarchical dictionary of patch references 50 The filter references within the list will have different subfilters. 57 Key word arguments (unused) 62 A reference dictionary of the form {patch: {tract: {filter: {subfilter: dataRef}}}} 67 Thrown when multiple references are provided for the same combination of 68 tract, patch, filter, and subfilter 71 for ref
in parsedCmd.id.refList:
72 tract = ref.dataId[
"tract"]
73 patch = ref.dataId[
"patch"]
74 filter = ref.dataId[
"filter"]
75 subfilter = ref.dataId[
"subfilter"]
76 if tract
not in refDict:
78 if patch
not in refDict[tract]:
79 refDict[tract][patch] = {}
80 if filter
not in refDict[tract][patch]:
81 refDict[tract][patch][filter] = {}
82 if subfilter
in refDict[tract][patch][filter]:
83 raise RuntimeError(
"Multiple versions of %s" % (ref.dataId,))
84 refDict[tract][patch][filter][subfilter] = ref
89 """Provide a list of patch references for each patch, tract, filter combo. 96 Keyword arguments passed to the task 101 List of tuples, where each tuple is a (dataRef, kwargs) pair. 103 refDict = MergeDcrSourcesRunner.buildRefDict(parsedCmd)
104 return [(list(f.values()), kwargs)
105 for t
in list(refDict.values())
106 for p
in list(t.values())
107 for f
in list(p.values())]
111 """Detect sources on a DCR coadd.""" 114 def _makeArgumentParser(cls):
116 parser.add_id_argument(name=
"--id",
117 datasetType=
"dcrCoadd",
118 help=
"data ID, e.g. --id tract=12345 patch=1,2 filter=g, subfilter=0",
119 ContainerClass=ExistingCoaddDataIdContainer)
124 """Task runner for the `MergeSourcesTask`. 126 Required because the run method requires a list of 127 dataRefs rather than a single dataRef. 132 """Provide a list of patch references for each patch, tract, filter combo. 139 Keyword arguments passed to the task 144 List of tuples, where each tuple is a (dataRef, kwargs) pair. 146 refDict = MergeDcrSourcesRunner.buildRefDict(parsedCmd)
147 kwargs[
"psfCache"] = parsedCmd.psfCache
148 return [(list(f.values()), kwargs)
149 for t
in list(refDict.values())
150 for p
in list(t.values())
151 for f
in list(p.values())]
155 """Deblend the sources in a merged catalog.""" 157 RunnerClass = DeblendDcrCoaddSourcesRunner
160 def _makeArgumentParser(cls):
162 parser.add_id_argument(name=
"--id",
163 datasetType=
"dcrCoadd_calexp",
164 help=
"data ID, e.g. --id tract=12345 patch=1,2 filter=g, subfilter=0",
165 ContainerClass=ExistingCoaddDataIdContainer)
166 parser.add_argument(
"--psfCache", type=int, default=100, help=
"Size of CoaddPsf cache")
171 """Merge dcrCoadd detections from multiple subfilters.""" 173 RunnerClass = MergeDcrSourcesRunner
176 def _makeArgumentParser(cls):
177 """Create a suitable ArgumentParser. 179 We will use the ArgumentParser to get a provide a list of data 180 references for patches; the RunnerClass will sort them into lists 181 of data references for the same patch 184 parser.add_id_argument(name=
"--id",
186 ContainerClass=ExistingCoaddDataIdContainer,
187 help=
"data ID, e.g. --id tract=12345 patch=1,2 filter=g, subfilter=0^1^2")
192 """Deblend sources from master catalog in each coadd seperately and measure.""" 195 def _makeArgumentParser(cls):
197 parser.add_id_argument(name=
"--id",
198 datasetType=
"dcrCoadd_calexp",
199 help=
"data ID, e.g. --id tract=12345 patch=1,2 filter=g, subfilter=0",
200 ContainerClass=ExistingCoaddDataIdContainer)
201 parser.add_argument(
"--psfCache", type=int, default=100, help=
"Size of CoaddPsf cache")
206 """Merge measurements from multiple subfilters.""" 208 RunnerClass = MergeDcrSourcesRunner
211 def _makeArgumentParser(cls):
212 """Create a suitable ArgumentParser. 214 We will use the ArgumentParser to get a provide a list of data 215 references for patches; the RunnerClass will sort them into lists 216 of data references for the same patch 219 parser.add_id_argument(name=
"--id",
221 ContainerClass=ExistingCoaddDataIdContainer,
222 help=
"data ID, e.g. --id tract=12345 patch=1,2 filter=g, subfilter=0^1^2")
Merge coadd detections from multiple bands.
def buildRefDict(parsedCmd)
Merge measurements from multiple bands.
Deblend sources from master catalog in each coadd seperately and measure.
def getTargetList(parsedCmd, kwargs)
def getTargetList(parsedCmd, kwargs)
Detect sources on a coadd.