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 Types | Public Member Functions | Static Public Member Functions | List of all members
lsst::shapelet::ShapeletFunctionKey Class Referenceabstract

Class that maps ShapeletFunction objects to fields in afw::table objects. More...

#include <FunctorKeys.h>

Inheritance diagram for lsst::shapelet::ShapeletFunctionKey:
lsst::afw::table::FunctorKey< ShapeletFunction > lsst::afw::table::OutputFunctorKey< T > lsst::afw::table::InputFunctorKey< T >

Public Types

using Value = ShapeletFunction
 The data type for get and set. More...
 

Public Member Functions

 ShapeletFunctionKey ()
 Default constructor; instance will not be usuable unless subsequently assigned to. More...
 
 ShapeletFunctionKey (afw::table::EllipseKey const &ellipse, afw::table::ArrayKey< double > const &coefficients, BasisTypeEnum basisType=HERMITE)
 Construct from individual Keys/FunctorKeys. More...
 
 ShapeletFunctionKey (afw::table::SubSchema const &s, BasisTypeEnum basisType=HERMITE)
 Construct from a subschema, assuming the necesary subfields. More...
 
virtual ShapeletFunction get (afw::table::BaseRecord const &record) const
 Get a ShapeletFunction from the given record. More...
 
virtual void set (afw::table::BaseRecord &record, ShapeletFunction const &value) const
 Set a ShapeletFunction in the given record. More...
 
bool operator== (ShapeletFunctionKey const &other) const
 Compare the FunctorKey for equality with another, using the underlying Ixx, Iyy, Ixy Keys. More...
 
bool operator!= (ShapeletFunctionKey const &other) const
 
bool isValid () const
 Return True if all the constituent Keys are valid. More...
 
afw::table::EllipseKey const & getEllipse () const
 Return a FunctorKey that extracts just the Ellipse. More...
 
afw::table::ArrayKey< double > const & getCoefficients () const
 Return a FunctorKey that extracts just the coefficients. More...
 
int getOrder () const
 Return the shapelet order. More...
 
BasisTypeEnum getBasisType () const
 Return the type of the shapelet basis. More...
 
virtual void set (BaseRecord &record, T const &value) const =0
 

Static Public Member Functions

static ShapeletFunctionKey addFields (afw::table::Schema &schema, std::string const &name, std::string const &doc, std::string const &ellipseUnit, std::string const &coeffUnit, int order, BasisTypeEnum basisType=HERMITE)
 Add the necessary fields for saving a ShapeletFunction to a Schema. More...
 

Detailed Description

Class that maps ShapeletFunction objects to fields in afw::table objects.

A ShapeletFunctionKey manages a set of fields with a common prefix and the following suffixes:

As with all FunctorKeys, a ShapeletFunctorKey can be used to directly get or set objects on an afw::table::BaseRecord, just as with a true Key.

Definition at line 45 of file FunctorKeys.h.

Member Typedef Documentation

◆ Value

The data type for get and set.

Definition at line 77 of file FunctorKey.h.

Constructor & Destructor Documentation

◆ ShapeletFunctionKey() [1/3]

lsst::shapelet::ShapeletFunctionKey::ShapeletFunctionKey ( )
inline

Default constructor; instance will not be usuable unless subsequently assigned to.

Definition at line 74 of file FunctorKeys.h.

74 : _ellipseKey(), _coefficientsKey(), _order(-1), _basisType(HERMITE) {}
@ HERMITE
Cartesian shapelets or Gauss-Hermite functions, as defined in Refregier, 2003.
Definition: constants.h:53

◆ ShapeletFunctionKey() [2/3]

lsst::shapelet::ShapeletFunctionKey::ShapeletFunctionKey ( afw::table::EllipseKey const &  ellipse,
afw::table::ArrayKey< double > const &  coefficients,
BasisTypeEnum  basisType = HERMITE 
)
inline

Construct from individual Keys/FunctorKeys.

Definition at line 77 of file FunctorKeys.h.

81  :
82  _ellipseKey(ellipse),
83  _coefficientsKey(coefficients),
84  _order(computeOrder(coefficients.getSize())),
85  _basisType(basisType)
86  {}
ndarray::Array< double const, 2, 2 > coefficients
int computeOrder(int size)
Infer the order of a shapelet expansion from the number of coefficients.
Definition: constants.h:104

◆ ShapeletFunctionKey() [3/3]

lsst::shapelet::ShapeletFunctionKey::ShapeletFunctionKey ( afw::table::SubSchema const &  s,
BasisTypeEnum  basisType = HERMITE 
)
inline

