lsst.afw gd599963eb3+914da4f383
Public Types | Public Member Functions | Static Public Member Functions | List of all members
lsst::afw::table::CovarianceMatrixKey< T, N > Class Template Reference

#include <aggregates.h>

Inheritance diagram for lsst::afw::table::CovarianceMatrixKey< T, N >:
lsst::afw::table::FunctorKey< Eigen::Matrix< T, N, N > > lsst::afw::table::OutputFunctorKey< Eigen::Matrix< T, N, N > > lsst::afw::table::InputFunctorKey< Eigen::Matrix< T, N, N > >

Public Types

using ErrKeyArray = std::vector< Key< T > >
 
using CovarianceKeyArray = std::vector< Key< T > >
 
using NameArray = std::vector< std::string >
 
using Value = Eigen::Matrix< T, N, N >
 The data type for get and set. More...
 

Public Member Functions

 CovarianceMatrixKey ()
 Construct an invalid instance; must assign before subsequent use. More...
 
 CovarianceMatrixKey (ErrKeyArray const &err, CovarianceKeyArray const &cov=CovarianceKeyArray())
 Construct a from arrays of per-element Keys. More...
 
 CovarianceMatrixKey (SubSchema const &s, NameArray const &names)
 Construct from a subschema and an array of names for each parameter of the matrix. More...
 
 CovarianceMatrixKey (CovarianceMatrixKey const &)
 
 CovarianceMatrixKey (CovarianceMatrixKey &&)
 
CovarianceMatrixKeyoperator= (CovarianceMatrixKey const &)
 
CovarianceMatrixKeyoperator= (CovarianceMatrixKey &&)
 
 ~CovarianceMatrixKey () noexcept override
 
Eigen::Matrix< T, N, N > get (BaseRecord const &record) const override
 Get a covariance matrix from the given record. More...
 
void set (BaseRecord &record, Eigen::Matrix< T, N, N > const &value) const override
 Set a covariance matrix in the given record (uses only the lower triangle of the given matrix) More...
 
getElement (BaseRecord const &record, int i, int j) const
 Return the element in row i and column j. More...
 
void setElement (BaseRecord &record, int i, int j, T value) const
 Set the element in row i and column j. More...
 
bool isValid () const noexcept
 Return True if all the constituent error Keys are valid. More...
 
bool operator== (CovarianceMatrixKey const &other) const noexcept
 Compare the FunctorKey for equality with another, using its constituent Keys. More...
 
bool operator!= (CovarianceMatrixKey const &other) const noexcept
 
std::size_t hash_value () const noexcept
 Return a hash of this object. More...
 

Static Public Member Functions

static CovarianceMatrixKey addFields (Schema &schema, std::string const &prefix, NameArray const &names, std::string const &unit, bool diagonalOnly=false)
 Add covariance matrix fields to a Schema, and return a CovarianceMatrixKey to manage them. More...
 
static CovarianceMatrixKey addFields (Schema &schema, std::string const &prefix, NameArray const &names, NameArray const &units, bool diagonalOnly=false)
 Add covariance matrix fields to a Schema, and return a CovarianceMatrixKey to manage them. More...
 

Detailed Description

template<typename T, int N>
class lsst::afw::table::CovarianceMatrixKey< T, N >

Definition at line 432 of file aggregates.h.

Member Typedef Documentation

◆ CovarianceKeyArray

template<typename T , int N>
using lsst::afw::table::CovarianceMatrixKey< T, N >::CovarianceKeyArray = std::vector<Key<T> >

Definition at line 435 of file aggregates.h.

◆ ErrKeyArray

template<typename T , int N>
using lsst::afw::table::CovarianceMatrixKey< T, N >::ErrKeyArray = std::vector<Key<T> >

Definition at line 434 of file aggregates.h.

◆ NameArray

template<typename T , int N>
using lsst::afw::table::CovarianceMatrixKey< T, N >::NameArray = std::vector<std::string>

Definition at line 436 of file aggregates.h.

◆ Value

using lsst::afw::table::FunctorKey< Eigen::Matrix< T, N, N > >::Value = Eigen::Matrix< T, N, N >
inherited

The data type for get and set.

Definition at line 77 of file FunctorKey.h.

Constructor & Destructor Documentation

◆ CovarianceMatrixKey() [1/5]

template<typename T , int N>
lsst::afw::table::CovarianceMatrixKey< T, N >::CovarianceMatrixKey ( )
default

Construct an invalid instance; must assign before subsequent use.

◆ CovarianceMatrixKey() [2/5]

template<typename T , int N>
lsst::afw::table::CovarianceMatrixKey< T, N >::CovarianceMatrixKey ( ErrKeyArray const &  err,
CovarianceKeyArray const &  cov = CovarianceKeyArray() 
)
explicit

Construct a from arrays of per-element Keys.

The err array Keys should point to the square root of the diagonal of the covariance matrix. The cov array Keys should point to the off-diagonal elements of the lower-triangle, packed first in rows, then in columns (or equivalently, in the upper-triangle, packed first in columns, then in rows). For a 4x4 matrix, the order is is:

err[0]^2   cov[0]     cov[1]     cov[3]
cov[0]     err[1]^2   cov[2]     cov[4]
cov[1]     cov[2]     err[2]^2   cov[5]
cov[3]     cov[4]     cov[5]     err[3]^2

The cov array may also be empty, to indicate that no off-diagonal elements are stored, and should be set to zero. If not empty, the size of the cov matrix must be exactly n*(n-1)/2, where n is the size of the err matrix.

Definition at line 188 of file aggregates.cc.

◆ CovarianceMatrixKey() [3/5]

template<typename T , int N>
lsst::afw::table::CovarianceMatrixKey< T, N >::CovarianceMatrixKey ( SubSchema const &  s,
NameArray const &  names 
)

Construct from a subschema and an array of names for each parameter of the matrix.

The field names should match the following convention:

  • diagonal elements should have names like "p1Err", where "p1" is the name of the parameter, and should contain the square root of the variance in that parameter.
  • off-diagonal elements hould have names like "p1_p2_Cov", where "p1" and "p2" are names of parameters. For example, for the covariance matrix of a position, we'd look for "xErr", "yErr", and "x_y_Cov".

Definition at line 206 of file aggregates.cc.

◆ CovarianceMatrixKey() [4/5]

template<typename T , int N>
lsst::afw::table::CovarianceMatrixKey< T, N >::CovarianceMatrixKey ( CovarianceMatrixKey< T, N > const &  )
default

◆ CovarianceMatrixKey() [5/5]

template<typename T , int N>
lsst::afw::table::CovarianceMatrixKey< T, N >::CovarianceMatrixKey ( CovarianceMatrixKey< T, N > &&  )
default

◆ ~CovarianceMatrixKey()

template<typename T , int N>
lsst::afw::table::CovarianceMatrixKey< T, N >::~CovarianceMatrixKey ( )
overridedefaultnoexcept

Member Function Documentation

◆ addFields() [1/2]

template<typename T , int N>
CovarianceMatrixKey< T, N > lsst::afw::table::CovarianceMatrixKey< T, N >::addFields ( Schema schema,
std::string const &  prefix,
NameArray const &  names,
NameArray const &  units,
bool  diagonalOnly = false 
)
static

Add covariance matrix fields to a Schema, and return a CovarianceMatrixKey to manage them.

Parameters
[out]schemaSchema to add fields to.
[in]prefixString used to form the first part of all field names. Suffixes of the form '_xErr' and '_x_y_Cov' will be added to form the full field names (using names={'x', 'y'} as an example).
[in]unitsVector of units for for error (standard deviation) values; covariance matrix elements will have "{units[i]} {units[j]}" or "{units[i]}^2", depending on whether units[i] == units[j].
[in]namesVector of strings containing the names of the quantities the covariance matrix represents the uncertainty of.
[in]diagonalOnlyIf true, only create fields for the error values.

Definition at line 149 of file aggregates.cc.

◆ addFields() [2/2]

template<typename T , int N>
CovarianceMatrixKey< T, N > lsst::afw::table::CovarianceMatrixKey< T, N >::addFields ( Schema schema,
std::string const &  prefix,
NameArray const &  names,
std::string const &  unit,
bool  diagonalOnly = false 
)
static

Add covariance matrix fields to a Schema, and return a CovarianceMatrixKey to manage them.

Parameters
[out]schemaSchema to add fields to.
[in]prefixString used to form the first part of all field names. Suffixes of the form '_xErr' and '_x_y_Cov' will be added to form the full field names (using names={'x', 'y'} as an example).
[in]unitUnit for for error (standard deviation) values; covariance matrix elements will be unit^2.
[in]namesVector of strings containing the names of the quantities the covariance matrix represents the uncertainty of.
[in]diagonalOnlyIf true, only create fields for the error values.

Definition at line 141 of file aggregates.cc.

◆ get()

template<typename T , int N>
Eigen::Matrix< T, N, N > lsst::afw::table::CovarianceMatrixKey< T, N >::get ( BaseRecord const &  record) const
overridevirtual

Get a covariance matrix from the given record.

Implements lsst::afw::table::OutputFunctorKey< Eigen::Matrix< T, N, N > >.

Definition at line 259 of file aggregates.cc.

◆ getElement()

template<typename T , int N>
T lsst::afw::table::CovarianceMatrixKey< T, N >::getElement ( BaseRecord const &  record,
int  i,
int  j 
) const

Return the element in row i and column j.

Definition at line 336 of file aggregates.cc.

◆ hash_value()

template<typename T , int N>
std::size_t lsst::afw::table::CovarianceMatrixKey< T, N >::hash_value
noexcept

Return a hash of this object.

Definition at line 329 of file aggregates.cc.

◆ isValid()

template<typename T , int N>
bool lsst::afw::table::CovarianceMatrixKey< T, N >::isValid
noexcept

Return True if all the constituent error Keys are valid.

Note that if the only one or more off-diagonal keys are invalid, we assume that means those terms are zero, not that the whole FunctorKey is invalid.

Definition at line 294 of file aggregates.cc.

◆ operator!=()

template<typename T , int N>
bool lsst::afw::table::CovarianceMatrixKey< T, N >::operator!= ( CovarianceMatrixKey< T, N > const &  other) const
inlinenoexcept

Definition at line 537 of file aggregates.h.

◆ operator=() [1/2]

template<typename T , int N>
CovarianceMatrixKey< T, N > & lsst::afw::table::CovarianceMatrixKey< T, N >::operator= ( CovarianceMatrixKey< T, N > &&  )
default

◆ operator=() [2/2]

template<typename T , int N>
CovarianceMatrixKey< T, N > & lsst::afw::table::CovarianceMatrixKey< T, N >::operator= ( CovarianceMatrixKey< T, N > const &  )
default

◆ operator==()

template<typename T , int N>
bool lsst::afw::table::CovarianceMatrixKey< T, N >::operator== ( CovarianceMatrixKey< T, N > const &  other) const
noexcept

Compare the FunctorKey for equality with another, using its constituent Keys.

Definition at line 304 of file aggregates.cc.

◆ set()

template<typename T , int N>
void lsst::afw::table::CovarianceMatrixKey< T, N >::set ( BaseRecord record,
Eigen::Matrix< T, N, N > const &  value 
) const
overridevirtual

Set a covariance matrix in the given record (uses only the lower triangle of the given matrix)

Implements lsst::afw::table::InputFunctorKey< Eigen::Matrix< T, N, N > >.

Definition at line 278 of file aggregates.cc.

◆ setElement()

template<typename T , int N>
void lsst::afw::table::CovarianceMatrixKey< T, N >::setElement ( BaseRecord record,
int  i,
int  j,
value 
) const

Set the element in row i and column j.

Definition at line 349 of file aggregates.cc.


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