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 | 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 465 of file plugins.py.

Constructor & Destructor Documentation

◆ __init__()

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

Definition at line 478 of file plugins.py.

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

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 475 of file plugins.py.

475  def getExecutionOrder(cls):
476  return BasePlugin.FLUX_ORDER
477 

◆ 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  # Forced photometry tasks should almost be configured with a
647  # centroider (populating measRecord.getCentroid()) that
648  # transforms the reference centroid, but we respect their
649  # decision if they decided to re-centroid (or do something more
650  # unusual) on the image being measured.
651  center = measRecord.getCentroid()
652  return self._generic.measure(measRecord, exposure, center)
653 
654  def measureN(self, measCat, exposure, refCat, refWcs):
655  return self._generic.measureN(measCat, exposure, refCat, refWcs)
656 
657  def fail(self, measRecord, error=None):
658  self._generic.fail(measRecord, error if error is not None else None)
659 
660  @staticmethod
661  def getExecutionOrder():
662  return cls.getExecutionOrder()
663 
664  def getTransformClass(self):
665  return self._generic.getTransformClass()
666 
667  return ForcedFromGenericPlugin
def measure(mi, x, y, size, statistic, stats)
Definition: fringe.py:517

◆ 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 509 of file plugins.py.

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

◆ 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 501 of file plugins.py.

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

◆ 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 480 of file plugins.py.

◆ cdMatrix12Key

lsst.meas.base.plugins.EvaluateLocalWcsPlugin.cdMatrix12Key

Definition at line 485 of file plugins.py.

◆ cdMatrix21Key

lsst.meas.base.plugins.EvaluateLocalWcsPlugin.cdMatrix21Key

Definition at line 490 of file plugins.py.

◆ cdMatrix22Key

lsst.meas.base.plugins.EvaluateLocalWcsPlugin.cdMatrix22Key

Definition at line 495 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 471 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: