LSST Applications g0d97872fb5+4fd969bb9d,g1653933729+34a971ddd9,g28da252d5a+072f89fe25,g2bbee38e9b+a99b0ab4cd,g2bc492864f+a99b0ab4cd,g2ca4be77d2+c0e3b27cd8,g2cdde0e794+704103fe75,g3156d2b45e+6e87dc994a,g347aa1857d+a99b0ab4cd,g35bb328faa+34a971ddd9,g3a166c0a6a+a99b0ab4cd,g3e281a1b8c+8ec26ec694,g4005a62e65+ba0306790b,g414038480c+9ed5ed841a,g569e0e2b34+cb4faa46ad,g5a97de2502+520531a62c,g717e5f8c0f+29153700a5,g7ede599f99+367733290c,g80478fca09+17051a22cc,g82479be7b0+f2f1ea0a87,g858d7b2824+29153700a5,g8b782ad322+29153700a5,g8cd86fa7b1+05420e7f7d,g9125e01d80+34a971ddd9,ga5288a1d22+e7f674aaf3,gae0086650b+34a971ddd9,gae74b0b5c6+45ef5cdc51,gb58c049af0+ace264a4f2,gc28159a63d+a99b0ab4cd,gcf0d15dbbd+8051a81198,gda6a2b7d83+8051a81198,gdaeeff99f8+7774323b41,gdf4d240d4a+34a971ddd9,ge2409df99d+cb167bac99,ge33fd446bb+29153700a5,ge79ae78c31+a99b0ab4cd,gf0baf85859+890af219f9,gf5289d68f6+9faa5c5784,w.2024.36
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 |