SourceXtractorPlusPlus 1.0.3
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
42
44public:
46
48 const SourceInterface& source,
52 double model_base_size,
54 std::shared_ptr<CoordinateSystem> reference_coordinates,
55 std::shared_ptr<CoordinateSystem> coordinates, PixelCoordinate offset) const = 0;
56
57private:
58};
59
83
85public:
98
100
102 const SourceInterface& source,
106 double model_base_size,
108 std::shared_ptr<CoordinateSystem> reference_coordinates,
109 std::shared_ptr<CoordinateSystem> coordinates, PixelCoordinate offset) const;
110
111private:
118};
119
121public:
134
136
138 const SourceInterface& source,
142 double model_base_size,
144 std::shared_ptr<CoordinateSystem> reference_coordinates,
145 std::shared_ptr<CoordinateSystem> coordinates, PixelCoordinate offset) const;
146
147private:
154};
155
157public:
172
174
176 const SourceInterface& source,
180 double model_base_size,
182 std::shared_ptr<CoordinateSystem> reference_coordinates,
183 std::shared_ptr<CoordinateSystem> coordinates, PixelCoordinate offset) const;
184
185private:
193};
194
215
216#ifdef WITH_ONNX_MODELS
217
218class OnnxModel;
219
220class FlexibleModelFittingOnnxModel : public FlexibleModelFittingModel {
221public:
222 FlexibleModelFittingOnnxModel(std::vector<std::shared_ptr<OnnxModel>> models,
230
231 virtual ~FlexibleModelFittingOnnxModel() {}
232
233 virtual void addForSource(FlexibleModelFittingParameterManager& manager,
234 const SourceInterface& source,
238 double model_base_size,
240 std::shared_ptr<CoordinateSystem> reference_coordinates,
241 std::shared_ptr<CoordinateSystem> coordinates, PixelCoordinate offset) const;
242
243private:
250
252
254};
255
256#endif
257
258}
259
260#endif /* _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGMODEL_H_ */
std::shared_ptr< FlexibleModelFittingParameter > m_value
FlexibleModelFittingConstantModel(std::shared_ptr< FlexibleModelFittingParameter > 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, double model_base_size, 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_flux
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)
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, double model_base_size, 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_effective_radius
std::shared_ptr< FlexibleModelFittingParameter > m_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, double model_base_size, 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_y
std::shared_ptr< FlexibleModelFittingParameter > m_x
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, double model_base_size, 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
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
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, double model_base_size, 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_sersic_index
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, double model_base_size, 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_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)
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.