SourceXtractorPlusPlus  0.10
Please provide a description of the project.
CompactSersicModel.h
Go to the documentation of this file.
1 /*
2  * CompactSersicModel.h
3  *
4  * Created on: Jul 25, 2019
5  * Author: mschefer
6  */
7 
8 #ifndef _MODELFITTING_MODELS_COMPACTSERSICMODEL_H_
9 #define _MODELFITTING_MODELS_COMPACTSERSICMODEL_H_
10 
12 
13 namespace ModelFitting {
14 
15 template <typename ImageType>
16 class CompactSersicModel : public CompactModelBase<ImageType> {
17 
18 public:
19  CompactSersicModel(double sharp_radius,
22  std::shared_ptr<BasicParameter> rotation, double width, double height,
25 
26  virtual ~CompactSersicModel() = default;
27 
28  double getValue(double x, double y) const override;
29 
30  ImageType getRasterizedImage(double pixel_scale, std::size_t size_x, std::size_t size_y) const override;
31 
32 
35  double i0, k, n;
36 
37  inline float evaluateModel(float x, float y) const {
38  float x2 = x * transform[0] + y * transform[1];
39  float y2 = x * transform[2] + y * transform[3];
40  float r = std::sqrt(x2*x2 + y2*y2);
41 
42  return i0 * std::exp(float(-k * powf(r, 1. / n)));
43  }
44  };
45 
46 private:
50 
52 
54 
55  // Sersic parameters
59 };
60 
61 }
62 
64 
65 #endif /* _MODELFITTING_MODELS_COMPACTSERSICMODEL_H_ */
ModelFitting::CompactSersicModel::m_n
std::shared_ptr< BasicParameter > m_n
Definition: CompactSersicModel.h:58
std::shared_ptr< BasicParameter >
ModelFitting::CompactSersicModel::~CompactSersicModel
virtual ~CompactSersicModel()=default
ModelFitting::CompactSersicModel::SersicModelEvaluator::transform
Mat22 transform
Definition: CompactSersicModel.h:34
CompactSersicModel.icpp
ModelFitting::CompactSersicModel::m_sharp_radius_squared
float m_sharp_radius_squared
Definition: CompactSersicModel.h:53
std::tuple< double, double, double, double >
ModelFitting::CompactSersicModel::SersicModelEvaluator::i0
double i0
Definition: CompactSersicModel.h:35
ModelFitting::CompactSersicModel::m_k
std::shared_ptr< BasicParameter > m_k
Definition: CompactSersicModel.h:57
ModelFitting::CompactSersicModel::getRasterizedImage
ImageType getRasterizedImage(double pixel_scale, std::size_t size_x, std::size_t size_y) const override
CompactModelBase.h
std::sqrt
T sqrt(T... args)
ModelFitting::CompactSersicModel::SersicModelEvaluator
Definition: CompactSersicModel.h:33
ModelFitting::CompactModelBase
Definition: CompactModelBase.h:21
ModelFitting::CompactSersicModel::getValue
double getValue(double x, double y) const override
pixel_scale
const double pixel_scale
Definition: TestImage.cpp:75
ModelFitting::CompactSersicModel::SersicModelEvaluator::evaluateModel
float evaluateModel(float x, float y) const
Definition: CompactSersicModel.h:37
ModelFitting::CompactSersicModel::SersicModelEvaluator::k
double k
Definition: CompactSersicModel.h:35
ModelFitting::CompactSersicModel::CompactSersicModel
CompactSersicModel(double sharp_radius, std::shared_ptr< BasicParameter > i0, std::shared_ptr< BasicParameter > k, std::shared_ptr< BasicParameter > n, std::shared_ptr< BasicParameter > x_scale, std::shared_ptr< BasicParameter > y_scale, std::shared_ptr< BasicParameter > rotation, double width, double height, std::shared_ptr< BasicParameter > x, std::shared_ptr< BasicParameter > y, std::tuple< double, double, double, double > transform)
x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
Definition: MoffatModelFittingTask.cpp:93
std::exp
T exp(T... args)
ModelFitting::CompactSersicModel::SersicModelEvaluator::n
double n
Definition: CompactSersicModel.h:35
SourceXtractor::transform
std::pair< double, double > transform(int x, int y, const std::array< double, 4 > &t)
Definition: TransformedAperture.cpp:46
std::size_t
ModelFitting::CompactSersicModel
Definition: CompactSersicModel.h:16
y
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
Definition: MoffatModelFittingTask.cpp:93
ModelFitting::CompactSersicModel::m_i0
std::shared_ptr< BasicParameter > m_i0
Definition: CompactSersicModel.h:56
ModelFitting
Definition: AsinhChiSquareComparator.h:30
SExtractor::Mat22
Definition: Mat22.h:19