LSSTApplications  20.0.0
LSSTDataManagementBasePackage
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
lsst.meas.base.plugins.EvaluateLocalWcsPlugin Class Reference
Inheritance diagram for lsst.meas.base.plugins.EvaluateLocalWcsPlugin:
lsst.meas.base.wrappers.GenericPlugin lsst.meas.base.pluginsBase.BasePlugin

Public Member Functions

def getExecutionOrder (cls)
 
def __init__ (self, config, name, schema, metadata)
 
def measure (self, measRecord, exposure, center)
 
def makeLocalTransformMatrix (self, wcs, center)
 
def measureN (self, measCat, exposure, refCat, refWcs)
 
def fail (self, measRecord, error=None)
 
def makeSingleFramePlugin (cls, name)
 
def makeForcedPlugin (cls, name)
 
def getLogName (self)
 

Static Public Member Functions

def getTransformClass ()
 

Public Attributes

 cdMatrix11Key
 
 cdMatrix12Key
 
 cdMatrix21Key
 
 cdMatrix22Key
 
 config
 
 name
 
 logName
 

Static Public Attributes

 ConfigClass = EvaluateLocalWcsPluginConfig
 
float CENTROID_ORDER = 0.0
 
float SHAPE_ORDER = 1.0
 
float FLUX_ORDER = 2.0
 
float APCORR_ORDER = 3.0
 
float DEFAULT_CATALOGCALCULATION = 4.0
 

Detailed Description

Evaluate the local, linear approximation of the Wcs.

The aim is to store the local calib value within the catalog for later
use in the Science Data Model functors.

Definition at line 463 of file plugins.py.

Constructor & Destructor Documentation

◆ __init__()

def lsst.meas.base.plugins.EvaluateLocalWcsPlugin.__init__ (   self,
  config,
  name,
  schema,
  metadata 
)

Definition at line 476 of file plugins.py.

476  def __init__(self, config, name, schema, metadata):
477  GenericPlugin.__init__(self, config, name, schema, metadata)
478  self.cdMatrix11Key = schema.addField(
479  f"{name}_CDMatrix_1_1",
480  type="D",
481  doc=f"(1, 1) element of the CDMatrix for the linear approximation "
482  "of the WCS at the src location. Gives units in radians.")
483  self.cdMatrix12Key = schema.addField(
484  f"{name}_CDMatrix_1_2",
485  type="D",
486  doc=f"(1, 2) element of the CDMatrix for the linear approximation "
487  "of the WCS at the src location. Gives units in radians.")
488  self.cdMatrix21Key = schema.addField(
489  f"{name}_CDMatrix_2_1",
490  type="D",
491  doc=f"(2, 1) element of the CDMatrix for the linear approximation "
492  "of the WCS at the src location. Gives units in radians.")
493  self.cdMatrix22Key = schema.addField(
494  f"{name}_CDMatrix_2_2",
495  type="D",
496  doc=f"(2, 2) element of the CDMatrix for the linear approximation "
497  "of the WCS at the src location. Gives units in radians.")
498 

Member Function Documentation

◆ fail()

def lsst.meas.base.wrappers.GenericPlugin.fail (   self,
  measRecord,
  error = None 
)
inherited
Record a measurement failure.

This default implementation simply records the failure in the source
record.

Parameters
----------
measRecord : `lsst.afw.table.SourceRecord`
    Catalog record for the source being measured.
error : `Exception`
    Error causing failure, or `None`.

Reimplemented from lsst.meas.base.pluginsBase.BasePlugin.

Reimplemented in lsst.meas.base.plugins.InputCountPlugin, and lsst.meas.base.plugins.VariancePlugin.

Definition at line 566 of file wrappers.py.

566  def fail(self, measRecord, error=None):
567  """Record a measurement failure.
568 
569  This default implementation simply records the failure in the source
570  record.
571 
572  Parameters
573  ----------
574  measRecord : `lsst.afw.table.SourceRecord`
575  Catalog record for the source being measured.
576  error : `Exception`
577  Error causing failure, or `None`.
578  """
579  measRecord.set(self._failKey, True)
580 

◆ getExecutionOrder()

def lsst.meas.base.plugins.EvaluateLocalWcsPlugin.getExecutionOrder (   cls)
Get the relative execution order of this plugin.

Must be reimplemented as a class method by concrete derived classes.

Reimplemented from lsst.meas.base.wrappers.GenericPlugin.

Definition at line 473 of file plugins.py.

