LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
|
A class that evaluates 2D Gaussians and renders them in images. More...
#include <evaluate.h>
Public Types | |
typedef Image< T, Data > | DataT |
typedef ImageArray< T, Data > | ImageArrayT |
typedef Image< idx_type, Indices > | IndicesT |
Public Member Functions | |
GaussianEvaluator (int x=0, const std::shared_ptr< const ConvolvedGaussians > gaussians=nullptr) | |
GaussianEvaluator (const std::shared_ptr< const ConvolvedGaussians > gaussians, const std::shared_ptr< const Image< T, Data > > data=nullptr, const std::shared_ptr< const Image< T, Data > > sigma_inv=nullptr, const std::shared_ptr< Image< T, Data > > output=nullptr, const std::shared_ptr< Image< T, Data > > residual=nullptr, const std::shared_ptr< ImageArrayT > grads=nullptr, const std::shared_ptr< const Image< idx_type, Indices > > grad_param_map=nullptr, const std::shared_ptr< const Image< T, Data > > grad_param_factor=nullptr, const std::shared_ptr< const Image< idx_type, Indices > > extra_param_map=nullptr, const std::shared_ptr< const Image< T, Data > > extra_param_factor=nullptr, const std::shared_ptr< const Image< T, Data > > background=nullptr) | |
Construct a GaussianEvaluator, inferring outputs from inputs. | |
~GaussianEvaluator () override=default | |
Data const & | IMAGE_NULL_CONST () const |
Indices const & | INDICES_NULL_CONST () const |
ImageArray< T, Data > const & | IMAGEARRAY_NULL_CONST () const |
const CoordinateSystem & | get_coordsys () const |
size_t | get_n_cols () const |
size_t | get_n_rows () const |
size_t | get_size () const |
double | loglike_pixel (bool to_add=false) |
Compute the model and/or log-likelihood and/or gradient (d(log-likelihood)/dx) and/or Jacobian (dmodel/dx) for a Gaussian mixture model. | |
std::string | repr (bool name_keywords=false, std::string_view namespace_separator=Object::CC_NAMESPACE_SEPARATOR) const override |
Return a full, callable string representation of this. | |
std::string | str () const override |
Return a brief, human-readable string representation of this. | |
Static Public Member Functions | |
static std::string_view | null_str (const std::string_view &namespace_separator) |
Static Public Attributes | |
static constexpr std::string_view | CC_NAMESPACE_SEPARATOR = "::" |
The C++ namespace separator. | |
static constexpr std::string_view | NULL_STR_GENERAL = "None" |
static constexpr std::string_view | PY_NAMESPACE_SEPARATOR = "." |
A class that evaluates 2D Gaussians and renders them in images.
This class is designed for repeated re-evaluation of Gaussian mixture models by caching references to the inputs and outputs.
T | The data type (e.g. float, int) |
Data | The data array class |
Indices | The index array class (usually a size_t array) |
Definition at line 668 of file evaluate.h.
typedef Image<T, Data> lsst::gauss2d::GaussianEvaluator< T, Data, Indices >::DataT |
Definition at line 670 of file evaluate.h.
typedef ImageArray<T, Data> lsst::gauss2d::GaussianEvaluator< T, Data, Indices >::ImageArrayT |
Definition at line 671 of file evaluate.h.
typedef Image<idx_type, Indices> lsst::gauss2d::GaussianEvaluator< T, Data, Indices >::IndicesT |
Definition at line 672 of file evaluate.h.
|
inline |
Definition at line 674 of file evaluate.h.
|
inline |
Construct a GaussianEvaluator, inferring outputs from inputs.
gaussians | N x 6 matrix of Gaussian parameters [cen_x, cen_y, flux, sigma_x, sigma_y, rho] |
coordsys | Coordinate system for all images. |
data | 2D input Data matrix. |
sigma_inv | 2D inverse sigma (sqrt variance) map of the same size as data. |
output | 2D output matrix of the same size as ImageD. |
residual | 2D output matrix for residual ((data-model)/sigma) of the same size as data. |
grads | Output for gradients. Can either an M x 1 vector or M x Data 3D Jacobian matrix, where M <= N x 6 to allow for condensing gradients based on grad_param_map. |
grad_param_map | Nx6 matrix of indices of grad to add each gradient to. For example, if four gaussians share the same cen_x, one could set grad_param_map[0:4,0] = 0. All values must have index < grad.size(). |
grad_param_factor | Nx6 matrix of multiplicative factors for each gradient term. For example, if a Gaussian is a sub-component of a multi-Gaussian component with a total flux parameter but fixed ratios, as in multi-Gaussian Sersic models. |
extra_param_map | Nx2 matrix of indices to add to an extra (meta)parameter. The first item is the index of the Gaussian to add and the second is the index of the metaparameter. |
extra_param_factor | Nx3 matrix of multiplicative factors for each extra gradient term. The factors are ordered L, sigma_x, sigma_y. |
background | A background model image. Only 1x1 (constant level) backgrounds are supported. |
Definition at line 699 of file evaluate.h.
|
overridedefault |
|
inline |
Definition at line 878 of file evaluate.h.
|
inline |
Definition at line 879 of file evaluate.h.
|
inline |
Definition at line 880 of file evaluate.h.
|
inline |
Definition at line 881 of file evaluate.h.
|
inline |
Definition at line 874 of file evaluate.h.
|
inline |
Definition at line 876 of file evaluate.h.
|
inline |
Definition at line 875 of file evaluate.h.
|
inline |
Compute the model and/or log-likelihood and/or gradient (d(log-likelihood)/dx) and/or Jacobian (dmodel/dx) for a Gaussian mixture model.
This function calls a series of templated functions with explicit instantiations. This is solely for the purpose of avoiding having to manually write a series of nested conditionals. My hope is that the templating will insert no-op functions wherever there's nothing to do instead of a needless branch inside each pixel's loop, and that the compiler will actually inline everything for maximum performance. Whether that actually happens or not is anyone's guess.
TODO: Consider override to compute LL and Jacobian, even if it's only useful for debug purposes.
Definition at line 897 of file evaluate.h.
|
inlinestaticinherited |
Definition at line 49 of file object.h.
|
inlineoverridevirtual |
Return a full, callable string representation of this.
name_keywords | Whether to prefix arguments with "{name}=", where name is the arg name in the header (as with keyword arguments in Python). |
namespace_separator | The string to use to delimit namespaces, i.e. :: in C++ and . in Python. |
Implements lsst::gauss2d::Object.
Definition at line 907 of file evaluate.h.
|
inlineoverridevirtual |
Return a brief, human-readable string representation of this.
Implements lsst::gauss2d::Object.
Definition at line 929 of file evaluate.h.
|
staticconstexprinherited |
|
staticconstexprinherited |
|
staticconstexprinherited |