LSST Applications g0f08755f38+9c285cab97,g1635faa6d4+13f3999e92,g1653933729+a8ce1bb630,g1a0ca8cf93+bf6eb00ceb,g28da252d5a+0829b12dee,g29321ee8c0+5700dc9eac,g2bbee38e9b+9634bc57db,g2bc492864f+9634bc57db,g2cdde0e794+c2c89b37c4,g3156d2b45e+41e33cbcdc,g347aa1857d+9634bc57db,g35bb328faa+a8ce1bb630,g3a166c0a6a+9634bc57db,g3e281a1b8c+9f2c4e2fc3,g414038480c+077ccc18e7,g41af890bb2+fde0dd39b6,g5fbc88fb19+17cd334064,g781aacb6e4+a8ce1bb630,g80478fca09+55a9465950,g82479be7b0+d730eedb7d,g858d7b2824+9c285cab97,g9125e01d80+a8ce1bb630,g9726552aa6+10f999ec6a,ga5288a1d22+2a84bb7594,gacf8899fa4+c69c5206e8,gae0086650b+a8ce1bb630,gb58c049af0+d64f4d3760,gc28159a63d+9634bc57db,gcf0d15dbbd+4b7d09cae4,gda3e153d99+9c285cab97,gda6a2b7d83+4b7d09cae4,gdaeeff99f8+1711a396fd,ge2409df99d+5e831397f4,ge79ae78c31+9634bc57db,gf0baf85859+147a0692ba,gf3967379c6+41c94011de,gf3fb38a9a8+8f07a9901b,gfb92a5be7c+9c285cab97,w.2024.46
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
lsst::gauss2d::fit::EllipticalComponent Class Referenceabstract

A Component with an elliptically-symmetric intensity profile. More...

#include <ellipticalcomponent.h>

Inheritance diagram for lsst::gauss2d::fit::EllipticalComponent:
lsst::gauss2d::fit::Component lsst::gauss2d::fit::ParametricModel lsst::gauss2d::fit::Parametric lsst::gauss2d::Object lsst::gauss2d::fit::GaussianComponent lsst::gauss2d::fit::SersicMixComponent

Public Member Functions

 EllipticalComponent (std::shared_ptr< ParametricEllipse > ellipse, std::shared_ptr< CentroidParameters > centroid=nullptr, std::shared_ptr< IntegralModel > integralmodel=nullptr)
 Construct an EllipticalComponent from Parameter containers.
 
const CentroidParametersget_centroid () const
 Get the centroid Parameter container.
 
const ParametricEllipseget_ellipse () const
 Get the ellipse Parameter container.
 
const IntegralModelget_integralmodel () const override
 
ParamRefsget_parameters (ParamRefs &params, ParamFilter *filter=nullptr) const override
 Add Parameter refs matching the filter to a vector, in order.
 
ParamCRefsget_parameters_const (ParamCRefs &params, ParamFilter *filter=nullptr) const override
 Same as get_parameters(), but for const refs.
 
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.
 
virtual void add_extra_param_map (const Channel &channel, ExtraParamMap &map_extra, const GradParamMap &map_grad, ParameterMap &offsets) const =0
 Add extra Parameter indices to a map.
 
virtual void add_extra_param_factors (const Channel &channel, ExtraParamFactors &factors) const =0
 Add extra Parameter gradient factors to an existing vector.
 
virtual void add_grad_param_map (const Channel &channel, GradParamMap &map, ParameterMap &offsets) const =0
 Add Parameter gradient indices to an existing map.
 
virtual void add_grad_param_factors (const Channel &channel, GradParamFactors &factors) const =0
 Add Parameter gradient factors to an existing map.
 
virtual void set_extra_param_factors (const Channel &channel, ExtraParamFactors &factors, size_t index) const =0
 Set extra Parameter gradient factors in an existing map.
 
virtual void set_grad_param_factors (const Channel &channel, GradParamFactors &factors, size_t index) const =0
 Set Parameter gradient factors in an existing map.
 
virtual std::unique_ptr< const lsst::gauss2d::Gaussiansget_gaussians (const Channel &channel) const =0
 Return the vector of Gaussian sub-components controlled by this model.
 
virtual size_t get_n_gaussians (const Channel &channel) const =0
 Return the number of Gaussian sub-components controlled by this model.
 
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 = "."
 

Protected Attributes

std::shared_ptr< ParametricEllipse_ellipse
 
std::shared_ptr< CentroidParameters_centroid
 
std::shared_ptr< IntegralModel_integralmodel
 

Detailed Description