Construct from a subschema, assuming the necesary subfields.

If a schema has e.g. "a_xx", "a_0", etc. fields, this constructor allows you to construct a ShapeletFunctionKey via:

table::Schema schema
Definition: python.h:134
ShapeletFunctionKey()
Default constructor; instance will not be usuable unless subsequently assigned to.
Definition: FunctorKeys.h:74

Definition at line 97 of file FunctorKeys.h.

97  :
98  _ellipseKey(s), _coefficientsKey(s),
99  _order(computeOrder(_coefficientsKey.getSize())),
100  _basisType(basisType)
101  {}
std::size_t getSize() const noexcept
Return the number of elements in the array.
Definition: arrays.h:108

Member Function Documentation

◆ addFields()

static ShapeletFunctionKey lsst::shapelet::ShapeletFunctionKey::addFields ( afw::table::Schema schema,
std::string const &  name,
std::string const &  doc,
std::string const &  ellipseUnit,
std::string const &  coeffUnit,
int  order,
BasisTypeEnum  basisType = HERMITE 
)
static

Add the necessary fields for saving a ShapeletFunction to a Schema.

Parameters
[in,out]schemaSchema to add fields to.
[in]nameName prefix for all fields.
[in]docString used as the documentation for the fields.
[in]ellipseUnitString used as the unit for the ellipse ("<ellipseUnit>^2" will be used for the Quadrupole moments).
[in]coeffUnitString used as the unit for the coefficient vector
[in]orderOrder of the ShapeletFunction to be saved.
[in]basisTypeType of shapelet basis (HERMITE or LAGUERRE) to be saved.

This method provides only basic exception safety - the schema may be (partially) modified even if an exception is thrown.

◆ get()

virtual ShapeletFunction lsst::shapelet::ShapeletFunctionKey::get ( afw::table::BaseRecord const &  record) const
virtual

Get a ShapeletFunction from the given record.

Implements lsst::afw::table::OutputFunctorKey< T >.

◆ getBasisType()

BasisTypeEnum lsst::shapelet::ShapeletFunctionKey::getBasisType ( ) const
inline

Return the type of the shapelet basis.

Definition at line 131 of file FunctorKeys.h.

131 { return _basisType; }

◆ getCoefficients()

afw::table::ArrayKey<double> const& lsst::shapelet::ShapeletFunctionKey::getCoefficients ( ) const
inline

Return a FunctorKey that extracts just the coefficients.

Definition at line 125 of file FunctorKeys.h.

125 { return _coefficientsKey; }

◆ getEllipse()

afw::table::EllipseKey const& lsst::shapelet::ShapeletFunctionKey::getEllipse ( ) const
inline

Return a FunctorKey that extracts just the Ellipse.

Definition at line 122 of file FunctorKeys.h.

122 { return _ellipseKey; }

◆ getOrder()

int lsst::shapelet::ShapeletFunctionKey::getOrder ( ) const
inline

Return the shapelet order.

Definition at line 128 of file FunctorKeys.h.

128 { return _order; }

◆ isValid()

bool lsst::shapelet::ShapeletFunctionKey::isValid ( ) const
inline

Return True if all the constituent Keys are valid.

Definition at line 119 of file FunctorKeys.h.

119 { return _ellipseKey.isValid() && _coefficientsKey.isValid(); }
bool isValid() const noexcept
Return True if the FunctorKey contains valid scalar keys.
Definition: arrays.h:137
bool isValid() const noexcept
Return True if all the constituent Keys are valid.
Definition: aggregates.h:418

◆ operator!=()

bool lsst::shapelet::ShapeletFunctionKey::operator!= ( ShapeletFunctionKey const &  other) const
inline

Definition at line 115 of file FunctorKeys.h.

115 { return !(*this == other); }

◆ operator==()

bool lsst::shapelet::ShapeletFunctionKey::operator== ( ShapeletFunctionKey const &  other) const
inline

Compare the FunctorKey for equality with another, using the underlying Ixx, Iyy, Ixy Keys.

Definition at line 111 of file FunctorKeys.h.

111  {
112  return _order == other._order && _ellipseKey == other._ellipseKey
113  && _coefficientsKey == other._coefficientsKey;
114  }

◆ set() [1/2]

virtual void lsst::shapelet::ShapeletFunctionKey::set ( afw::table::BaseRecord record,
ShapeletFunction const &  value 
) const
virtual

Set a ShapeletFunction in the given record.

◆ set() [2/2]

template<typename T >
virtual void lsst::afw::table::InputFunctorKey< T >::set ( BaseRecord record,
T const &  value 
) const
pure virtualinherited

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