473  def getExecutionOrder(cls):
474  return BasePlugin.FLUX_ORDER
475 

◆ getLogName()

def lsst.meas.base.pluginsBase.BasePlugin.getLogName (   self)
inherited

Definition at line 134 of file pluginsBase.py.

134  def getLogName(self):
135  return self.logName
136 

◆ getTransformClass()

def lsst.meas.base.pluginsBase.BasePlugin.getTransformClass ( )
staticinherited
Get the measurement transformation appropriate to this plugin.

This returns a subclass of `transforms.MeasurementTransform`, which
may be instantiated with details of the algorithm configuration and
then called with information about calibration and WCS to convert from
raw measurement quantities to calibrated units. Calibrated data is
then provided in a separate output table.

Notes
-----
By default, we copy everything from the input to the output without
transformation.

Reimplemented in lsst.meas.base.plugins.ForcedPeakCentroidPlugin, and lsst.meas.base.plugins.SingleFramePeakCentroidPlugin.

Definition at line 169 of file pluginsBase.py.

169  def getTransformClass():
170  """Get the measurement transformation appropriate to this plugin.
171 
172  This returns a subclass of `transforms.MeasurementTransform`, which
173  may be instantiated with details of the algorithm configuration and
174  then called with information about calibration and WCS to convert from
175  raw measurement quantities to calibrated units. Calibrated data is
176  then provided in a separate output table.
177 
178  Notes
179  -----
180  By default, we copy everything from the input to the output without
181  transformation.
182  """
183  return PassThroughTransform

◆ makeForcedPlugin()

def lsst.meas.base.wrappers.GenericPlugin.makeForcedPlugin (   cls,
  name 
)
inherited
Produce a ForcedPlugin subclass from this GenericPlugin class.

The class is also registered.

Parameters
----------
name : `str`
    Name of plugin to register.

Definition at line 623 of file wrappers.py.

623  def makeForcedPlugin(cls, name):
624  """Produce a ForcedPlugin subclass from this GenericPlugin class.
625 
626  The class is also registered.
627 
628  Parameters
629  ----------
630  name : `str`
631  Name of plugin to register.
632  """
633  class ForcedFromGenericConfig(cls.ConfigClass, ForcedPluginConfig):
634  pass
635 
636  @register(name)
637  class ForcedFromGenericPlugin(ForcedPlugin):
638  ConfigClass = ForcedFromGenericConfig
639 
640  def __init__(self, config, name, schemaMapper, metadata, logName=None):
641  ForcedPlugin.__init__(self, config, name, schemaMapper, metadata, logName=logName)
642  schema = schemaMapper.editOutputSchema()
643  self._generic = cls(config, name, schema, metadata)
644 
645  def measure(self, measRecord, exposure, refRecord, refWcs):
646  center = exposure.getWcs().skyToPixel(refWcs.pixelToSky(refRecord.getCentroid()))
647  return self._generic.measure(measRecord, exposure, center)
648 
649  def measureN(self, measCat, exposure, refCat, refWcs):
650  return self._generic.measureN(measCat, exposure, refCat, refWcs)
651 
652  def fail(self, measRecord, error=None):
653  self._generic.fail(measRecord, error if error is not None else None)
654 
655  @staticmethod
656  def getExecutionOrder():
657  return cls.getExecutionOrder()
658 
659  def getTransformClass(self):
660  return self._generic.getTransformClass()
661 
662  return ForcedFromGenericPlugin

◆ makeLocalTransformMatrix()

def lsst.meas.base.plugins.EvaluateLocalWcsPlugin.makeLocalTransformMatrix (   self,
  wcs,
  center 
)
Create a local, linear approximation of the wcs transformation
matrix.

The approximation is created as if the center is at RA=0, DEC=0. All
comparing x,y coordinate are relative to the position of center. Matrix
is initially calculated with units arcseconds and then converted to
radians. This yields higher precision results due to quirks in AST.

Parameters
----------
wcs : `lsst.afw.geom.SkyWcs`
    Wcs to approximate
center : `lsst.geom.Point2D`
    Point at which to evaluate the LocalWcs.

Returns
-------
localMatrix : `numpy.ndarray`
    Matrix representation the local wcs approximation with units
    radians.

Definition at line 507 of file plugins.py.

