File Ellipse.h

namespace lsst

Class for a simple mapping implementing a generic AstrometryTransform.

Remove all non-astronomical counts from the Chunk Exposure’s pixels.

Forward declarations for lsst::utils::Cache

For details on the Cache class, see the Cache.h file.

It uses a template rather than a pointer so that the derived classes can use the specifics of the transform. The class simplePolyMapping overloads a few routines.

A base class for image defects

Numeric constants used by the Integrate.h integrator routines.

Compute Image Statistics

Note

Gauss-Kronrod-Patterson quadrature coefficients for use in quadpack routine qng. These coefficients were calculated with 101 decimal digit arithmetic by L. W. Fullerton, Bell Labs, Nov 1981.

Note

The Statistics class itself can only handle lsst::afw::image::MaskedImage() types. The philosophy has been to handle other types by making them look like lsst::afw::image::MaskedImage() and reusing that code. Users should have no need to instantiate a Statistics object directly, but should use the overloaded makeStatistics() factory functions.

namespace afw
namespace geom
namespace ellipses
class Ellipse
#include <Ellipse.h>

An ellipse defined by an arbitrary BaseCore and a center point.

An ellipse is composed of its center coordinate and its Core - a parametrization of the ellipticity and size of the ellipse. Setting the core of an ellipse never changes the type of the contained core, it merely sets the parameters of that core by converting the parameters.

Coordinate transforms

These member functions transform the ellipse by the given lsst::geom::AffineTransform. 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().

Ellipse::Transformer transform(lsst::geom::AffineTransform const &transform)
Ellipse::Transformer const transform(lsst::geom::AffineTransform const &transform) const

Convolve two bivariate Gaussians defined by their 1-sigma ellipses.

Ellipse::Convolution convolve(Ellipse const &other)
Ellipse::Convolution const convolve(Ellipse const &other) const

Public Types

enum ParameterEnum

Values:

X = 3
Y = 4
typedef Eigen::Matrix<double, 5, 1> ParameterVector

Proxy return type for Ellipse::convolve().

Parameter vector type.

Public Functions

lsst::geom::Point2D const &getCenter() const

Return the center point.

lsst::geom::Point2D &getCenter()

Return the center point.

void setCenter(lsst::geom::Point2D const &center)

Set the center point.

BaseCore const &getCore() const

Return the ellipse core.

BaseCore &getCore()

Return the ellipse core.

std::shared_ptr<BaseCore const> getCorePtr() const

Return the ellipse core.

std::shared_ptr<BaseCore> getCorePtr()

Return the ellipse core.

void setCore(BaseCore const &core)

Set the ellipse core; the type of the core is not changed.

void normalize()

Put the parameters in a standard form.

void grow(double buffer)

Increase the major and minor radii of the ellipse by the given buffer.

void scale(double factor)

Scale the size of the ellipse by the given factor.

void shift(lsst::geom::Extent2D const &offset)

Move the ellipse center by the given offset.

ParameterVector const getParameterVector() const

Return the ellipse parameters as a vector.

void setParameterVector(ParameterVector const &vector)

Set the ellipse parameters from a vector.

void readParameters(double const *iter)
void writeParameters(double *iter) const
Ellipse::GridTransform const getGridTransform() const

Return the transform that maps the ellipse to the unit circle.

The returned proxy object is implicitly convertible to lsst::geom::AffineTransform and also supports differentiation.

lsst::geom::Box2D computeBBox() const

Return the bounding box of the ellipse.

Ellipse &operator=(Ellipse const &other)

Set the parameters of this ellipse from another.

This does not change the parametrization of the ellipse.

Ellipse &operator=(Ellipse &&other)
bool operator==(Ellipse const &other) const

Compare two ellipses for equality.

Ellipses are only equal if they have the same Core types.

bool operator!=(Ellipse const &other) const

Compare two ellipses for inequality.

Ellipses are only equal if they have the same Core types.

virtual ~Ellipse()
Ellipse(BaseCore const &core, lsst::geom::Point2D const &center = lsst::geom::Point2D())
Ellipse(std::shared_ptr<BaseCore const> const &core, lsst::geom::Point2D const &center = lsst::geom::Point2D())
Ellipse(Transformer const &other)
Ellipse(Convolution const &other)
Ellipse(Ellipse const &other)
Ellipse(Ellipse &&other)

Private Members

std::shared_ptr<BaseCore> _core
lsst::geom::Point2D _center