|
LSST Applications g00d0e8bbd7+edbf708997,g03191d30f7+6b31559d11,g118115db7c+ac820e85d2,g199a45376c+5137f08352,g1fd858c14a+90100aa1a7,g262e1987ae+64df5f6984,g29ae962dfc+1eb4aece83,g2cef7863aa+73c82f25e4,g3541666cd7+1e37cdad5c,g35bb328faa+edbf708997,g3fd5ace14f+fb4e2866cc,g47891489e3+19fcc35de2,g53246c7159+edbf708997,g5b326b94bb+d622351b67,g64539dfbff+dfe1dff262,g67b6fd64d1+19fcc35de2,g74acd417e5+cfdc02aca8,g786e29fd12+af89c03590,g7aefaa3e3d+dc1a598170,g87389fa792+a4172ec7da,g88cb488625+60ba2c3075,g89139ef638+19fcc35de2,g8d4809ba88+dfe1dff262,g8d7436a09f+db94b797be,g8ea07a8fe4+79658f16ab,g90f42f885a+6577634e1f,g9722cb1a7f+d8f85438e7,g98df359435+7fdd888faa,ga2180abaac+edbf708997,ga9e74d7ce9+128cc68277,gbf99507273+edbf708997,gca7fc764a6+19fcc35de2,gd7ef33dd92+19fcc35de2,gdab6d2f7ff+cfdc02aca8,gdbb4c4dda9+dfe1dff262,ge410e46f29+19fcc35de2,ge41e95a9f2+dfe1dff262,geaed405ab2+062dfc8cdc,w.2025.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 |