A Component with an elliptically-symmetric intensity profile.

Definition at line 15 of file ellipticalcomponent.h.

Constructor & Destructor Documentation

◆ EllipticalComponent()

lsst::gauss2d::fit::EllipticalComponent::EllipticalComponent ( std::shared_ptr< ParametricEllipse > ellipse,
std::shared_ptr< CentroidParameters > centroid = nullptr,
std::shared_ptr< IntegralModel > integralmodel = nullptr )
explicit

Construct an EllipticalComponent from Parameter containers.

Parameters
ellipseThe ellipse Parameter container
centroidThe centroid Parameter container; default-constructed if null
integralmodelThe IntegralModel; default-constructed if null

Definition at line 13 of file ellipticalcomponent.cc.

16 : _ellipse(std::move(ellipse)),
17 _centroid(centroid ? std::move(centroid) : std::make_shared<CentroidParameters>()),
18 _integralmodel(integralmodel ? std::move(integralmodel)
19 : std::make_shared<LinearIntegralModel>(nullptr)) {
20 if (_ellipse == nullptr) throw std::invalid_argument("ellipse must not be null");
21}
std::shared_ptr< CentroidParameters > _centroid
std::shared_ptr< IntegralModel > _integralmodel
std::shared_ptr< ParametricEllipse > _ellipse
T make_shared(T... args)
T move(T... args)
STL namespace.

Member Function Documentation

◆ add_extra_param_factors()

virtual void lsst::gauss2d::fit::ParametricModel::add_extra_param_factors ( const Channel & channel,
ExtraParamFactors & factors ) const
pure virtualinherited

Add extra Parameter gradient factors to an existing vector.

Parameters
channelThe Channel to add factors for.
factorsThe ExtraParamFactors to add to.

Implemented in lsst::gauss2d::fit::GaussianComponent, lsst::gauss2d::fit::Model< T, Image, Indices, Mask >, lsst::gauss2d::fit::PsfModel, lsst::gauss2d::fit::SersicMixComponent, and lsst::gauss2d::fit::Source.

◆ add_extra_param_map()

virtual void lsst::gauss2d::fit::ParametricModel::add_extra_param_map ( const Channel & channel,
ExtraParamMap & map_extra,
const GradParamMap & map_grad,
ParameterMap & offsets ) const
pure virtualinherited

Add extra Parameter indices to a map.

Parameters
channelThe Channel to add indices for.
map_extraThe ExtraParamMap to add to.
map_gradThe completed GradParamMap.
offsetsA map of index offsets for Parameters that have already been added.

Implemented in lsst::gauss2d::fit::GaussianComponent, lsst::gauss2d::fit::Model< T, Image, Indices, Mask >, lsst::gauss2d::fit::PsfModel, lsst::gauss2d::fit::SersicMixComponent, and lsst::gauss2d::fit::Source.

◆ add_grad_param_factors()

virtual void lsst::gauss2d::fit::ParametricModel::add_grad_param_factors ( const Channel & channel,
GradParamFactors & factors ) const
pure virtualinherited

Add Parameter gradient factors to an existing map.

Parameters
channelThe Channel to add factors for.
factorsThe GradParamFactors to add to.

Implemented in lsst::gauss2d::fit::GaussianComponent, lsst::gauss2d::fit::PsfModel, lsst::gauss2d::fit::SersicMixComponent, lsst::gauss2d::fit::Model< T, Image, Indices, Mask >, and lsst::gauss2d::fit::Source.

◆ add_grad_param_map()

virtual void lsst::gauss2d::fit::ParametricModel::add_grad_param_map ( const Channel & channel,
GradParamMap & map,
ParameterMap & offsets ) const
pure virtualinherited

Add Parameter gradient indices to an existing map.

Parameters
channelThe Channel to add indices for.
mapThe map to add to.
offsetsA map of index offsets for Parameters that have already been added.

Implemented in lsst::gauss2d::fit::GaussianComponent, lsst::gauss2d::fit::Model< T, Image, Indices, Mask >, lsst::gauss2d::fit::PsfModel, lsst::gauss2d::fit::SersicMixComponent, and lsst::gauss2d::fit::Source.

◆ get_centroid()

const CentroidParameters & lsst::gauss2d::fit::EllipticalComponent::get_centroid ( ) const

Get the centroid Parameter container.

Definition at line 23 of file ellipticalcomponent.cc.

23{ return *_centroid; }

◆ get_ellipse()

const ParametricEllipse & lsst::gauss2d::fit::EllipticalComponent::get_ellipse ( ) const

Get the ellipse Parameter container.

