LSST Applications g04a91732dc+cc8870d3f5,g07dc498a13+5aa0b8792f,g0fba68d861+488cddfaa9,g1409bbee79+5aa0b8792f,g1a7e361dbc+5aa0b8792f,g1fd858c14a+f64bc332a9,g35bb328faa+fcb1d3bbc8,g4d2262a081+b1c1982739,g4d39ba7253+9633a327c1,g4e0f332c67+5d362be553,g53246c7159+fcb1d3bbc8,g60b5630c4e+9633a327c1,g668ecb457e+25d63fd678,g78460c75b0+2f9a1b4bcd,g786e29fd12+cf7ec2a62a,g7b71ed6315+fcb1d3bbc8,g8852436030+8b64ca622a,g89139ef638+5aa0b8792f,g89e1512fd8+37f975783e,g8d6b6b353c+9633a327c1,g9125e01d80+fcb1d3bbc8,g989de1cb63+5aa0b8792f,g9f33ca652e+b196626af7,ga9baa6287d+9633a327c1,gaaedd4e678+5aa0b8792f,gabe3b4be73+1e0a283bba,gb1101e3267+71e32094df,gb58c049af0+f03b321e39,gb90eeb9370+2807b1ad02,gc741bbaa4f+1ae86710ed,gcf25f946ba+8b64ca622a,gd315a588df+a39986a76f,gd6cbbdb0b4+c8606af20c,gd9a9a58781+fcb1d3bbc8,gde0f65d7ad+94dfc458f4,ge278dab8ac+932305ba37,ge82c20c137+76d20ab76d,gfe73954cf8+a1301e4c20,w.2025.11
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 |