LSSTApplications  10.0-2-g4f67435,11.0.rc2+1,11.0.rc2+12,11.0.rc2+3,11.0.rc2+4,11.0.rc2+5,11.0.rc2+6,11.0.rc2+7,11.0.rc2+8
LSSTDataManagementBasePackage
Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | Static Private Attributes | List of all members
lsst.meas.astrom.astrometry.AstrometryTask Class Reference

Match an input source catalog with objects from a reference catalog and solve for the WCS. More...

Inheritance diagram for lsst.meas.astrom.astrometry.AstrometryTask:

Public Member Functions

def __init__
 Construct an AstrometryTask. More...
 
def run
 Load reference objects, match sources and optionally fit a WCS. More...
 
def loadAndMatch
 Load reference objects overlapping an exposure and match to sources detected on that exposure. More...
 
def solve
 Load reference objects overlapping an exposure, match to sources and fit a WCS. More...
 

Static Public Attributes

 ConfigClass = AstrometryConfig
 

Private Member Functions

def _getExposureMetadata
 Extract metadata from an exposure. More...
 
def _matchAndFitWcs
 Match sources to reference objects and fit a WCS. More...
 

Static Private Member Functions

def _createMatchMetadata
 

Static Private Attributes

string _DefaultName = "astrometricSolver"
 

Detailed Description

Match an input source catalog with objects from a reference catalog and solve for the WCS.

Contents

Description

Match input sourceCat with a reference catalog and solve for the Wcs

There are three steps, each performed by different subtasks:

Task initialisation

Construct an AstrometryTask.

Parameters
[in]schemaignored; available for compatibility with an older astrometry task

Invoking the Task

Load reference objects, match sources and optionally fit a WCS. This is a thin layer around solve or loadAndMatch, depending on config.forceKnownWcs

Parameters
[in,out]exposureexposure whose WCS is to be fit The following are read only:
  • bbox
  • calib (may be absent)
  • filter (may be unset)
  • detector (if wcs is pure tangent; may be absent) The following are updated:
  • wcs (the initial value is used as an initial guess, and is required)
[in]sourceCatcatalog of sourceCat detected on the exposure (an lsst.afw.table.SourceCatalog)
Returns
an lsst.pipe.base.Struct with these fields:
  • refCat reference object catalog of objects that overlap the exposure (with some margin) (an lsst::afw::table::SimpleCatalog)
  • matches list of reference object/source matches (an lsst.afw.table.ReferenceMatchVector)
  • scatterOnSky median on-sky separation between reference objects and sources in "matches" (an lsst.afw.geom.Angle), or None if config.forceKnownWcs True
  • matchMeta metadata about the field (an lsst.daf.base.PropertyList)

Load reference objects overlapping an exposure and match to sources detected on that exposure.

Parameters
[in]exposureexposure whose WCS is to be fit
[in]sourceCatcatalog of sourceCat detected on the exposure (an lsst.afw.table.SourceCatalog)
Returns
an lsst.pipe.base.Struct with these fields:
  • refCat reference object catalog of objects that overlap the exposure (with some margin) (an lsst::afw::table::SimpleCatalog)
  • matches list of reference object/source matches (an lsst.afw.table.ReferenceMatchVector)
  • matchMeta metadata about the field (an lsst.daf.base.PropertyList)
Note
ignores config.forceKnownWcs, config.maxIter, config.matchDistanceSigma and config.minMatchDistanceArcSec

Configuration parameters

See AstrometryConfig

A complete example of using AstrometryTask

See meas_photocal_photocal_Example.

Debug variables

The command line task interface supports a flag -d to import debug.py from your PYTHONPATH; see Using lsstDebug to control debugging output for more about debug.py files.

The available variables in AstrometryTask are:

display (bool)
If True display information at three stages: after finding reference objects, after matching sources to reference objects, and after fitting the WCS; defaults to False
frame (int)
ds9 frame to use to display the reference objects; the next two frames are used to display the match list and the results of the final WCS; defaults to 0

To investigate the Debug variables, put something like

1 import lsstDebug
2 def DebugInfo(name):
3  debug = lsstDebug.getInfo(name) # N.b. lsstDebug.Info(name) would call us recursively
4  if name == "lsst.meas.astrom.astrometry":
5  debug.display = True
6 
7  return debug
8 
9 lsstDebug.Info = DebugInfo

into your debug.py file and run this task with the –debug flag.

Definition at line 64 of file astrometry.py.

Constructor & Destructor Documentation

def lsst.meas.astrom.astrometry.AstrometryTask.__init__ (   self,
  schema = None,
  kwargs 
)

Construct an AstrometryTask.

Parameters
[in]schemaignored; available for compatibility with an older astrometry task

Definition at line 138 of file astrometry.py.

139  def __init__(self, schema=None, **kwargs):
140  """!Construct an AstrometryTask
141 
142  @param[in] schema ignored; available for compatibility with an older astrometry task
143  """
144  pipeBase.Task.__init__(self, **kwargs)
145  self.makeSubtask("refObjLoader")
146  self.makeSubtask("matcher")
147  self.makeSubtask("wcsFitter")
def __init__
Construct an AstrometryTask.
Definition: astrometry.py:138

Member Function Documentation

def lsst.meas.astrom.astrometry.AstrometryTask._createMatchMetadata (   bbox,
  wcs,
  filterName 
)
staticprivate
Create matchMeta metadata required for regenerating the catalog

This is copied from Astrom and I'm not sure why it is needed.

@param bbox  bounding box of exposure (an lsst.afw.geom.Box2I or Box2D)
@param wcs  WCS of exposure
@param filterName Name of filter, used for magnitudes
@return metadata about the field (a daf_base PropertyList)

Definition at line 432 of file astrometry.py.

433  def _createMatchMetadata(bbox, wcs, filterName):
434  """Create matchMeta metadata required for regenerating the catalog
435 
436  This is copied from Astrom and I'm not sure why it is needed.
437 
438  @param bbox bounding box of exposure (an lsst.afw.geom.Box2I or Box2D)
439  @param wcs WCS of exposure
440  @param filterName Name of filter, used for magnitudes
441  @return metadata about the field (a daf_base PropertyList)
442  """
443  matchMeta = PropertyList()
444  bboxd = Box2D(bbox)
445  ctrPos = bboxd.getCenter()
446  ctrCoord = wcs.pixelToSky(ctrPos).toIcrs()
447  llCoord = wcs.pixelToSky(bboxd.getMin())
448  approxRadius = ctrCoord.angularSeparation(llCoord)
449  matchMeta.add('RA', ctrCoord.getRa().asDegrees(), 'field center in degrees')
450  matchMeta.add('DEC', ctrCoord.getDec().asDegrees(), 'field center in degrees')
451  matchMeta.add('RADIUS', approxRadius.asDegrees(), 'field radius in degrees, approximate')
452  matchMeta.add('SMATCHV', 1, 'SourceMatchVector version number')
453  if filterName is not None:
454  matchMeta.add('FILTER', filterName, 'filter name for tagalong data')
455  return matchMeta
Class for storing ordered metadata with comments.
Definition: PropertyList.h:81
A floating-point coordinate rectangle geometry.
Definition: Box.h:271
def lsst.meas.astrom.astrometry.AstrometryTask._getExposureMetadata (   self,
  exposure 
)
private

Extract metadata from an exposure.

Returns
an lsst.pipe.base.Struct containing the following exposure metadata:
  • bbox: parent bounding box
  • wcs: WCS (an lsst.afw.image.Wcs)
  • calib calibration (an lsst.afw.image.Calib), or None if unknown
  • filterName: name of filter, or None if unknown

Definition at line 341 of file astrometry.py.

342  def _getExposureMetadata(self, exposure):
343  """!Extract metadata from an exposure
344 
345  @return an lsst.pipe.base.Struct containing the following exposure metadata:
346  - bbox: parent bounding box
347  - wcs: WCS (an lsst.afw.image.Wcs)
348  - calib calibration (an lsst.afw.image.Calib), or None if unknown
349  - filterName: name of filter, or None if unknown
350  """
351  exposureInfo = exposure.getInfo()
352  filterName = exposureInfo.getFilter().getName() or None
353  if filterName == "_unknown_":
354  filterName = None
355  return pipeBase.Struct(
356  bbox = exposure.getBBox(),
357  wcs = getDistortedWcs(exposureInfo, log=self.log),
358  calib = exposureInfo.getCalib() if exposureInfo.hasCalib() else None,
359  filterName = filterName,
360  )
def _getExposureMetadata
Extract metadata from an exposure.
Definition: astrometry.py:341
def getDistortedWcs
Get a WCS from an exposureInfo, with distortion terms if possible.
Definition: utils.py:46
def lsst.meas.astrom.astrometry.AstrometryTask._matchAndFitWcs (   self,
  refCat,
  sourceCat,
  refFluxField,
  bbox,
  wcs,
  maxMatchDistArcSec = None,
  exposure = None 
)
private

Match sources to reference objects and fit a WCS.

Parameters
[in]refCatcatalog of reference objects
[in]sourceCatcatalog of sourceCat detected on the exposure (an lsst.afw.table.SourceCatalog)
[in]refFluxFieldfield of refCat to use for flux
[in]bboxbounding box of exposure (an lsst.afw.geom.Box2I)
[in]wcsinitial guess for WCS of exposure (an lsst.afw.image.Wcs)
[in]maxMatchDistArcSecmaximum distance between reference objects and sources (arcsec); if None then use the matcher's default
[in]exposureexposure whose WCS is to be fit, or None; used only for the debug display
Returns
an lsst.pipe.base.Struct with these fields:
  • matches list of reference object/source matches (an lsst.afw.table.ReferenceMatchVector)
  • wcs the fit WCS (an lsst.afw.image.Wcs)
  • scatterOnSky median on-sky separation between reference objects and sources in "matches" (an lsst.afw.geom.Angle)

Definition at line 363 of file astrometry.py.

364  exposure=None):
365  """!Match sources to reference objects and fit a WCS
366 
367  @param[in] refCat catalog of reference objects
368  @param[in] sourceCat catalog of sourceCat detected on the exposure (an lsst.afw.table.SourceCatalog)
369  @param[in] refFluxField field of refCat to use for flux
370  @param[in] bbox bounding box of exposure (an lsst.afw.geom.Box2I)
371  @param[in] wcs initial guess for WCS of exposure (an lsst.afw.image.Wcs)
372  @param[in] maxMatchDistArcSec maximum distance between reference objects and sources (arcsec);
373  if None then use the matcher's default
374  @param[in] exposure exposure whose WCS is to be fit, or None; used only for the debug display
375 
376  @return an lsst.pipe.base.Struct with these fields:
377  - matches list of reference object/source matches (an lsst.afw.table.ReferenceMatchVector)
378  - wcs the fit WCS (an lsst.afw.image.Wcs)
379  - scatterOnSky median on-sky separation between reference objects and sources in "matches"
380  (an lsst.afw.geom.Angle)
381  """
382  import lsstDebug
383  debug = lsstDebug.Info(__name__)
384  matchRes = self.matcher.matchObjectsToSources(
385  refCat = refCat,
386  sourceCat = sourceCat,
387  wcs = wcs,
388  refFluxField = refFluxField,
389  maxMatchDistArcSec = maxMatchDistArcSec,
390  )
391  self.log.logdebug("Found %s matches" % (len(matchRes.matches),))
392  if debug.display:
393  frame = int(debug.frame)
395  refCat = refCat,
396  sourceCat = matchRes.usableSourceCat,
397  matches = matchRes.matches,
398  exposure = exposure,
399  bbox = bbox,
400  frame = frame + 1,
401  title="Initial WCS",
402  )
403 
404  self.log.logdebug("Fitting WCS")
405  fitRes = self.wcsFitter.fitWcs(
406  matches = matchRes.matches,
407  initWcs = wcs,
408  bbox = bbox,
409  refCat = refCat,
410  sourceCat = sourceCat,
411  )
412  fitWcs = fitRes.wcs
413  scatterOnSky = fitRes.scatterOnSky
414  if debug.display:
415  frame = int(debug.frame)
417  refCat = refCat,
418  sourceCat = matchRes.usableSourceCat,
419  matches = matchRes.matches,
420  exposure = exposure,
421  bbox = bbox,
422  frame = frame + 2,
423  title="Fit TAN-SIP WCS",
424  )
425 
426  return pipeBase.Struct(
427  matches = matchRes.matches,
428  wcs = fitWcs,
429  scatterOnSky = scatterOnSky,
430  )
def lsst.meas.astrom.astrometry.AstrometryTask.loadAndMatch (   self,
  exposure,
  sourceCat 
)

Load reference objects overlapping an exposure and match to sources detected on that exposure.

