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::Observation< T, I, M > Class Template Reference

An observed single-channel image with an associated variance and mask. More...

#include <observation.h>

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

Public Types

using Image = lsst::gauss2d::Image<T, I>
 
using Mask = lsst::gauss2d::Image<bool, M>
 

Public Member Functions

 Observation (std::shared_ptr< Image > image, std::shared_ptr< Image > sigma_inv, std::shared_ptr< Mask > mask_inv, const Channel &channel=Channel::NONE())
 Construct an Observation instance.
 
const Channelget_channel () const
 Get this->_channel.
 
std::shared_ptr< const Imageget_image_ptr_const () const
 Get this->_image.
 
std::shared_ptr< const Imageget_sigma_inverse_ptr_const () const
 Get this->_sigma_inv.
 
size_t get_n_cols () const
 Get the number of columns in this->_image.
 
size_t get_n_rows () const
 Get the number of rows in this->_image.
 
Imageget_image () const
 Get a ref to this->_image.
 
Maskget_mask_inverse () const
 Get a ref to this->_mask.
 
Imageget_sigma_inverse () const
 Get a ref to this->sigma_inv.
 
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.
 
bool operator== (const Observation &other) const
 
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::Observation< T, I, M >

An observed single-channel image with an associated variance and mask.

An Observation is an Image in a single Channel with a corresponding variance and mask. The variance is provided as inverse sigma to facilitate Model evaluation. Observation Image instances may represent a single physical exposure or more generic data, such as processed data like coadded/stacked images.

Note
The Mask convention is that of an "inverse" mask. Pixels with positive Mask valuese used, while values <= 0 are ignored.
Template Parameters
TThe type of the Image (usually float or double).
ImageThe class of image used in Data.
IndicesThe class of index map used in Data.
MaskThe class of mask f.

Definition at line 35 of file observation.h.

Member Typedef Documentation

◆ Image

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

Definition at line 37 of file observation.h.

◆ Mask

template<typename T , typename I , typename M >
using lsst::gauss2d::fit::Observation< T, I, M >::Mask = lsst::gauss2d::Image<bool, M>

Definition at line 38 of file observation.h.

Constructor & Destructor Documentation

◆ Observation()

template<typename T , typename I , typename M >
lsst::gauss2d::fit::Observation< T, I, M >::Observation ( std::shared_ptr< Image > image,
std::shared_ptr< Image > sigma_inv,
std::shared_ptr< Mask > mask_inv,
const Channel & channel = Channel::NONE() )
inlineexplicit

Construct an Observation instance.

Parameters
imageThe Image to assign to _image.
sigma_invThe Image to assign to _sigma_inv. Must have identical dimensions as image.
mask_invThe mask Image to assign to _mask.
channelThe channel of every Observation.

Definition at line 48 of file observation.h.

50 : _image(std::move(image)),
51 _sigma_inv(std::move(sigma_inv)),
52 _mask_inv(std::move(mask_inv)),
53 _channel(channel) {
54 if ((_image == nullptr) || (_sigma_inv == nullptr) || (_mask_inv == nullptr)) {
55 throw std::invalid_argument("Must supply non-null image, variance and mask");
56 }
57 std::string msg;
58 bool passed = images_compatible<T, I, T, I>(*_image, *_sigma_inv, true, &msg);
59 passed &= images_compatible<T, I, bool, M>(*_image, *_mask_inv, true, &msg);
60 if (passed != (msg.empty()))
61 throw std::logic_error("Observation images_compatible=" + std::to_string(passed)
62 + " != msg != '' (=" + msg + ")");
63 if (!passed) throw std::invalid_argument("image/variance/mask incompatible: " + msg);
64 }
T empty(T... args)
T move(T... args)
T to_string(T... args)

Member Function Documentation

◆ get_channel()

template<typename T , typename I , typename M >
const Channel & lsst::gauss2d::fit::Observation< T, I, M >::get_channel ( ) const
inline

Get this->_channel.

Definition at line 67 of file observation.h.

67{ return _channel; }

◆ get_image()

template<typename T , typename I , typename M >
Image & lsst::gauss2d::fit::Observation< T, I, M >::get_image ( ) const
inline

Get a ref to this->_image.

Definition at line 79 of file observation.h.

79{ return *_image; }

◆ get_image_ptr_const()

template<typename T , typename I , typename M >
std::shared_ptr< const Image > lsst::gauss2d::fit::Observation< T, I, M >::get_image_ptr_const ( ) const
inline

Get this->_image.

Definition at line 69 of file observation.h.

69{ return _image; }

◆ get_mask_inverse()

template<typename T , typename I , typename M >
Mask & lsst::gauss2d::fit::Observation< T, I, M >::get_mask_inverse ( ) const
inline

Get a ref to this->_mask.

Definition at line 81 of file observation.h.

81{ return *_mask_inv; }

◆ get_n_cols()

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

Get the number of columns in this->_image.

Definition at line 74 of file observation.h.

74{ return _image->get_n_cols(); }

◆ get_n_rows()

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

Get the number of rows in this->_image.

Definition at line 76 of file observation.h.

76{ return _image->get_n_rows(); }

◆ get_parameters()

template<typename T , typename I , typename M >
ParamRefs & lsst::gauss2d::fit::Observation< 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 85 of file observation.h.

85 {
86 return params;
87 }

◆ get_parameters_const()

template<typename T , typename I , typename M >
ParamCRefs & lsst::gauss2d::fit::Observation< 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 88 of file observation.h.

88 {
89 return params;
90 }

◆ 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

◆ get_sigma_inverse()

template<typename T , typename I , typename M >
Image & lsst::gauss2d::fit::Observation< T, I, M >::get_sigma_inverse ( ) const
inline

Get a ref to this->sigma_inv.

Definition at line 83 of file observation.h.

83{ return *_sigma_inv; }

◆ get_sigma_inverse_ptr_const()

template<typename T , typename I , typename M >
std::shared_ptr< const Image > lsst::gauss2d::fit::Observation< T, I, M >::get_sigma_inverse_ptr_const ( ) const
inline

Get this->_sigma_inv.

Definition at line 71 of file observation.h.

71{ return _sigma_inv; }

◆ 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

◆ operator==()

template<typename T , typename I , typename M >
bool lsst::gauss2d::fit::Observation< T, I, M >::operator== ( const Observation< T, I, M > & other) const
inline

Definition at line 108 of file observation.h.

108 {
109 return ((this->get_image() == other.get_image())
110 && (this->get_mask_inverse() == other.get_mask_inverse())
111 && (this->get_sigma_inverse() == other.get_sigma_inverse()));
112 }
Image & get_image() const
Get a ref to this->_image.
Definition observation.h:79

◆ repr()

template<typename T , typename I , typename M >
std::string lsst::gauss2d::fit::Observation< 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 92 of file observation.h.

93 {
94 return type_name_str<Observation>(false, namespace_separator) + ")" + (name_keywords ? "image=" : "")
95 + repr_ptr(_image.get(), name_keywords, namespace_separator) + ", "
96 + (name_keywords ? "sigma_inv=" : "")
97 + repr_ptr(_sigma_inv.get(), name_keywords, namespace_separator) + ", "
98 + (name_keywords ? "mask_inv=" : "")
99 + repr_ptr(_mask_inv.get(), name_keywords, namespace_separator) + ", "
100 + (name_keywords ? "channel=" : "") + _channel.repr(name_keywords, namespace_separator) + ")";
101 }
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.
Definition observation.h:92
std::string repr_ptr(T ptr, bool name_keywords, std::string_view namespace_separator)
Definition object.h:82

◆ str()

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

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

Implements lsst::gauss2d::Object.

Definition at line 102 of file observation.h.

102 {
103 return type_name_str<Observation>(true) + "(image=" + str_ptr(_image.get())
104 + ", sigma_inv=" + str_ptr(_sigma_inv.get()) + ", mask_inv=" + str_ptr(_mask_inv.get())
105 + ", channel=" + _channel.str() + ")";
106 }
std::string str() const override
Return a brief, human-readable string representation of this.
Definition channel.cc:104
std::string str_ptr(T ptr)
Definition object.h:132

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: