LSST Applications  21.0.0-147-g0e635eb1+1acddb5be5,22.0.0+052faf71bd,22.0.0+1ea9a8b2b2,22.0.0+6312710a6c,22.0.0+729191ecac,22.0.0+7589c3a021,22.0.0+9f079a9461,22.0.1-1-g7d6de66+b8044ec9de,22.0.1-1-g87000a6+536b1ee016,22.0.1-1-g8e32f31+6312710a6c,22.0.1-10-gd060f87+016f7cdc03,22.0.1-12-g9c3108e+df145f6f68,22.0.1-16-g314fa6d+c825727ab8,22.0.1-19-g93a5c75+d23f2fb6d8,22.0.1-19-gb93eaa13+aab3ef7709,22.0.1-2-g8ef0a89+b8044ec9de,22.0.1-2-g92698f7+9f079a9461,22.0.1-2-ga9b0f51+052faf71bd,22.0.1-2-gac51dbf+052faf71bd,22.0.1-2-gb66926d+6312710a6c,22.0.1-2-gcb770ba+09e3807989,22.0.1-20-g32debb5+b8044ec9de,22.0.1-23-gc2439a9a+fb0756638e,22.0.1-3-g496fd5d+09117f784f,22.0.1-3-g59f966b+1e6ba2c031,22.0.1-3-g849a1b8+f8b568069f,22.0.1-3-gaaec9c0+c5c846a8b1,22.0.1-32-g5ddfab5d3+60ce4897b0,22.0.1-4-g037fbe1+64e601228d,22.0.1-4-g8623105+b8044ec9de,22.0.1-5-g096abc9+d18c45d440,22.0.1-5-g15c806e+57f5c03693,22.0.1-7-gba73697+57f5c03693,master-g6e05de7fdc+c1283a92b8,master-g72cdda8301+729191ecac,w.2021.39
LSST Data Management Base Package
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
lsst.meas.astrom.ref_match.RefMatchTask Class Reference
Inheritance diagram for lsst.meas.astrom.ref_match.RefMatchTask:
lsst.meas.astrom.astrometry.AstrometryTask

Public Member Functions

def __init__ (self, refObjLoader, **kwargs)
 
def setRefObjLoader (self, refObjLoader)
 
def loadAndMatch (self, exposure, sourceCat)
 

Public Attributes

 refObjLoader
 

Static Public Attributes

 ConfigClass = RefMatchConfig
 

Detailed Description

Match an input source catalog with objects from a reference catalog.

Parameters
----------
refObjLoader : `lsst.meas.algorithms.ReferenceLoader`
    A reference object loader object
**kwargs
    additional keyword arguments for pipe_base `lsst.pipe.base.Task`

Definition at line 76 of file ref_match.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.meas.astrom.ref_match.RefMatchTask.__init__ (   self,
  refObjLoader,
**  kwargs 
)

Definition at line 89 of file ref_match.py.

89  def __init__(self, refObjLoader, **kwargs):
90  pipeBase.Task.__init__(self, **kwargs)
91  if refObjLoader:
92  self.refObjLoader = refObjLoader
93  else:
94  self.refObjLoader = None
95 
96  if self.config.sourceSelector.name == 'matcher':
97  if self.config.sourceSelector['matcher'].sourceFluxType != self.config.sourceFluxType:
98  raise RuntimeError("The sourceFluxType in the sourceSelector['matcher'] must match "
99  "the configured sourceFluxType")
100 
101  self.makeSubtask("matcher")
102  self.makeSubtask("sourceSelector")
103  self.makeSubtask("referenceSelector")
104 

Member Function Documentation

◆ loadAndMatch()

def lsst.meas.astrom.ref_match.RefMatchTask.loadAndMatch (   self,
  exposure,
  sourceCat 
)
Load reference objects overlapping an exposure and match to sources
detected on that exposure.

Parameters
----------
exposure : `lsst.afw.image.Exposure`
    exposure that the sources overlap
sourceCat : `lsst.afw.table.SourceCatalog.`
    catalog of sources detected on the exposure

Returns
-------
result : `lsst.pipe.base.Struct`
    Result struct with Components:

    - ``refCat`` : reference object catalog of objects that overlap the
      exposure (`lsst.afw.table.SimpleCatalog`)
    - ``matches`` :  Matched sources and references
      (`list` of `lsst.afw.table.ReferenceMatch`)
    - ``matchMeta`` : metadata needed to unpersist matches
      (`lsst.daf.base.PropertyList`)

Notes
-----
ignores config.matchDistanceSigma

Definition at line 116 of file ref_match.py.

116  def loadAndMatch(self, exposure, sourceCat):
117  """Load reference objects overlapping an exposure and match to sources
118  detected on that exposure.
119 
120  Parameters
121  ----------
122  exposure : `lsst.afw.image.Exposure`
123  exposure that the sources overlap
124  sourceCat : `lsst.afw.table.SourceCatalog.`
125  catalog of sources detected on the exposure
126 
127  Returns
128  -------
129  result : `lsst.pipe.base.Struct`
130  Result struct with Components:
131 
132  - ``refCat`` : reference object catalog of objects that overlap the
133  exposure (`lsst.afw.table.SimpleCatalog`)
134  - ``matches`` : Matched sources and references
135  (`list` of `lsst.afw.table.ReferenceMatch`)
136  - ``matchMeta`` : metadata needed to unpersist matches
137  (`lsst.daf.base.PropertyList`)
138 
139  Notes
140  -----
141  ignores config.matchDistanceSigma
142  """
143  if self.refObjLoader is None:
144  raise RuntimeError("Running matcher task with no refObjLoader set in __ini__ or setRefObjLoader")
145  import lsstDebug
146  debug = lsstDebug.Info(__name__)
147 
148  expMd = self._getExposureMetadata(exposure)
149 
150  sourceSelection = self.sourceSelector.run(sourceCat)
151 
152  sourceFluxField = "slot_%sFlux_instFlux" % (self.config.sourceFluxType)
153 
154  loadRes = self.refObjLoader.loadPixelBox(
155  bbox=expMd.bbox,
156  wcs=expMd.wcs,
157  filterName=expMd.filterName,
158  photoCalib=expMd.photoCalib,
159  epoch=expMd.epoch,
160  )
161 
162  refSelection = self.referenceSelector.run(loadRes.refCat)
163 
164  matchMeta = self.refObjLoader.getMetadataBox(
165  bbox=expMd.bbox,
166  wcs=expMd.wcs,
167  filterName=expMd.filterName,
168  photoCalib=expMd.photoCalib,
169  epoch=expMd.epoch,
170  )
171 
172  matchRes = self.matcher.matchObjectsToSources(
173  refCat=refSelection.sourceCat,
174  sourceCat=sourceSelection.sourceCat,
175  wcs=expMd.wcs,
176  sourceFluxField=sourceFluxField,
177  refFluxField=loadRes.fluxField,
178  match_tolerance=None,
179  )
180 
181  distStats = self._computeMatchStatsOnSky(matchRes.matches)
182  self.log.info(
183  "Found %d matches with scatter = %0.3f +- %0.3f arcsec; " %
184  (len(matchRes.matches), distStats.distMean.asArcseconds(), distStats.distStdDev.asArcseconds())
185  )
186 
187  if debug.display:
188  frame = int(debug.frame)
190  refCat=refSelection.sourceCat,
191  sourceCat=sourceSelection.sourceCat,
192  matches=matchRes.matches,
193  exposure=exposure,
194  bbox=expMd.bbox,
195  frame=frame,
196  title="Matches",
197  )
198 
199  return pipeBase.Struct(
200  refCat=loadRes.refCat,
201  refSelection=refSelection,
202  sourceSelection=sourceSelection,
203  matches=matchRes.matches,
204  matchMeta=matchMeta,
205  )
206 
def run(self, coaddExposures, bbox, wcs)
Definition: getTemplate.py:603
def displayAstrometry(refCat=None, sourceCat=None, distortedCentroidKey=None, bbox=None, exposure=None, matches=None, frame=1, title="", pause=True)
Definition: display.py:34

◆ setRefObjLoader()

def lsst.meas.astrom.ref_match.RefMatchTask.setRefObjLoader (   self,
  refObjLoader 
)
Sets the reference object loader for the task

Parameters
----------
refObjLoader
    An instance of a reference object loader task or class

Definition at line 105 of file ref_match.py.

105  def setRefObjLoader(self, refObjLoader):
106  """Sets the reference object loader for the task
107 
108  Parameters
109  ----------
110  refObjLoader
111  An instance of a reference object loader task or class
112  """
113  self.refObjLoader = refObjLoader
114 

Member Data Documentation

◆ ConfigClass

lsst.meas.astrom.ref_match.RefMatchTask.ConfigClass = RefMatchConfig
static

Definition at line 86 of file ref_match.py.

◆ refObjLoader

lsst.meas.astrom.ref_match.RefMatchTask.refObjLoader

Definition at line 92 of file ref_match.py.


The documentation for this class was generated from the following file: