LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
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 77 of file ref_match.py.

Constructor & Destructor Documentation

◆ __init__()

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

Definition at line 90 of file ref_match.py.

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

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 117 of file ref_match.py.

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

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

Member Data Documentation

◆ ConfigClass

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

Definition at line 87 of file ref_match.py.

◆ refObjLoader

lsst.meas.astrom.ref_match.RefMatchTask.refObjLoader

Definition at line 93 of file ref_match.py.


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