507  def makeLocalTransformMatrix(self, wcs, center):
508  """Create a local, linear approximation of the wcs transformation
509  matrix.
510 
511  The approximation is created as if the center is at RA=0, DEC=0. All
512  comparing x,y coordinate are relative to the position of center. Matrix
513  is initially calculated with units arcseconds and then converted to
514  radians. This yields higher precision results due to quirks in AST.
515 
516  Parameters
517  ----------
518  wcs : `lsst.afw.geom.SkyWcs`
519  Wcs to approximate
520  center : `lsst.geom.Point2D`
521  Point at which to evaluate the LocalWcs.
522 
523  Returns
524  -------
525  localMatrix : `numpy.ndarray`
526  Matrix representation the local wcs approximation with units
527  radians.
528  """
529  skyCenter = wcs.pixelToSky(center)
530  localGnomonicWcs = lsst.afw.geom.makeSkyWcs(
531  center, skyCenter, np.diag((self._scale, self._scale)))
532  measurementToLocalGnomonic = wcs.getTransform().then(
533  localGnomonicWcs.getTransform().inverted()
534  )
535  localMatrix = measurementToLocalGnomonic.getJacobian(center)
536  return np.radians(localMatrix / 3600)
537 
538 

◆ makeSingleFramePlugin()

def lsst.meas.base.wrappers.GenericPlugin.makeSingleFramePlugin (   cls,
  name 
)
inherited
Produce a SingleFramePlugin subclass from this GenericPlugin class.

The class is also registered.

Parameters
----------
name : `str`
    Name of plugin to register.

Definition at line 582 of file wrappers.py.

582  def makeSingleFramePlugin(cls, name):
583  """Produce a SingleFramePlugin subclass from this GenericPlugin class.
584 
585  The class is also registered.
586 
587  Parameters
588  ----------
589  name : `str`
590  Name of plugin to register.
591  """
592  class SingleFrameFromGenericConfig(cls.ConfigClass, SingleFramePluginConfig):
593  pass
594 
595  @register(name)
596  class SingleFrameFromGenericPlugin(SingleFramePlugin):
597  ConfigClass = SingleFrameFromGenericConfig
598 
599  def __init__(self, config, name, schema, metadata, logName=None):
600  SingleFramePlugin.__init__(self, config, name, schema, metadata, logName=logName)
601  self._generic = cls(config, name, schema, metadata)
602 
603  def measure(self, measRecord, exposure):
604  center = measRecord.getCentroid()
605  return self._generic.measure(measRecord, exposure, center)
606 
607  def measureN(self, measCat, exposure, refCat, refWcs):
608  return self._generic.measureN(measCat, exposure, refCat, refWcs)
609 
610  def fail(self, measRecord, error=None):
611  self._generic.fail(measRecord, error if error is not None else None)
612 
613  @staticmethod
614  def getExecutionOrder():
615  return cls.getExecutionOrder()
616 
617  def getTransformClass(self):
618  return self._generic.getTransformClass()
619 
620  return SingleFrameFromGenericPlugin
621 

◆ measure()

def lsst.meas.base.plugins.EvaluateLocalWcsPlugin.measure (   self,
  measRecord,
  exposure,
  center 
)
Measure a single source.

It is the responsibility of this method to perform the desired
measurement and record the result in the `measRecord`.

Parameters
----------
measRecord : `lsst.afw.table.SourceRecord`
    Catalog record for the source being measured.
exposure : `lsst.afw.image.Exposure`
    Exposure on which the source is being measured.
center : `lsst.geom.Point2D`
    Pixel coordinates of the object.

Raises
------
MeasurementError
    Raised if the measurement fails for a known/justifiable reason.

Reimplemented from lsst.meas.base.wrappers.GenericPlugin.

Definition at line 499 of file plugins.py.

499  def measure(self, measRecord, exposure, center):
500  wcs = exposure.getWcs()
501  localMatrix = self.makeLocalTransformMatrix(wcs, center)
502  measRecord.set(self.cdMatrix11Key, localMatrix[0, 0])
503  measRecord.set(self.cdMatrix12Key, localMatrix[0, 1])
504  measRecord.set(self.cdMatrix21Key, localMatrix[1, 0])
505  measRecord.set(self.cdMatrix22Key, localMatrix[1, 1])
506 

◆ measureN()

def lsst.meas.base.wrappers.GenericPlugin.measureN (   self,
  measCat,
  exposure,
  refCat,
  refWcs 
)
inherited
Measure multiple sources.

It is the responsibility of this method to perform the desired
measurement and record the result in the `measCat`.

Parameters
----------
measCat : `lsst.afw.table.SourceCatalog`
    Catalog for the sources being measured.
exposure : `lsst.afw.image.Exposure`
    Exposure on which the source is being measured.
refCat : `lsst.afw.table.SourceCatalog`
    Reference catalog.
refWcs : `lsst.afw.image.Wcs`
    Astrometric solution for the reference image.

Raises
------
MeasurementError
    Raised if the measurement fails for a known/justifiable reason.

Definition at line 542 of file wrappers.py.

542  def measureN(self, measCat, exposure, refCat, refWcs):
543  """Measure multiple sources.
544 
545  It is the responsibility of this method to perform the desired
546  measurement and record the result in the `measCat`.
547 
548  Parameters
549  ----------
550  measCat : `lsst.afw.table.SourceCatalog`
551  Catalog for the sources being measured.
552  exposure : `lsst.afw.image.Exposure`
553  Exposure on which the source is being measured.
554  refCat : `lsst.afw.table.SourceCatalog`
555  Reference catalog.
556  refWcs : `lsst.afw.image.Wcs`
557  Astrometric solution for the reference image.
558 
559  Raises
560  ------
561  MeasurementError
562  Raised if the measurement fails for a known/justifiable reason.
563  """
564  raise NotImplementedError()
565 

Member Data Documentation

◆ APCORR_ORDER

float lsst.meas.base.pluginsBase.BasePlugin.APCORR_ORDER = 3.0
staticinherited

Definition at line 98 of file pluginsBase.py.

◆ cdMatrix11Key

lsst.meas.base.plugins.EvaluateLocalWcsPlugin.cdMatrix11Key

Definition at line 478 of file plugins.py.

◆ cdMatrix12Key

lsst.meas.base.plugins.EvaluateLocalWcsPlugin.cdMatrix12Key

Definition at line 483 of file plugins.py.

◆ cdMatrix21Key

lsst.meas.base.plugins.EvaluateLocalWcsPlugin.cdMatrix21Key

Definition at line 488 of file plugins.py.

◆ cdMatrix22Key

lsst.meas.base.plugins.EvaluateLocalWcsPlugin.cdMatrix22Key

Definition at line 493 of file plugins.py.

◆ CENTROID_ORDER

float lsst.meas.base.pluginsBase.BasePlugin.CENTROID_ORDER = 0.0
staticinherited

Definition at line 72 of file pluginsBase.py.

◆ config

lsst.meas.base.pluginsBase.BasePlugin.config
inherited

Definition at line 130 of file pluginsBase.py.

◆ ConfigClass

lsst.meas.base.plugins.EvaluateLocalWcsPlugin.ConfigClass = EvaluateLocalWcsPluginConfig
static

Definition at line 469 of file plugins.py.

◆ DEFAULT_CATALOGCALCULATION

float lsst.meas.base.pluginsBase.BasePlugin.DEFAULT_CATALOGCALCULATION = 4.0
staticinherited

Definition at line 108 of file pluginsBase.py.

◆ FLUX_ORDER

float lsst.meas.base.pluginsBase.BasePlugin.FLUX_ORDER = 2.0
staticinherited

Definition at line 89 of file pluginsBase.py.

◆ logName

lsst.meas.base.pluginsBase.BasePlugin.logName
inherited

Definition at line 132 of file pluginsBase.py.

◆ name

lsst.meas.base.pluginsBase.BasePlugin.name
inherited

Definition at line 131 of file pluginsBase.py.

◆ SHAPE_ORDER

float lsst.meas.base.pluginsBase.BasePlugin.SHAPE_ORDER = 1.0
staticinherited

Definition at line 80 of file pluginsBase.py.


The documentation for this class was generated from the following file:
lsst::pex::exceptions.wrappers.register
def register(cls)
Definition: wrappers.py:36
lsst::afw::geom.transform.transformContinued.cls
cls
Definition: transformContinued.py:33
lsst::afw::geom::makeSkyWcs
std::shared_ptr< SkyWcs > makeSkyWcs(TransformPoint2ToPoint2 const &pixelsToFieldAngle, lsst::geom::Angle const &orientation, bool flipX, lsst::geom::SpherePoint const &boresight, std::string const &projection="TAN")
Construct a FITS SkyWcs from camera geometry.
Definition: SkyWcs.cc:536
lsst::afw::geom.python.transform.then
then
Definition: transform.py:113
lsst::ip::isr.fringe.measure
def measure(mi, x, y, size, statistic, stats)
Definition: fringe.py:506