LSST Applications g013ef56533+7c9321ec0f,g042eb84c57+c6cfa41bc3,g199a45376c+0ba108daf9,g1fd858c14a+fcad0d0313,g210f2d0738+c0f94c6586,g262e1987ae+a7e710680e,g29ae962dfc+fb55f2edb0,g2ac17093b6+61d6563b1e,g2b1d02342f+df6f932764,g2cef7863aa+aef1011c0b,g2f7ad74990+c0f94c6586,g35bb328faa+8c5ae1fdc5,g3fd5ace14f+53cf87ae69,g47891489e3+4316d04fff,g511e8cfd20+baa56acf6c,g53246c7159+8c5ae1fdc5,g54cd7ddccb+fd7ad03fde,g64539dfbff+c0f94c6586,g67b6fd64d1+4316d04fff,g67fd3c3899+c0f94c6586,g6985122a63+4316d04fff,g74acd417e5+ca833bee28,g786e29fd12+668abc6043,g81db2e9a8d+b2ec8e584f,g87389fa792+8856018cbb,g89139ef638+4316d04fff,g8d7436a09f+0a24083b20,g8ea07a8fe4+760ca7c3fc,g90f42f885a+033b1d468d,g97be763408+11eb8fd5b8,gbf99507273+8c5ae1fdc5,gcdda8b9158+e4c84c9d5c,gce8aa8abaa+8c5ae1fdc5,gd7ef33dd92+4316d04fff,gdab6d2f7ff+ca833bee28,ge410e46f29+4316d04fff,geaed405ab2+c4bbc419c6,gf9a733ac38+8c5ae1fdc5,w.2025.40
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 |