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 Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
lsst::gauss2d::fit::Data< T, I, M > Class Template Reference

A list of Observation instances that can be modelled. More...

#include <data.h>

Inheritance diagram for lsst::gauss2d::fit::Data< T, I, M >:
lsst::gauss2d::fit::Chromatic lsst::gauss2d::fit::Parametric lsst::gauss2d::Object

Public Types

using Observation = lsst::gauss2d::fit::Observation<T, I, M>
 
using ObservationCRef = std::reference_wrapper<const Observation>
 

Public Member Functions

 Data (std::vector< std::shared_ptr< const Observation > > observations)
 Construct a Data instance.
 
auto at (size_t i) const
 
auto begin () const
 
auto end () const
 
auto cbegin () const
 
auto cend () const
 
std::vector< std::reference_wrapper< const Channel > > get_channels () const override
 Get the set of channels this instance is applicable for.
 
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.
 
size_t size () const
 Get the number of member Observation.
 
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.
 
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 = "."
 

Detailed Description

template<typename T, typename I, typename M>
class lsst::gauss2d::fit::Data< T, I, M >

A list of Observation instances that can be modelled.

A Data is a list of Observation instances that can have associated Model instances. Multiple Observation instances may have the same Channel, but one should not include the same Observation multiple time.

Template Parameters
TThe type of the Observation Image (usually float or double)
IThe type of the Observation indices (usually size_t)
MThe type of the Observation Mask (usually bool)

Definition at line 32 of file data.h.

Member Typedef Documentation

◆ Observation

template<typename T , typename I , typename M >
using lsst::gauss2d::fit::Data< T, I, M >::Observation = lsst::gauss2d::fit::Observation<T, I, M>

Definition at line 34 of file data.h.

◆ ObservationCRef

template<typename T , typename I , typename M >
using lsst::gauss2d::fit::Data< T, I, M >::ObservationCRef = std::reference_wrapper<const Observation>

Definition at line 35 of file data.h.

Constructor & Destructor Documentation

◆ Data()

template<typename T , typename I , typename M >
lsst::gauss2d::fit::Data< T, I, M >::Data ( std::vector< std::shared_ptr< const Observation > > observations)
inlineexplicit

Construct a Data instance.

Parameters
observationsThe Observation pointers to include. Must not be null.

Definition at line 42 of file data.h.

42 {
43 _observations.reserve(observations.size());
44 _observation_ptrs.reserve(observations.size());
45
46 for (const auto& observation : observations) {
47 if (observation == nullptr) throw std::invalid_argument("Can't store null Observation");
48 const auto& channel = observation->get_channel();
49 if (_channels.find(channel) == _channels.end()) {
50 _channels_ordered.push_back(channel);
51 _channels.insert(channel);
52 }
53 _observations.push_back(ObservationCRef(*observation));
54 _observation_ptrs.push_back(observation);
55 }
56 }
std::reference_wrapper< const Observation > ObservationCRef
Definition data.h:35
T size(T... args)

Member Function Documentation

◆ at()

template<typename T , typename I , typename M >
auto lsst::gauss2d::fit::Data< T, I, M >::at ( size_t i) const
inline

Definition at line 58 of file data.h.

58{ return _observations.at(i); }

◆ begin()

template<typename T , typename I , typename M >
auto lsst::gauss2d::fit::Data< T, I, M >::begin ( ) const
inline

Definition at line 59 of file data.h.

59{ return _observations.begin(); }

◆ cbegin()

template<typename T , typename I , typename M >
auto lsst::gauss2d::fit::Data< T, I, M >::cbegin ( ) const
inline

Definition at line 62 of file data.h.

62{ return _observations.begin(); }

◆ cend()

template<typename T , typename I , typename M >
auto lsst::gauss2d::fit::Data< T, I, M >::cend ( ) const
inline

Definition at line 63 of file data.h.

63{ return _observations.end(); }

◆ end()

template<typename T , typename I , typename M >
auto lsst::gauss2d::fit::Data< T, I, M >::end ( ) const
inline

Definition at line 60 of file data.h.

60{ return _observations.end(); }

◆ get_channels()

template<typename T , typename I , typename M >
std::vector< std::reference_wrapper< const Channel > > lsst::gauss2d::fit::Data< T, I, M >::get_channels ( ) const
inlineoverridevirtual

Get the set of channels this instance is applicable for.

Note
Implementers must return a set (all unique items). This cannot be enforced (yet).

Implements lsst::gauss2d::fit::Chromatic.

Definition at line 65 of file data.h.

65 {
66 return _channels_ordered;
67 }

◆ get_parameters()

template<typename T , typename I , typename M >
ParamRefs & lsst::gauss2d::fit::Data< T, I, M >::get_parameters ( ParamRefs & params,
ParamFilter * filter = nullptr ) const
inlineoverridevirtual

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.

Definition at line 69 of file data.h.

69 {
70 for (const Observation& exp : *this) exp.get_parameters(params, filter);
71 return params;
72 }
ParamRefs & get_parameters(ParamRefs &params, ParamFilter *filter=nullptr) const override
Add Parameter refs matching the filter to a vector, in order.
Definition data.h:69
lsst::gauss2d::fit::Observation< T, I, M > Observation
Definition data.h:34

◆ get_parameters_const()

template<typename T , typename I , typename M >
ParamCRefs & lsst::gauss2d::fit::Data< T, I, M >::get_parameters_const ( ParamCRefs & params,
ParamFilter * filter = nullptr ) const
inlineoverridevirtual

Same as get_parameters(), but for const refs.

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

Definition at line 73 of file data.h.

73 {
74 for (auto exp_it = this->cbegin(); exp_it != this->cend(); ++exp_it) {
75 (*exp_it).get().get_parameters_const(params, filter);
76 }
77 return params;
78 }
auto cend() const
Definition data.h:63
auto cbegin() const
Definition data.h:62

◆ 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()

template<typename T , typename I , typename M >
std::string lsst::gauss2d::fit::Data< T, I, M >::repr ( bool name_keywords = false,
std::string_view namespace_separator = Object::CC_NAMESPACE_SEPARATOR ) const
inlineoverridevirtual

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.

Definition at line 83 of file data.h.

84 {
85 std::string str = std::string("Data(") + (name_keywords ? "observations=[" : "[");
86 for (auto exp_it = this->cbegin(); exp_it != this->cend(); ++exp_it) {
87 str += (*exp_it).get().repr(name_keywords, namespace_separator) + ",";
88 }
89 str += "]);";
90 return str;
91 }
std::string str() const override
Return a brief, human-readable string representation of this.
Definition data.h:92

◆ size()

template<typename T , typename I , typename M >
size_t lsst::gauss2d::fit::Data< T, I, M >::size ( ) const
inline

Get the number of member Observation.

Definition at line 81 of file data.h.

81{ return _observations.size(); }

◆ str()

template<typename T , typename I , typename M >
std::string lsst::gauss2d::fit::Data< T, I, M >::str ( ) const
inlineoverridevirtual

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

Implements lsst::gauss2d::Object.

Definition at line 92 of file data.h.

92 {
93 std::string str = "Data(observations=[";
94 for (auto exp_it = this->cbegin(); exp_it != this->cend(); ++exp_it) {
95 str += (*exp_it).get().str() + ",";
96 }
97 str += "])";
98 return str;
99 }

Member Data Documentation

◆ 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 file: