SourceXtractorPlusPlus 0.19.2
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
FlexibleModelFittingModel.h
Go to the documentation of this file.
1
17/*
18 * FlexibleModelFittingModel.h
19 *
20 * Created on: Sep 17, 2018
21 * Author: mschefer
22 */
23
24#ifndef _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGMODEL_H_
25#define _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGMODEL_H_
26
27#include <vector>
28
32
36
38
39namespace SourceXtractor {
40
41class FlexibleModelFittingParameterManager;
42
44public:
46
48 const SourceInterface& source,
53 std::shared_ptr<CoordinateSystem> reference_coordinates,
54 std::shared_ptr<CoordinateSystem> coordinates, PixelCoordinate offset) const = 0;
55
56private:
57};
58
60public:
64 : m_x(x), m_y(y), m_flux(flux) {}
65
67
69 const SourceInterface& source,
74 std::shared_ptr<CoordinateSystem> reference_coordinates,
75 std::shared_ptr<CoordinateSystem> coordinates, PixelCoordinate offset) const;
76private:
80};
81
83public:
90 : m_x(x),
91 m_y(y),
92 m_flux(flux),
93 m_effective_radius(effective_radius),
94 m_aspect_ratio(aspect_ratio),
95 m_angle(angle) {}
96
98
100 const SourceInterface& source,
105 std::shared_ptr<CoordinateSystem> reference_coordinates,
106 std::shared_ptr<CoordinateSystem> coordinates, PixelCoordinate offset) const;
107
108private:
115};
116
118public:
125 : m_x(x),
126 m_y(y),
127 m_flux(flux),
128 m_effective_radius(effective_radius),
129 m_aspect_ratio(aspect_ratio),
130 m_angle(angle) {}
131
133
135 const SourceInterface& source,
140 std::shared_ptr<CoordinateSystem> reference_coordinates,
141 std::shared_ptr<CoordinateSystem> coordinates, PixelCoordinate offset) const;
142
143private:
150};
151
153public:
161 : m_x(x),
162 m_y(y),
163 m_flux(flux),
164 m_sersic_index(sersic_index),
165 m_effective_radius(effective_radius),
166 m_aspect_ratio(aspect_ratio),
167 m_angle(angle) {}
168
170
172 const SourceInterface& source,
177 std::shared_ptr<CoordinateSystem> reference_coordinates,
178 std::shared_ptr<CoordinateSystem> coordinates, PixelCoordinate offset) const;
179
180private:
188};
189
191public:
193 : m_value(value) {}
194
196
198 const SourceInterface& source,
203 std::shared_ptr<CoordinateSystem> reference_coordinates,
204 std::shared_ptr<CoordinateSystem> coordinates, PixelCoordinate offset) const;
205
206private:
208};
209
210#ifdef WITH_ONNX_MODELS
211
212class OnnxModel;
213
214class FlexibleModelFittingOnnxModel : public FlexibleModelFittingModel {
215public:
216 FlexibleModelFittingOnnxModel(std::vector<std::shared_ptr<OnnxModel>> models,
224
225 virtual ~FlexibleModelFittingOnnxModel() {}
226
227 virtual void addForSource(FlexibleModelFittingParameterManager& manager,
228 const SourceInterface& source,
233 std::shared_ptr<CoordinateSystem> reference_coordinates,
234 std::shared_ptr<CoordinateSystem> coordinates, PixelCoordinate offset) const;
235
236private:
243
245
247};
248
249#endif
250
251}
252
253#endif /* _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGMODEL_H_ */
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
std::shared_ptr< FlexibleModelFittingParameter > m_value
virtual void addForSource(FlexibleModelFittingParameterManager &manager, const SourceInterface &source, std::vector< ModelFitting::ConstantModel > &constant_models, std::vector< ModelFitting::PointModel > &point_models, std::vector< std::shared_ptr< ModelFitting::ExtendedModel< ImageInterfaceTypePtr > > > &extended_models, std::tuple< double, double, double, double > jacobian, std::shared_ptr< CoordinateSystem > reference_coordinates, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset) const
FlexibleModelFittingConstantModel(std::shared_ptr< FlexibleModelFittingParameter > value)
std::shared_ptr< FlexibleModelFittingParameter > m_flux
virtual void addForSource(FlexibleModelFittingParameterManager &manager, const SourceInterface &source, std::vector< ModelFitting::ConstantModel > &constant_models, std::vector< ModelFitting::PointModel > &point_models, std::vector< std::shared_ptr< ModelFitting::ExtendedModel< ImageInterfaceTypePtr > > > &extended_models, std::tuple< double, double, double, double > jacobian, std::shared_ptr< CoordinateSystem > reference_coordinates, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset) const
std::shared_ptr< FlexibleModelFittingParameter > m_angle
std::shared_ptr< FlexibleModelFittingParameter > m_y
std::shared_ptr< FlexibleModelFittingParameter > m_effective_radius
std::shared_ptr< FlexibleModelFittingParameter > m_x
std::shared_ptr< FlexibleModelFittingParameter > m_aspect_ratio
FlexibleModelFittingDevaucouleursModel(std::shared_ptr< FlexibleModelFittingParameter > x, std::shared_ptr< FlexibleModelFittingParameter > y, std::shared_ptr< FlexibleModelFittingParameter > flux, std::shared_ptr< FlexibleModelFittingParameter > effective_radius, std::shared_ptr< FlexibleModelFittingParameter > aspect_ratio, std::shared_ptr< FlexibleModelFittingParameter > angle)
std::shared_ptr< FlexibleModelFittingParameter > m_effective_radius
std::shared_ptr< FlexibleModelFittingParameter > m_angle
std::shared_ptr< FlexibleModelFittingParameter > m_y
std::shared_ptr< FlexibleModelFittingParameter > m_x
virtual void addForSource(FlexibleModelFittingParameterManager &manager, const SourceInterface &source, std::vector< ModelFitting::ConstantModel > &constant_models, std::vector< ModelFitting::PointModel > &point_models, std::vector< std::shared_ptr< ModelFitting::ExtendedModel< ImageInterfaceTypePtr > > > &extended_models, std::tuple< double, double, double, double > jacobian, std::shared_ptr< CoordinateSystem > reference_coordinates, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset) const
std::shared_ptr< FlexibleModelFittingParameter > m_aspect_ratio
std::shared_ptr< FlexibleModelFittingParameter > m_flux
FlexibleModelFittingExponentialModel(std::shared_ptr< FlexibleModelFittingParameter > x, std::shared_ptr< FlexibleModelFittingParameter > y, std::shared_ptr< FlexibleModelFittingParameter > flux, std::shared_ptr< FlexibleModelFittingParameter > effective_radius, std::shared_ptr< FlexibleModelFittingParameter > aspect_ratio, std::shared_ptr< FlexibleModelFittingParameter > angle)
virtual void addForSource(FlexibleModelFittingParameterManager &manager, const SourceInterface &source, std::vector< ModelFitting::ConstantModel > &constant_models, std::vector< ModelFitting::PointModel > &point_models, std::vector< std::shared_ptr< ModelFitting::ExtendedModel< ImageInterfaceTypePtr > > > &extended_models, std::tuple< double, double, double, double > jacobian, std::shared_ptr< CoordinateSystem > reference_coordinates, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset) const =0
std::shared_ptr< FlexibleModelFittingParameter > m_flux
virtual void addForSource(FlexibleModelFittingParameterManager &manager, const SourceInterface &source, std::vector< ModelFitting::ConstantModel > &constant_models, std::vector< ModelFitting::PointModel > &point_models, std::vector< std::shared_ptr< ModelFitting::ExtendedModel< ImageInterfaceTypePtr > > > &extended_models, std::tuple< double, double, double, double > jacobian, std::shared_ptr< CoordinateSystem > reference_coordinates, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset) const
FlexibleModelFittingPointModel(std::shared_ptr< FlexibleModelFittingParameter > x, std::shared_ptr< FlexibleModelFittingParameter > y, std::shared_ptr< FlexibleModelFittingParameter > flux)
std::shared_ptr< FlexibleModelFittingParameter > m_x
std::shared_ptr< FlexibleModelFittingParameter > m_y
std::shared_ptr< FlexibleModelFittingParameter > m_sersic_index
std::shared_ptr< FlexibleModelFittingParameter > m_x
std::shared_ptr< FlexibleModelFittingParameter > m_y
FlexibleModelFittingSersicModel(std::shared_ptr< FlexibleModelFittingParameter > x, std::shared_ptr< FlexibleModelFittingParameter > y, std::shared_ptr< FlexibleModelFittingParameter > flux, std::shared_ptr< FlexibleModelFittingParameter > sersic_index, std::shared_ptr< FlexibleModelFittingParameter > effective_radius, std::shared_ptr< FlexibleModelFittingParameter > aspect_ratio, std::shared_ptr< FlexibleModelFittingParameter > angle)
virtual void addForSource(FlexibleModelFittingParameterManager &manager, const SourceInterface &source, std::vector< ModelFitting::ConstantModel > &constant_models, std::vector< ModelFitting::PointModel > &point_models, std::vector< std::shared_ptr< ModelFitting::ExtendedModel< ImageInterfaceTypePtr > > > &extended_models, std::tuple< double, double, double, double > jacobian, std::shared_ptr< CoordinateSystem > reference_coordinates, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset) const
std::shared_ptr< FlexibleModelFittingParameter > m_aspect_ratio
std::shared_ptr< FlexibleModelFittingParameter > m_effective_radius
std::shared_ptr< FlexibleModelFittingParameter > m_angle
std::shared_ptr< FlexibleModelFittingParameter > m_flux
The SourceInterface is an abstract "source" that has properties attached to it.
A pixel coordinate made of two integers m_x and m_y.