SourceXtractorPlusPlus  0.15
Please provide a description of the project.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VariablePsf.h
Go to the documentation of this file.
1 
17 /*
18  * VariablePsf.h
19  *
20  * Created on: Jun 25, 2018
21  * Author: Alejandro Álvarez Ayllón
22  */
23 
24 #ifndef _SEIMPLEMENTATION_PSF_VARIABLEPSF_H_
25 #define _SEIMPLEMENTATION_PSF_VARIABLEPSF_H_
26 
28 #include "SEFramework/Psf/Psf.h"
29 
30 namespace SourceXtractor {
31 
48 class VariablePsf final : public Psf {
49 public:
56  struct Component {
58  int group_id;
59  double offset, scale;
60  };
61 
74  VariablePsf(double pixel_sampling, const std::vector<Component>& components, const std::vector<int>& group_degrees,
75  const std::vector<std::shared_ptr<VectorImage<SeFloat>>>& coefficients);
76 
81  VariablePsf(double pixel_sampling, const std::shared_ptr<VectorImage<SeFloat>>& constant);
82 
86  virtual ~VariablePsf() = default;
87 
91  int getWidth() const override;
92 
96  int getHeight() const override;
97 
101  double getPixelSampling() const override;
102 
106  const std::vector<std::string>& getComponents() const override;
107 
118  std::shared_ptr<VectorImage<SeFloat>> getPsf(const std::vector<double>& values) const override;
119 
120 private:
127 
129  void selfTest();
130 
133 
147  void calculateExponents();
148 };
149 
150 } // namespace SourceXtractor
151 
152 #endif //_SEIMPLEMENTATION_PSF_VARIABLEPSF_H_
Implements a variable PSF using an arbitrary number of components (i.e. X, Y), and degrees...
Definition: VariablePsf.h:48
std::vector< std::shared_ptr< VectorImage< SeFloat > > > m_coefficients
Definition: VariablePsf.h:125
std::vector< double > scaleProperties(const std::vector< double > &values) const
Normalizes the values.
std::vector< int > m_group_degrees
Definition: VariablePsf.h:124
virtual ~VariablePsf()=default
STL class.
std::shared_ptr< VectorImage< SeFloat > > getPsf(const std::vector< double > &values) const override
Definition: VariablePsf.cpp:65
Image implementation which keeps the pixel values in memory.
Definition: VectorImage.h:52
VariablePsf(double pixel_sampling, const std::vector< Component > &components, const std::vector< int > &group_degrees, const std::vector< std::shared_ptr< VectorImage< SeFloat >>> &coefficients)
Definition: VariablePsf.cpp:31
int getWidth() const override
Definition: VariablePsf.cpp:49
std::vector< std::vector< int > > m_exponents
Definition: VariablePsf.h:126
STL class.
std::vector< std::string > m_component_names
Definition: VariablePsf.h:123
int getHeight() const override
Definition: VariablePsf.cpp:53
double getPixelSampling() const override
Definition: VariablePsf.cpp:57
std::vector< Component > m_components
Definition: VariablePsf.h:122
const std::vector< std::string > & getComponents() const override
Definition: VariablePsf.cpp:61
void selfTest()
Verify that the preconditions of getPsf are met at construction time.
Definition: VariablePsf.cpp:92