LSST Applications g063fba187b+fee0456c91,g0f08755f38+ea96e5a5a3,g1653933729+a8ce1bb630,g168dd56ebc+a8ce1bb630,g1a2382251a+90257ff92a,g20f6ffc8e0+ea96e5a5a3,g217e2c1bcf+937a289c59,g28da252d5a+daa7da44eb,g2bbee38e9b+253935c60e,g2bc492864f+253935c60e,g3156d2b45e+6e55a43351,g32e5bea42b+31359a2a7a,g347aa1857d+253935c60e,g35bb328faa+a8ce1bb630,g3a166c0a6a+253935c60e,g3b1af351f3+a8ce1bb630,g3e281a1b8c+c5dd892a6c,g414038480c+416496e02f,g41af890bb2+afe91b1188,g599934f4f4+0db33f7991,g7af13505b9+e36de7bce6,g80478fca09+da231ba887,g82479be7b0+a4516e59e3,g858d7b2824+ea96e5a5a3,g89c8672015+f4add4ffd5,g9125e01d80+a8ce1bb630,ga5288a1d22+bc6ab8dfbd,gb58c049af0+d64f4d3760,gc28159a63d+253935c60e,gcab2d0539d+3f2b72788c,gcf0d15dbbd+4ea9c45075,gda6a2b7d83+4ea9c45075,gdaeeff99f8+1711a396fd,ge79ae78c31+253935c60e,gef2f8181fd+3031e3cf99,gf0baf85859+c1f95f4921,gfa517265be+ea96e5a5a3,gfa999e8aa5+17cd334064,w.2024.50
LSST Data Management Base Package
|
A base class for parametrizations of the "core" of an ellipse - the ellipticity and size. More...
#include <BaseCore.h>
Classes | |
struct | Converter |
class | Convolution |
A temporary-only expression object for ellipse core convolution. More... | |
class | GridTransform |
A temporary-only expression object representing an lsst::geom::LinearTransform that maps the ellipse core to a unit circle. More... | |
struct | Registrar |
class | Transformer |
A temporary-only expression object for ellipse core transformations. More... | |
Public Types | |
using | ParameterVector = Eigen::Vector3d |
Parameter vector type. | |
using | Jacobian = Eigen::Matrix3d |
Parameter Jacobian matrix type. | |
Public Member Functions | |
virtual std::string | getName () const =0 |
Return a string that identifies this parametrization. | |
std::shared_ptr< BaseCore > | clone () const |
Deep-copy the Core. | |
virtual void | normalize ()=0 |
Put the parameters into a "standard form", and throw InvalidParameterError if they cannot be normalized. | |
void | grow (double buffer) |
Increase the major and minor radii of the ellipse core by the given buffer. | |
void | scale (double factor) |
Scale the size of the ellipse core by the given factor. | |
double | getArea () const |
Return the area of the ellipse core. | |
double | getDeterminantRadius () const |
Return the radius defined as the 4th root of the determinant of the quadrupole matrix. | |
double | getTraceRadius () const |
Return the radius defined as the square root of one half the trace of the quadrupole matrix. | |
Coordinate transforms | |
These member functions transform the ellipse by the given lsst::geom::LinearTransform. The transform can be done in-place by calling inPlace() on the returned expression object, or returned as a new shared_ptr by calling copy(). | |
Transformer | transform (lsst::geom::LinearTransform const &transform) |
Return the transform that maps the ellipse to the unit circle. | |
Transformer const | transform (lsst::geom::LinearTransform const &transform) const |
Return the transform that maps the ellipse to the unit circle. | |
GridTransform const | getGridTransform () const |
Return the transform that maps the ellipse to the unit circle. | |
Static Public Member Functions | |
static std::shared_ptr< BaseCore > | make (std::string const &name) |
static std::shared_ptr< BaseCore > | make (std::string const &name, ParameterVector const ¶meters) |
static std::shared_ptr< BaseCore > | make (std::string const &name, double v1, double v2, double v3) |
static std::shared_ptr< BaseCore > | make (std::string const &name, BaseCore const &other) |
static std::shared_ptr< BaseCore > | make (std::string const &name, Transformer const &other) |
static std::shared_ptr< BaseCore > | make (std::string const &name, Convolution const &other) |
Convolve two bivariate Gaussians defined by their 1-sigma ellipses. | |
class | Parametric |
Return the size of the bounding box for the ellipse core. | |
Convolution | convolve (BaseCore const &other) |
Return the size of the bounding box for the ellipse core. | |
Convolution const | convolve (BaseCore const &other) const |
Return the size of the bounding box for the ellipse core. | |
lsst::geom::Extent2D | computeDimensions () const |
Return the size of the bounding box for the ellipse core. | |
virtual void | readParameters (double const *iter)=0 |
Return the size of the bounding box for the ellipse core. | |
virtual void | writeParameters (double *iter) const =0 |
Return the size of the bounding box for the ellipse core. | |
ParameterVector const | getParameterVector () const |
Return the core parameters as a vector. | |
void | setParameterVector (ParameterVector const &vector) |
Set the core parameters from a vector. | |
bool | operator== (BaseCore const &other) const |
Compare two ellipse cores for equality. | |
bool | operator!= (BaseCore const &other) const |
Compare two ellipse cores for inequality. | |
BaseCore & | operator= (BaseCore const &other) |
Set the parameters of this ellipse core from another. | |
BaseCore & | operator= (BaseCore &&other) |
Return the size of the bounding box for the ellipse core. | |
Jacobian | dAssign (BaseCore const &other) |
Assign other to this and return the derivative of the conversion, d(this)/d(other). | |
template<typename Output > | |
Converter< Output > | as () const |
Convert this to the core type specified as a template parameter. | |
virtual | ~BaseCore ()=default |
Return the size of the bounding box for the ellipse core. | |
BaseCore ()=default | |
Return the size of the bounding box for the ellipse core. | |
virtual std::shared_ptr< BaseCore > | _clone () const =0 |
Return the size of the bounding box for the ellipse core. | |
virtual void | _assignToQuadrupole (double &ixx, double &iyy, double &ixy) const =0 |
Return the size of the bounding box for the ellipse core. | |
virtual void | _assignFromQuadrupole (double ixx, double iyy, double ixy)=0 |
Return the size of the bounding box for the ellipse core. | |
virtual void | _assignToAxes (double &a, double &b, double &theta) const =0 |
Return the size of the bounding box for the ellipse core. | |
virtual void | _assignFromAxes (double a, double b, double theta)=0 |
Return the size of the bounding box for the ellipse core. | |
virtual Jacobian | _dAssignToQuadrupole (double &ixx, double &iyy, double &ixy) const =0 |
Return the size of the bounding box for the ellipse core. | |
virtual Jacobian | _dAssignFromQuadrupole (double ixx, double iyy, double ixy)=0 |
Return the size of the bounding box for the ellipse core. | |
virtual Jacobian | _dAssignToAxes (double &a, double &b, double &theta) const =0 |
Return the size of the bounding box for the ellipse core. | |
virtual Jacobian | _dAssignFromAxes (double a, double b, double theta)=0 |
Return the size of the bounding box for the ellipse core. | |
static void | registerSubclass (std::shared_ptr< BaseCore > const &example) |
Return the size of the bounding box for the ellipse core. | |
static void | _assignQuadrupoleToAxes (double ixx, double iyy, double ixy, double &a, double &b, double &theta) |
Return the size of the bounding box for the ellipse core. | |
static Jacobian | _dAssignQuadrupoleToAxes (double ixx, double iyy, double ixy, double &a, double &b, double &theta) |
Return the size of the bounding box for the ellipse core. | |
static void | _assignAxesToQuadrupole (double a, double b, double theta, double &ixx, double &iyy, double &ixy) |
Return the size of the bounding box for the ellipse core. | |
static Jacobian | _dAssignAxesToQuadrupole (double a, double b, double theta, double &ixx, double &iyy, double &ixy) |
Return the size of the bounding box for the ellipse core. | |
A base class for parametrizations of the "core" of an ellipse - the ellipticity and size.
A subclass of BaseCore provides a particular interpretation of the three pointing point values that define an ellipse's size and ellipticity (including position angle). All core subclasses are implicitly convertible and can be assigned to from any other core.
Definition at line 55 of file BaseCore.h.
using lsst::afw::geom::ellipses::BaseCore::Jacobian = Eigen::Matrix3d |
Parameter Jacobian matrix type.
Definition at line 64 of file BaseCore.h.
using lsst::afw::geom::ellipses::BaseCore::ParameterVector = Eigen::Vector3d |
Parameter vector type.
Definition at line 63 of file BaseCore.h.
|
virtualdefault |
Return the size of the bounding box for the ellipse core.
|
protecteddefault |
Return the size of the bounding box for the ellipse core.
|
staticprotected |
|
protectedpure virtual |
Return the size of the bounding box for the ellipse core.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
|
protectedpure virtual |
Return the size of the bounding box for the ellipse core.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
|
staticprotected |
Return the size of the bounding box for the ellipse core.
Definition at line 183 of file BaseCore.cc.
|
protectedpure virtual |
Return the size of the bounding box for the ellipse core.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
|
protectedpure virtual |
Return the size of the bounding box for the ellipse core.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
|
protectedpure virtual |
Return the size of the bounding box for the ellipse core.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
|
staticprotected |
Return the size of the bounding box for the ellipse core.
Definition at line 231 of file BaseCore.cc.
|
protectedpure virtual |
Return the size of the bounding box for the ellipse core.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
|
protectedpure virtual |
Return the size of the bounding box for the ellipse core.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
|
staticprotected |
Return the size of the bounding box for the ellipse core.
Definition at line 193 of file BaseCore.cc.
|
protectedpure virtual |
Return the size of the bounding box for the ellipse core.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
|
protectedpure virtual |
Return the size of the bounding box for the ellipse core.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
|
inline |
Convert this to the core type specified as a template parameter.
Definition at line 238 of file BaseCore.h.
|
inline |
Deep-copy the Core.
Definition at line 82 of file BaseCore.h.
lsst::geom::Extent2D lsst::afw::geom::ellipses::BaseCore::computeDimensions | ( | ) | const |
Return the size of the bounding box for the ellipse core.
Definition at line 129 of file BaseCore.cc.
|
inline |
Return the size of the bounding box for the ellipse core.
Definition at line 91 of file Convolution.h.
|
inline |
Return the size of the bounding box for the ellipse core.
Definition at line 95 of file Convolution.h.
BaseCore::Jacobian lsst::afw::geom::ellipses::BaseCore::dAssign | ( | BaseCore const & | other | ) |
Assign other to this and return the derivative of the conversion, d(this)/d(other).
Definition at line 168 of file BaseCore.cc.
double lsst::afw::geom::ellipses::BaseCore::getArea | ( | ) | const |
Return the area of the ellipse core.
Definition at line 111 of file BaseCore.cc.
double lsst::afw::geom::ellipses::BaseCore::getDeterminantRadius | ( | ) | const |
Return the radius defined as the 4th root of the determinant of the quadrupole matrix.
The determinant radius is equal to the standard radius for a circle, and its square times pi is the area of the ellipse.
Definition at line 117 of file BaseCore.cc.
|
inline |
Return the transform that maps the ellipse to the unit circle.
The returned proxy object is implicitly convertible to lsst::geom::LinearTransform and also supports differentiation.
Definition at line 110 of file GridTransform.h.
|
pure virtual |
Return a string that identifies this parametrization.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
BaseCore::ParameterVector const lsst::afw::geom::ellipses::BaseCore::getParameterVector | ( | ) | const |
Return the core parameters as a vector.
Definition at line 143 of file BaseCore.cc.
double lsst::afw::geom::ellipses::BaseCore::getTraceRadius | ( | ) | const |
Return the radius defined as the square root of one half the trace of the quadrupole matrix.
The trace radius is equal to the standard radius for a circle.
Definition at line 123 of file BaseCore.cc.
void lsst::afw::geom::ellipses::BaseCore::grow | ( | double | buffer | ) |
Increase the major and minor radii of the ellipse core by the given buffer.
Definition at line 95 of file BaseCore.cc.
|
static |
Definition at line 55 of file BaseCore.cc.
|
static |
Definition at line 73 of file BaseCore.cc.
|
static |
Definition at line 85 of file BaseCore.cc.
|
static |
Definition at line 67 of file BaseCore.cc.
|
static |
Definition at line 61 of file BaseCore.cc.
|
static |
Definition at line 79 of file BaseCore.cc.
|
pure virtual |
Put the parameters into a "standard form", and throw InvalidParameterError if they cannot be normalized.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
|
inline |
Compare two ellipse cores for inequality.
Ellipses are only equal if they have the same type.
Definition at line 167 of file BaseCore.h.
Return the size of the bounding box for the ellipse core.
Definition at line 166 of file BaseCore.cc.
Set the parameters of this ellipse core from another.
This does not change the parametrization of the ellipse core.
Definition at line 155 of file BaseCore.cc.
bool lsst::afw::geom::ellipses::BaseCore::operator== | ( | BaseCore const & | other | ) | const |
Compare two ellipse cores for equality.
Ellipse cores are only equal if they have the same type.
Definition at line 151 of file BaseCore.cc.
|
pure virtual |
Return the size of the bounding box for the ellipse core.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
|
staticprotected |
Return the size of the bounding box for the ellipse core.
Definition at line 91 of file BaseCore.cc.
void lsst::afw::geom::ellipses::BaseCore::scale | ( | double | factor | ) |
Scale the size of the ellipse core by the given factor.
Definition at line 103 of file BaseCore.cc.
void lsst::afw::geom::ellipses::BaseCore::setParameterVector | ( | ParameterVector const & | vector | ) |
Set the core parameters from a vector.
Definition at line 149 of file BaseCore.cc.
|
inline |
Return the transform that maps the ellipse to the unit circle.
The returned proxy object is implicitly convertible to lsst::geom::LinearTransform and also supports differentiation.
Definition at line 116 of file Transformer.h.
|
inline |
Return the transform that maps the ellipse to the unit circle.
The returned proxy object is implicitly convertible to lsst::geom::LinearTransform and also supports differentiation.
Definition at line 120 of file Transformer.h.
|
pure virtual |
Return the size of the bounding box for the ellipse core.
Implemented in lsst::afw::geom::ellipses::Axes, lsst::afw::geom::ellipses::Quadrupole, and lsst::afw::geom::ellipses::Separable< Ellipticity_, Radius_ >.
|
friend |
Return the size of the bounding box for the ellipse core.
Definition at line 189 of file BaseCore.h.