LSST Applications g04e9c324dd+8c5ae1fdc5,g134cb467dc+b203dec576,g18429d2f64+358861cd2c,g199a45376c+0ba108daf9,g1fd858c14a+dd066899e3,g262e1987ae+ebfced1d55,g29ae962dfc+72fd90588e,g2cef7863aa+aef1011c0b,g35bb328faa+8c5ae1fdc5,g3fd5ace14f+b668f15bc5,g4595892280+3897dae354,g47891489e3+abcf9c3559,g4d44eb3520+fb4ddce128,g53246c7159+8c5ae1fdc5,g67b6fd64d1+abcf9c3559,g67fd3c3899+1f72b5a9f7,g74acd417e5+cb6b47f07b,g786e29fd12+668abc6043,g87389fa792+8856018cbb,g89139ef638+abcf9c3559,g8d7436a09f+bcf525d20c,g8ea07a8fe4+9f5ccc88ac,g90f42f885a+6054cc57f1,g97be763408+06f794da49,g9dd6db0277+1f72b5a9f7,ga681d05dcb+7e36ad54cd,gabf8522325+735880ea63,gac2eed3f23+abcf9c3559,gb89ab40317+abcf9c3559,gbf99507273+8c5ae1fdc5,gd8ff7fe66e+1f72b5a9f7,gdab6d2f7ff+cb6b47f07b,gdc713202bf+1f72b5a9f7,gdfd2d52018+8225f2b331,ge365c994fd+375fc21c71,ge410e46f29+abcf9c3559,geaed405ab2+562b3308c0,gf9a733ac38+8c5ae1fdc5,w.2025.35
LSST Data Management Base Package
|
A collection of Sources comprising a ParametricModel of Data. More...
#include <model.h>
Public Types | |
typedef GaussianEvaluator< T, Image, Indices > | Evaluator |
typedef std::map< std::reference_wrapper< const Channel >, std::vector< std::unique_ptr< const Gaussians > > > | GaussiansMap |
typedef Data< T, Image, Mask > | ModelData |
typedef ModelData::Observation | Observation |
Public Member Functions | |
Model (std::shared_ptr< const ModelData > data, PsfModels &psfmodels, Sources &sources, Priors &priors) | |
Construct a Model instance from Data, PsfModels, Sources and Priors. | |
void | add_extra_param_map (const Channel &channel, ExtraParamMap &map_extra, const GradParamMap &map_grad, ParameterMap &offsets) const override |
Add extra Parameter indices to a map. | |
void | add_extra_param_factors (const Channel &channel, ExtraParamFactors &factors) const override |
Add extra Parameter gradient factors to an existing vector. | |
void | add_grad_param_map (const Channel &channel, GradParamMap &map, ParameterMap &offsets) const override |
Add Parameter gradient indices to an existing map. | |
void | add_grad_param_factors (const Channel &channel, GradParamFactors &factors) const override |
Add Parameter gradient factors to an existing map. | |
std::vector< double > | compute_loglike_grad (bool include_prior=true, bool print=false, bool verify=false, double findiff_frac=1e-5, double findiff_add=1e-5, double rtol=1e-3, double atol=1e-8) |
Compute the gradient (partial first derivative) of the log-likelihood for each free parameter. | |
std::unique_ptr< Image > | compute_hessian (bool transformed=false, bool include_prior=true, std::optional< HessianOptions > options=std::nullopt, bool print=false) |
Compute the Hessian matrix (second order partial derivatives) of the log likehood. | |
std::vector< double > | evaluate (bool print=false, bool normalize_loglike=false) |
Evaluate the model for every Observation in _data. | |
double | evaluate_observation (size_t idx) |
Evaluate a single observation with the given index in _data. | |
std::shared_ptr< const ModelData > | get_data () const |
Return _data. | |
EvaluatorMode | get_mode () const |
std::unique_ptr< const lsst::gauss2d::Gaussians > | get_gaussians (const Channel &channel) const override |
Return the vector of Gaussian sub-components controlled by this model. | |
std::vector< double > | get_loglike_const_terms () |
Get the constant (variance-dependent) terms of the log likelihood for each observation. | |
size_t | get_n_gaussians (const Channel &channel) const override |
Return the number of Gaussian sub-components controlled by this model. | |
std::vector< std::shared_ptr< Image > > | get_outputs () const |
Return _outputs (output Image instances for each Observation in _data) | |
std::vector< std::pair< ParamBaseCRef, size_t > > | get_offsets_parameters () const |
ParamRefs & | get_parameters (ParamRefs ¶ms, ParamFilter *filter=nullptr) const override |
Add Parameter refs matching the filter to a vector, in order. | |
ParamCRefs & | get_parameters_const (ParamCRefs ¶ms, ParamFilter *filter=nullptr) const override |
Same as get_parameters(), but for const refs. | |
ParamRefs & | get_parameters_observation (ParamRefs ¶ms, size_t idx, ParamFilter *filter=nullptr) const |
Same as get_parameters(), but for a single Observation with index idx in _data. | |
ParamCRefs & | get_parameters_observation_const (ParamCRefs ¶ms, size_t idx, ParamFilter *filter=nullptr) const |
Same as get_parameters_const(), but for a single Observation with index idx in _data. | |
Priors | get_priors () const |
Return _priors, the list of Prior instances. | |
PsfModels | get_psfmodels () const |
Return _psfmodels, the list of PsfModel instances for each Observation in _data. | |
Sources | get_sources () const |
Return _sources, the list of Source instances for each Observation in _data. | |
void | set_extra_param_factors (const Channel &channel, ExtraParamFactors &factors, size_t index) const override |
Set extra Parameter gradient factors in an existing map. | |
void | set_grad_param_factors (const Channel &channel, GradParamFactors &factors, size_t index) const override |
Set Parameter gradient factors in an existing map. | |
void | setup_evaluators (EvaluatorMode mode=EvaluatorMode::image, std::vector< std::vector< std::shared_ptr< Image > > > outputs={}, std::vector< std::shared_ptr< Image > > residuals={}, std::vector< std::shared_ptr< Image > > outputs_prior={}, std::shared_ptr< Image > residuals_prior=nullptr, bool force=false, bool print=false) |
Setup Evaluator instances for every Observation in _data using the given EvaluatorMode. | |
size_t | size () const |
Get the size of this->_data. | |
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. | |
std::vector< std::string > | verify_jacobian (double findiff_frac=1e-5, double findiff_add=1e-5, double rtol=1e-3, double atol=1e-3, double max_ll_diff=0) |
Verify that the Jacobian is correct by comparing to finite differences. | |
ParamRefs | get_parameters_new (ParamFilter *filter=nullptr) const |
Same as get_parameters(), but returning a new vector. | |
ParamCRefs | get_parameters_const_new (ParamFilter *filter=nullptr) const |
Same as get_parameters_const(), but returning a new vector. | |
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 collection of Sources comprising a ParametricModel of Data.
typedef GaussianEvaluator<T, Image, Indices> lsst::gauss2d::fit::Model< T, Image, Indices, Mask >::Evaluator |
typedef std::map<std::reference_wrapper<const Channel>, std::vector<std::unique_ptr<const Gaussians> > > lsst::gauss2d::fit::Model< T, Image, Indices, Mask >::GaussiansMap |
typedef ModelData::Observation lsst::gauss2d::fit::Model< T, Image, Indices, Mask >::Observation |
|
inlineexplicit |
Construct a Model instance from Data, PsfModels, Sources and Priors.
data | The data to model. |
psfmodels | A vector of PSF models, ordered to match each Observation in data. |
sources | A vector of Source models. |
priors | A vector of Prior likelihoods. |
Definition at line 94 of file model.h.
|
inlineoverridevirtual |
Add extra Parameter gradient factors to an existing vector.
channel | The Channel to add factors for. |
factors | The ExtraParamFactors to add to. |
Implements lsst::gauss2d::fit::ParametricModel.
Definition at line 681 of file model.h.
|
inlineoverridevirtual |
Add extra Parameter indices to a map.
channel | The Channel to add indices for. |
map_extra | The ExtraParamMap to add to. |
map_grad | The completed GradParamMap. |
offsets | A map of index offsets for Parameters that have already been added. |
Implements lsst::gauss2d::fit::ParametricModel.
Definition at line 677 of file model.h.
|
inlineoverridevirtual |
Add Parameter gradient factors to an existing map.
channel | The Channel to add factors for. |
factors | The GradParamFactors to add to. |
Implements lsst::gauss2d::fit::ParametricModel.
Definition at line 687 of file model.h.
|
inlineoverridevirtual |
Add Parameter gradient indices to an existing map.
channel | The Channel to add indices for. |
map | The map to add to. |
offsets | A map of index offsets for Parameters that have already been added. |
Implements lsst::gauss2d::fit::ParametricModel.
Definition at line 684 of file model.h.
|
inline |
Compute the Hessian matrix (second order partial derivatives) of the log likehood.
transformed | Whether the matrix should be computed for transformed parameters or not If not, parameter transforms are temporarily removed. |
include_prior | Whether to include the prior likelihood(s) in the Hessian. |
options | Options for computing the Hessian via finite differencing of loglikelihood gradients. If null, the Hessian is estimated as J^T J (where J is the Jacobian). |
Definition at line 825 of file model.h.
|
inline |
Compute the gradient (partial first derivative) of the log-likelihood for each free parameter.
include_prior | Whether to include the prior likelihood(s) in the gradients. |
Whether to print diagnostic/debugging information. | |
verify | Whether to verify the values by comparing to finite differences. |
findiff_frac | The value of the finite difference increment, as a fraction of the parameter value. |
findiff_add | The minimum value of the finite difference increment. |
rtol | The allowed relative tolerance in the Jacobian as compared to the finite difference. |
atol | The allowed absolute tolerance in the Jacobian as compared to the finite difference. |
Definition at line 704 of file model.h.
|
inline |
Evaluate the model for every Observation in _data.
Whether to print diagnostic statements to stdout. | |
normalize_loglike | Whether to include the normalizing (variance-dependent) term in the log likelihood. If false, the log likelihood for a model with no residuals is 0. |
Definition at line 1019 of file model.h.
|
inline |
Evaluate a single observation with the given index in _data.
idx | The numeric index of the observation. |
|
inline |
|
inlineoverridevirtual |
Return the vector of Gaussian sub-components controlled by this model.
Implements lsst::gauss2d::fit::ParametricModel.
Definition at line 1061 of file model.h.
|
inline |
Get the constant (variance-dependent) terms of the log likelihood for each observation.
Definition at line 1079 of file model.h.
|
inline |
|
inlineoverridevirtual |
Return the number of Gaussian sub-components controlled by this model.
Implements lsst::gauss2d::fit::ParametricModel.
Definition at line 1106 of file model.h.
|
inline |
|
inline |
Return _outputs (output Image instances for each Observation in _data)
Definition at line 1113 of file model.h.
|
inlineoverridevirtual |
Add Parameter refs matching the filter to a vector, in order.
params | The vector to add to. |
filter | The filter to apply to this Object's parameters. |
Implements lsst::gauss2d::fit::Parametric.
Definition at line 1123 of file model.h.
|
inlineoverridevirtual |
Same as get_parameters(), but for const refs.
Implements lsst::gauss2d::fit::Parametric.
Definition at line 1130 of file model.h.
|
inlineinherited |
Same as get_parameters_const(), but returning a new vector.
Definition at line 33 of file parametric.h.
|
inlineinherited |
Same as get_parameters(), but returning a new vector.
Definition at line 27 of file parametric.h.
|
inline |
Same as get_parameters(), but for a single Observation with index idx in _data.
|
inline |
Same as get_parameters_const(), but for a single Observation with index idx in _data.
|
inline |
|
inline |
Return _psfmodels, the list of PsfModel instances for each Observation in _data.
Definition at line 1161 of file model.h.
|
inline |
Return _sources, the list of Source instances for each Observation in _data.
Definition at line 1164 of file model.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 1377 of file model.h.
|
inlineoverridevirtual |
Set extra Parameter gradient factors in an existing map.
channel | The Channel to set factors for. |
factors | The ExtraParamFactors to set factors for. |
index | The index to begin setting factors at. |
Implements lsst::gauss2d::fit::ParametricModel.
Definition at line 1166 of file model.h.
|
inlineoverridevirtual |
Set Parameter gradient factors in an existing map.
channel | The Channel to set factors for. |
factors | The GradParamFactors to set factors for. |
index | The index to begin setting factors at. |
Implements lsst::gauss2d::fit::ParametricModel.
Definition at line 1174 of file model.h.
|
inline |
Setup Evaluator instances for every Observation in _data using the given EvaluatorMode.
mode | The EvaluatorMode to use for all Evaluator instances. |
outputs | A vector of vectors of Image outputs for each Evaluator (created if empty and needed). |
residuals | A vector of residual Images for each Evaluator (created if empty and needed). |
outputs_prior | A vector of prior output (Jacobian) Images for each Evaluator (created if empty and needed). |
residuals_prior | A vector of prior residual Images for each Evaluator (created if empty and needed). |
force | Whether to force setting up even if already set up in the same mode |
Whether to print diagnostic statements to stdout. |
Definition at line 1199 of file model.h.
|
inline |
|
inlineoverridevirtual |
Return a brief, human-readable string representation of this.
Implements lsst::gauss2d::Object.
Definition at line 1389 of file model.h.
|
inline |
Verify that the Jacobian is correct by comparing to finite differences.
findiff_frac | The value of the finite difference increment, as a fraction of the parameter value. |
findiff_add | The minimum value of the finite difference increment. |
rtol | The allowed relative tolerance in the Jacobian as compared to the finite difference. |
atol | The allowed absolute tolerance in the Jacobian as compared to the finite difference. |
max_ll_diff | The maximum allowed difference between equivalent log-likelihood evaluations. Must be >= 0 and should only be a few orders of magnitude larger than machine epsilon. |
Definition at line 1412 of file model.h.
|
staticconstexprinherited |
|
staticconstexprinherited |
|
staticconstexprinherited |