Parameters
[in]exposureexposure whose WCS is to be fit
[in]sourceCatcatalog of sourceCat detected on the exposure (an lsst.afw.table.SourceCatalog)
Returns
an lsst.pipe.base.Struct with these fields:
  • refCat reference object catalog of objects that overlap the exposure (with some margin) (an lsst::afw::table::SimpleCatalog)
  • matches list of reference object/source matches (an lsst.afw.table.ReferenceMatchVector)
  • matchMeta metadata about the field (an lsst.daf.base.PropertyList)
Note
ignores config.forceKnownWcs, config.maxIter, config.matchDistanceSigma and config.minMatchDistanceArcSec

Definition at line 179 of file astrometry.py.

180  def loadAndMatch(self, exposure, sourceCat):
181  """!Load reference objects overlapping an exposure and match to sources detected on that exposure
182 
183  @param[in] exposure exposure whose WCS is to be fit
184  @param[in] sourceCat catalog of sourceCat detected on the exposure (an lsst.afw.table.SourceCatalog)
185 
186  @return an lsst.pipe.base.Struct with these fields:
187  - refCat reference object catalog of objects that overlap the exposure (with some margin)
188  (an lsst::afw::table::SimpleCatalog)
189  - matches list of reference object/source matches (an lsst.afw.table.ReferenceMatchVector)
190  - matchMeta metadata about the field (an lsst.daf.base.PropertyList)
191 
192  @note ignores config.forceKnownWcs, config.maxIter, config.matchDistanceSigma
193  and config.minMatchDistanceArcSec
194  """
195  import lsstDebug
196  debug = lsstDebug.Info(__name__)
197 
198  expMd = self._getExposureMetadata(exposure)
199 
200  loadRes = self.refObjLoader.loadPixelBox(
201  bbox = expMd.bbox,
202  wcs = expMd.wcs,
203  filterName = expMd.filterName,
204  calib = expMd.calib,
205  )
206 
207  matchRes = self.matcher.matchObjectsToSources(
208  refCat = loadRes.refCat,
209  sourceCat = sourceCat,
210  wcs = expMd.wcs,
211  refFluxField = loadRes.fluxField,
212  maxMatchDistArcSec = None,
213  )
214 
215  distRadList = [match.distance for match in matchRes.matches]
216  distRadStats = afwMath.makeStatistics(distRadList, afwMath.MEANCLIP | afwMath.STDEVCLIP)
217  distArcsecMean = radToArcsec(distRadStats.getValue(afwMath.MEANCLIP))
218  distArcsecStdDev = radToArcsec(distRadStats.getValue(afwMath.STDEVCLIP))
219  self.log.info(
220  "Found %d matches with scatter = %0.3f +- %0.3f arcsec; " %
221  (len(matchRes.matches), distArcsecMean, distArcsecStdDev))
222 
223  if debug.display:
224  frame = int(debug.frame)
226  refCat = loadRes.refCat,
227  sourceCat = sourceCat,
228  matches = matchRes.matches,
229  exposure = exposure,
230  bbox = expMd.bbox,
231  frame = frame,
232  title="Matches",
233  )
234 
235  return pipeBase.Struct(
236  refCat = loadRes.refCat,
237  matches = matchRes.matches,
238  matchMeta = self._createMatchMetadata(bbox=expMd.bbox, wcs=expMd.wcs, filterName=expMd.filterName),
239  )
def _getExposureMetadata
Extract metadata from an exposure.
Definition: astrometry.py:341
double radToArcsec(double x)
Definition: Angle.h:35
Statistics makeStatistics(afwImage::Mask< afwImage::MaskPixel > const &msk, int const flags, StatisticsControl const &sctrl)
Specialization to handle Masks.
Definition: Statistics.cc:1082
def loadAndMatch
Load reference objects overlapping an exposure and match to sources detected on that exposure...
Definition: astrometry.py:179
def lsst.meas.astrom.astrometry.AstrometryTask.run (   self,
  exposure,
  sourceCat 
)

Load reference objects, match sources and optionally fit a WCS.

This is a thin layer around solve or loadAndMatch, depending on config.forceKnownWcs

Parameters
[in,out]exposureexposure whose WCS is to be fit The following are read only:
  • bbox
  • calib (may be absent)
  • filter (may be unset)
  • detector (if wcs is pure tangent; may be absent) The following are updated:
  • wcs (the initial value is used as an initial guess, and is required)
[in]sourceCatcatalog of sourceCat detected on the exposure (an lsst.afw.table.SourceCatalog)
Returns
an lsst.pipe.base.Struct with these fields:
  • refCat reference object catalog of objects that overlap the exposure (with some margin) (an lsst::afw::table::SimpleCatalog)
  • matches list of reference object/source matches (an lsst.afw.table.ReferenceMatchVector)
  • scatterOnSky median on-sky separation between reference objects and sources in "matches" (an lsst.afw.geom.Angle), or None if config.forceKnownWcs True
  • matchMeta metadata about the field (an lsst.daf.base.PropertyList)

Definition at line 149 of file astrometry.py.

150  def run(self, exposure, sourceCat):
151  """!Load reference objects, match sources and optionally fit a WCS
152 
153  This is a thin layer around solve or loadAndMatch, depending on config.forceKnownWcs
154 
155  @param[in,out] exposure exposure whose WCS is to be fit
156  The following are read only:
157  - bbox
158  - calib (may be absent)
159  - filter (may be unset)
160  - detector (if wcs is pure tangent; may be absent)
161  The following are updated:
162  - wcs (the initial value is used as an initial guess, and is required)
163  @param[in] sourceCat catalog of sourceCat detected on the exposure (an lsst.afw.table.SourceCatalog)
164  @return an lsst.pipe.base.Struct with these fields:
165  - refCat reference object catalog of objects that overlap the exposure (with some margin)
166  (an lsst::afw::table::SimpleCatalog)
167  - matches list of reference object/source matches (an lsst.afw.table.ReferenceMatchVector)
168  - scatterOnSky median on-sky separation between reference objects and sources in "matches"
169  (an lsst.afw.geom.Angle), or None if config.forceKnownWcs True
170  - matchMeta metadata about the field (an lsst.daf.base.PropertyList)
171  """
172  if self.config.forceKnownWcs:
173  res = self.loadAndMatch(exposure=exposure, sourceCat=sourceCat)
174  res.scatterOnSky = None
175  else:
176  res = self.solve(exposure=exposure, sourceCat=sourceCat)
177  return res
def run
Load reference objects, match sources and optionally fit a WCS.
Definition: astrometry.py:149
def solve
Load reference objects overlapping an exposure, match to sources and fit a WCS.
Definition: astrometry.py:241
def loadAndMatch
Load reference objects overlapping an exposure and match to sources detected on that exposure...
Definition: astrometry.py:179
def lsst.meas.astrom.astrometry.AstrometryTask.solve (   self,
  exposure,
  sourceCat 
)

Load reference objects overlapping an exposure, match to sources and fit a WCS.

Returns
an lsst.pipe.base.Struct with these fields:
  • refCat reference object catalog of objects that overlap the exposure (with some margin) (an lsst::afw::table::SimpleCatalog)
  • matches list of reference object/source matches (an lsst.afw.table.ReferenceMatchVector)
  • scatterOnSky median on-sky separation between reference objects and sources in "matches" (an lsst.afw.geom.Angle)
  • matchMeta metadata about the field (an lsst.daf.base.PropertyList)
Note
ignores config.forceKnownWcs

Definition at line 241 of file astrometry.py.

242  def solve(self, exposure, sourceCat):
243  """!Load reference objects overlapping an exposure, match to sources and fit a WCS
244 
245  @return an lsst.pipe.base.Struct with these fields:
246  - refCat reference object catalog of objects that overlap the exposure (with some margin)
247  (an lsst::afw::table::SimpleCatalog)
248  - matches list of reference object/source matches (an lsst.afw.table.ReferenceMatchVector)
249  - scatterOnSky median on-sky separation between reference objects and sources in "matches"
250  (an lsst.afw.geom.Angle)
251  - matchMeta metadata about the field (an lsst.daf.base.PropertyList)
252 
253  @note ignores config.forceKnownWcs
254  """
255  import lsstDebug
256  debug = lsstDebug.Info(__name__)
257 
258  expMd = self._getExposureMetadata(exposure)
259 
260  loadRes = self.refObjLoader.loadPixelBox(
261  bbox = expMd.bbox,
262  wcs = expMd.wcs,
263  filterName = expMd.filterName,
264  calib = expMd.calib,
265  )
266  if debug.display:
267  frame = int(debug.frame)
269  refCat = loadRes.refCat,
270  sourceCat = sourceCat,
271  exposure = exposure,
272  bbox = expMd.bbox,
273  frame = frame,
274  title="Reference catalog",
275  )
276 
277  res = None
278  wcs = expMd.wcs
279  maxMatchDistArcSec = None
280  for i in range(self.config.maxIter):
281  iterNum = i + 1
282  try:
283  tryRes = self._matchAndFitWcs( # refCat, sourceCat, refFluxField, bbox, wcs, exposure=None
284  refCat = loadRes.refCat,
285  sourceCat = sourceCat,
286  refFluxField = loadRes.fluxField,
287  bbox = expMd.bbox,
288  wcs = wcs,
289  exposure = exposure,
290  maxMatchDistArcSec = maxMatchDistArcSec,
291  )
292  except Exception as e:
293  # if we have had a succeessful iteration then use that; otherwise fail
294  if i > 0:
295  self.log.info("Fit WCS iter %d failed; using previous iteration: %s" % (iterNum, e))
296  iterNum -= 1
297  break
298  else:
299  raise
300 
301  distRadList = [match.distance for match in tryRes.matches]
302  distRadStats = afwMath.makeStatistics(distRadList, afwMath.MEANCLIP | afwMath.STDEVCLIP)
303  distArcsecMean = radToArcsec(distRadStats.getValue(afwMath.MEANCLIP))
304  distArcsecStdDev = radToArcsec(distRadStats.getValue(afwMath.STDEVCLIP))
305 
306  newMaxMatchDistArcSec = distArcsecMean + self.config.matchDistanceSigma*distArcsecStdDev
307  self.log.logdebug(
308  "Match and fit WCS iteration %d: found %d matches with scatter = %0.3f +- %0.3f arcsec; "
309  "max match distance = %0.3f arcsec" %
310  (iterNum, len(tryRes.matches), distArcsecMean, distArcsecStdDev, newMaxMatchDistArcSec))
311  if maxMatchDistArcSec is not None:
312  if newMaxMatchDistArcSec >= maxMatchDistArcSec:
313  self.log.logdebug(
314  "Iteration %d had no better maxMatchDist; using previous iteration" % (iterNum,))
315  iterNum -= 1
316  break
317 
318  maxMatchDistArcSec = newMaxMatchDistArcSec
319  res = tryRes
320  wcs = res.wcs
321  if newMaxMatchDistArcSec < self.config.minMatchDistanceArcSec:
322  self.log.logdebug(
323  "Max match distance = %0.3f arcsec < %0.3f = config.minMatchDistanceArcSec; "
324  "that's good enough" %
325  (newMaxMatchDistArcSec, self.config.minMatchDistanceArcSec))
326  break
327 
328  self.log.info(
329  "Matched and fit WCS in %d iterations; "
330  "found %d matches with scatter = %0.3f +- %0.3f arcsec" %
331  (iterNum, len(tryRes.matches), distArcsecMean, distArcsecStdDev))
332 
333  exposure.setWcs(res.wcs)
334 
335  return pipeBase.Struct(
336  refCat = loadRes.refCat,
337  matches = res.matches,
338  scatterOnSky = res.scatterOnSky,
339  matchMeta = self._createMatchMetadata(bbox=expMd.bbox, wcs=res.wcs, filterName=expMd.filterName)
340  )
def _matchAndFitWcs
Match sources to reference objects and fit a WCS.
Definition: astrometry.py:363
def _getExposureMetadata
Extract metadata from an exposure.
Definition: astrometry.py:341
double radToArcsec(double x)
Definition: Angle.h:35
Statistics makeStatistics(afwImage::Mask< afwImage::MaskPixel > const &msk, int const flags, StatisticsControl const &sctrl)
Specialization to handle Masks.
Definition: Statistics.cc:1082
def solve
Load reference objects overlapping an exposure, match to sources and fit a WCS.
Definition: astrometry.py:241

Member Data Documentation

string lsst.meas.astrom.astrometry.AstrometryTask._DefaultName = "astrometricSolver"
staticprivate

Definition at line 136 of file astrometry.py.

lsst.meas.astrom.astrometry.AstrometryTask.ConfigClass = AstrometryConfig
static

Definition at line 135 of file astrometry.py.


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