Definition at line 24 of file ellipticalcomponent.cc.

24{ return *_ellipse; }

◆ get_gaussians()

virtual std::unique_ptr< const lsst::gauss2d::Gaussians > lsst::gauss2d::fit::ParametricModel::get_gaussians ( const Channel & channel) const
pure virtualinherited

Return the vector of Gaussian sub-components controlled by this model.

Parameters
channelThe Channel to return Gaussians for.
Returns
The Gaussians controlled by this model.

Implemented in lsst::gauss2d::fit::GaussianComponent, lsst::gauss2d::fit::Model< T, Image, Indices, Mask >, lsst::gauss2d::fit::SersicMixComponent, lsst::gauss2d::fit::Source, and lsst::gauss2d::fit::PsfModel.

◆ get_integralmodel()

const IntegralModel & lsst::gauss2d::fit::EllipticalComponent::get_integralmodel ( ) const
overridevirtual

Implements lsst::gauss2d::fit::Component.

Definition at line 25 of file ellipticalcomponent.cc.

25{ return *_integralmodel; }

◆ get_n_gaussians()

virtual size_t lsst::gauss2d::fit::ParametricModel::get_n_gaussians ( const Channel & channel) const
pure virtualinherited

◆ get_parameters()

ParamRefs & lsst::gauss2d::fit::EllipticalComponent::get_parameters ( ParamRefs & params,
ParamFilter * filter = nullptr ) const
overridevirtual

Add Parameter refs matching the filter to a vector, in order.

Parameters
paramsThe vector to add to.
filterThe filter to apply to this Object's parameters.
Returns
A ref to params (for method chaining)

Implements lsst::gauss2d::fit::Parametric.

Reimplemented in lsst::gauss2d::fit::GaussianComponent, and lsst::gauss2d::fit::SersicMixComponent.

Definition at line 27 of file ellipticalcomponent.cc.

27 {
28 _centroid->get_parameters(params, filter);
29 _ellipse->get_parameters(params, filter);
30 _integralmodel->get_parameters(params, filter);
31 return params;
32}

◆ get_parameters_const()

ParamCRefs & lsst::gauss2d::fit::EllipticalComponent::get_parameters_const ( ParamCRefs & params,
ParamFilter * filter = nullptr ) const
overridevirtual

Same as get_parameters(), but for const refs.

Implements lsst::gauss2d::fit::Parametric.

Reimplemented in lsst::gauss2d::fit::GaussianComponent, and lsst::gauss2d::fit::SersicMixComponent.

Definition at line 34 of file ellipticalcomponent.cc.

34 {
35 _centroid->get_parameters_const(params, filter);
36 _ellipse->get_parameters_const(params, filter);
37 _integralmodel->get_parameters_const(params, filter);
38 return params;
39}

◆ get_parameters_const_new()

ParamCRefs lsst::gauss2d::fit::Parametric::get_parameters_const_new ( ParamFilter * filter = nullptr) const
inlineinherited

Same as get_parameters_const(), but returning a new vector.

Definition at line 33 of file parametric.h.

33 {
34 ParamCRefs params{};
35 get_parameters_const(params, filter);
36 return params;
37 }
virtual ParamCRefs & get_parameters_const(ParamCRefs &params, ParamFilter *filter=nullptr) const =0
Same as get_parameters(), but for const refs.
std::vector< ParamBaseCRef > ParamCRefs
Definition param_defs.h:11

◆ get_parameters_new()

ParamRefs lsst::gauss2d::fit::Parametric::get_parameters_new ( ParamFilter * filter = nullptr) const
inlineinherited

Same as get_parameters(), but returning a new vector.

Definition at line 27 of file parametric.h.

27 {
28 ParamRefs params{};
29 get_parameters(params, filter);
30 return params;
31 }
virtual ParamRefs & get_parameters(ParamRefs &params, ParamFilter *filter=nullptr) const =0
Add Parameter refs matching the filter to a vector, in order.
std::vector< ParamBaseRef > ParamRefs
Definition param_defs.h:13

◆ null_str()

static std::string_view lsst::gauss2d::Object::null_str ( const std::string_view & namespace_separator)
inlinestaticinherited

Definition at line 49 of file object.h.

49 {
50 return namespace_separator == CC_NAMESPACE_SEPARATOR ? "nullptr" : NULL_STR_GENERAL;
51 }
static constexpr std::string_view CC_NAMESPACE_SEPARATOR
The C++ namespace separator.
Definition object.h:45
static constexpr std::string_view NULL_STR_GENERAL
Definition object.h:46

◆ repr()

std::string lsst::gauss2d::fit::EllipticalComponent::repr ( bool name_keywords = false,
std::string_view namespace_separator = Object::CC_NAMESPACE_SEPARATOR ) const
overridevirtual

Return a full, callable string representation of this.

Parameters
name_keywordsWhether to prefix arguments with "{name}=", where name is the arg name in the header (as with keyword arguments in Python).
namespace_separatorThe string to use to delimit namespaces, i.e. :: in C++ and . in Python.
Returns
A callable string representation of this, which should return an an identical object to this.
Note
The representation with name_keywords=false must be callable in C++. The representation with name_keywords=true should be callable in Python, if there are any bindings.

Implements lsst::gauss2d::Object.

Reimplemented in lsst::gauss2d::fit::GaussianComponent, and lsst::gauss2d::fit::SersicMixComponent.

Definition at line 41 of file ellipticalcomponent.cc.

41 {
42 return (name_keywords ? "ellipse=" : "") + _ellipse->repr(name_keywords, namespace_separator) + ", "
43 + (name_keywords ? "centroid=" : "") + _centroid->repr(name_keywords, namespace_separator) + ", "
44 + (name_keywords ? "integralmodel=" : "")
45 + _integralmodel->repr(name_keywords, namespace_separator);
46}
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.

◆ set_extra_param_factors()

virtual void lsst::gauss2d::fit::ParametricModel::set_extra_param_factors ( const Channel & channel,
ExtraParamFactors & factors,
size_t index ) const
pure virtualinherited

Set extra Parameter gradient factors in an existing map.

Parameters
channelThe Channel to set factors for.
factorsThe ExtraParamFactors to set factors for.
indexThe index to begin setting factors at.

Implemented in lsst::gauss2d::fit::GaussianComponent, lsst::gauss2d::fit::Model< T, Image, Indices, Mask >, lsst::gauss2d::fit::PsfModel, lsst::gauss2d::fit::SersicMixComponent, and lsst::gauss2d::fit::Source.

◆ set_grad_param_factors()

virtual void lsst::gauss2d::fit::ParametricModel::set_grad_param_factors ( const Channel & channel,
GradParamFactors & factors,
size_t index ) const
pure virtualinherited

Set Parameter gradient factors in an existing map.

Parameters
channelThe Channel to set factors for.
factorsThe GradParamFactors to set factors for.
indexThe index to begin setting factors at.

Implemented in lsst::gauss2d::fit::PsfModel, lsst::gauss2d::fit::GaussianComponent, lsst::gauss2d::fit::Model< T, Image, Indices, Mask >, lsst::gauss2d::fit::SersicMixComponent, and lsst::gauss2d::fit::Source.

◆ str()

std::string lsst::gauss2d::fit::EllipticalComponent::str ( ) const
overridevirtual

Return a brief, human-readable string representation of this.

Implements lsst::gauss2d::Object.

Reimplemented in lsst::gauss2d::fit::GaussianComponent, and lsst::gauss2d::fit::SersicMixComponent.

Definition at line 48 of file ellipticalcomponent.cc.

48 {
49 return "ellipse=" + _ellipse->str() + ", centroid=" + _centroid->str()
50 + ", integralmodel=" + _integralmodel->str();
51}

Member Data Documentation

◆ _centroid

std::shared_ptr<CentroidParameters> lsst::gauss2d::fit::EllipticalComponent::_centroid
protected

Definition at line 42 of file ellipticalcomponent.h.

◆ _ellipse

std::shared_ptr<ParametricEllipse> lsst::gauss2d::fit::EllipticalComponent::_ellipse
protected

Definition at line 41 of file ellipticalcomponent.h.

◆ _integralmodel

std::shared_ptr<IntegralModel> lsst::gauss2d::fit::EllipticalComponent::_integralmodel
protected

Definition at line 43 of file ellipticalcomponent.h.

◆ CC_NAMESPACE_SEPARATOR

constexpr std::string_view lsst::gauss2d::Object::CC_NAMESPACE_SEPARATOR = "::"
staticconstexprinherited

The C++ namespace separator.

Definition at line 45 of file object.h.

◆ NULL_STR_GENERAL

constexpr std::string_view lsst::gauss2d::Object::NULL_STR_GENERAL = "None"
staticconstexprinherited

Definition at line 46 of file object.h.

◆ PY_NAMESPACE_SEPARATOR

constexpr std::string_view lsst::gauss2d::Object::PY_NAMESPACE_SEPARATOR = "."
staticconstexprinherited

Definition at line 47 of file object.h.


The documentation for this class was generated from the following files: