SourceXtractorPlusPlus
0.21
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SEImplementation
SEImplementation
Plugin
FlexibleModelFitting
FlexibleModelFittingIterativeTask.h
Go to the documentation of this file.
1
18
#ifndef _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGITERATIVETASK_H_
19
#define _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGITERATIVETASK_H_
20
21
#include "
ModelFitting/Models/FrameModel.h
"
22
#include "
ModelFitting/Engine/ResidualEstimator.h
"
23
#include "
ModelFitting/Engine/LeastSquareEngineManager.h
"
24
25
#include "
SEUtils/PixelRectangle.h
"
26
27
#include "
SEFramework/Image/VectorImage.h
"
28
#include "
SEFramework/Task/GroupTask.h
"
29
30
//#include "SEImplementation/Configuration/SamplingConfig.h"
31
32
#include "
SEImplementation/Plugin/FlexibleModelFitting/FlexibleModelFittingParameter.h
"
33
#include "
SEImplementation/Plugin/FlexibleModelFitting/FlexibleModelFittingFrame.h
"
34
#include "
SEImplementation/Plugin/FlexibleModelFitting/FlexibleModelFittingPrior.h
"
35
36
namespace
SourceXtractor
{
37
38
class
FlexibleModelFittingIterativeTask
:
public
GroupTask
{
39
40
public
:
41
FlexibleModelFittingIterativeTask
(
const
std::string
&
least_squares_engine
,
42
unsigned
int
max_iterations
,
double
modified_chi_squared_scale
,
43
std::vector
<
std::shared_ptr<FlexibleModelFittingParameter>
>
parameters
,
44
std::vector
<
std::shared_ptr<FlexibleModelFittingFrame>
>
frames
,
45
std::vector
<
std::shared_ptr<FlexibleModelFittingPrior>
>
priors
,
46
double
scale_factor
=1.0,
47
int
meta_iterations
=3,
48
double
deblend_factor
=1.0,
49
double
meta_iteration_stop
=0.0001,
50
size_t
max_fit_size
=100
51
);
52
53
virtual
~FlexibleModelFittingIterativeTask
();
54
55
void
computeProperties
(
SourceGroupInterface
&
group
)
const override
;
56
57
private
:
58
struct
SourceState
{
59
std::unordered_map<int, double>
parameters_initial_values
;
60
std::unordered_map<int, double>
parameters_values
;
61
std::unordered_map<int, double>
parameters_sigmas
;
62
std::unordered_map<int, bool>
parameters_fitted
;
63
Flags
flags
;
64
double
reduced_chi_squared
;
65
float
duration
;
66
unsigned
int
iterations
;
67
unsigned
int
stop_reason
;
68
std::vector<SeFloat>
chi_squared_per_meta
;
69
std::vector<int>
iterations_per_meta
;
70
};
71
72
struct
FittingState
{
73
std::vector<SourceState>
source_states
;
74
};
75
76
std::shared_ptr<VectorImage<SeFloat>
>
createDeblendImage
(
77
SourceGroupInterface
&
group
,
SourceInterface
&
source
,
int
source_index
,
78
std::shared_ptr<FlexibleModelFittingFrame>
frame
,
FittingState
& state)
const
;
79
80
void
fitSource
(
SourceGroupInterface
&
group
,
SourceInterface
&
source
,
int
index,
FittingState
& state)
const
;
81
void
updateCheckImages
(
SourceGroupInterface
&
group
,
double
pixel_scale
,
FittingState
& state)
const
;
82
SeFloat
computeChiSquared
(
SourceGroupInterface
&
group
,
SourceInterface
&
source
,
int
index,
83
double
pixel_scale
,
FlexibleModelFittingParameterManager
&
manager
,
int
&
total_data_points
,
FittingState
& state)
const
;
84
SeFloat
computeChiSquaredForFrame
(
std::shared_ptr
<
const
Image<SeFloat>
>
image
,
85
std::shared_ptr
<
const
Image<SeFloat>
> model,
std::shared_ptr
<
const
Image<SeFloat>
>
weights
,
int
&
data_points
)
const
;
86
int
fitSourcePrepareParameters
(
FlexibleModelFittingParameterManager
&
parameter_manager
,
87
ModelFitting::EngineParameterManager
&
engine_parameter_manager
,
88
SourceInterface
&
source
,
int
index,
FittingState
& state)
const
;
89
int
fitSourcePrepareModels
(
FlexibleModelFittingParameterManager
&
parameter_manager
,
90
ModelFitting::ResidualEstimator
&
res_estimator
,
int
&
good_pixels
,
91
SourceGroupInterface
&
group
,
SourceInterface
&
source
,
int
index,
FittingState
& state,
double
downscaling
)
const
;
92
SeFloat
fitSourceComputeChiSquared
(
FlexibleModelFittingParameterManager
&
parameter_manager
,
93
SourceGroupInterface
&
group
,
SourceInterface
&
source
,
int
index,
FittingState
& state)
const
;
94
void
fitSourceUpdateState
(
FlexibleModelFittingParameterManager
&
parameter_manager
,
SourceInterface
&
source
,
95
SeFloat
avg_reduced_chi_squared
,
SeFloat
duration,
unsigned
int
iterations,
unsigned
int
stop_reason,
Flags
flags,
96
ModelFitting::LeastSquareSummary
solution
,
97
int
index,
FittingState
& state)
const
;
98
99
// Task configuration
100
std::string
m_least_squares_engine
;
101
unsigned
int
m_max_iterations
;
102
double
m_modified_chi_squared_scale
;
103
double
m_scale_factor
;
104
int
m_meta_iterations
;
105
double
m_deblend_factor
;
106
double
m_meta_iteration_stop
;
107
size_t
m_max_fit_size
;
108
109
std::vector<std::shared_ptr<FlexibleModelFittingParameter>
>
m_parameters
;
110
std::vector<std::shared_ptr<FlexibleModelFittingFrame>
>
m_frames
;
111
std::vector<std::shared_ptr<FlexibleModelFittingPrior>
>
m_priors
;
112
};
113
114
}
115
116
#endif
/* _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGITERATIVETASK_H_ */
FlexibleModelFittingFrame.h
FlexibleModelFittingParameter.h
FlexibleModelFittingPrior.h
FrameModel.h
GroupTask.h
LeastSquareEngineManager.h
PixelRectangle.h
ResidualEstimator.h
pixel_scale
const double pixel_scale
Definition
TestImage.cpp:74
VectorImage.h
std::string
ModelFitting::EngineParameterManager
Class responsible for managing the parameters the least square engine minimizes.
Definition
EngineParameterManager.h:61
ModelFitting::ResidualEstimator
Provides to the LeastSquareEngine the residual values.
Definition
ResidualEstimator.h:50
SourceXtractor::FlexibleModelFittingIterativeTask
Definition
FlexibleModelFittingIterativeTask.h:38
SourceXtractor::FlexibleModelFittingIterativeTask::fitSourceUpdateState
void fitSourceUpdateState(FlexibleModelFittingParameterManager ¶meter_manager, SourceInterface &source, SeFloat avg_reduced_chi_squared, SeFloat duration, unsigned int iterations, unsigned int stop_reason, Flags flags, ModelFitting::LeastSquareSummary solution, int index, FittingState &state) const
Definition
FlexibleModelFittingIterativeTask.cpp:425
SourceXtractor::FlexibleModelFittingIterativeTask::fitSource
void fitSource(SourceGroupInterface &group, SourceInterface &source, int index, FittingState &state) const
Definition
FlexibleModelFittingIterativeTask.cpp:472
SourceXtractor::FlexibleModelFittingIterativeTask::m_max_iterations
unsigned int m_max_iterations
Definition
FlexibleModelFittingIterativeTask.h:101
SourceXtractor::FlexibleModelFittingIterativeTask::m_deblend_factor
double m_deblend_factor
Definition
FlexibleModelFittingIterativeTask.h:105
SourceXtractor::FlexibleModelFittingIterativeTask::m_modified_chi_squared_scale
double m_modified_chi_squared_scale
Definition
FlexibleModelFittingIterativeTask.h:102
SourceXtractor::FlexibleModelFittingIterativeTask::fitSourcePrepareParameters
int fitSourcePrepareParameters(FlexibleModelFittingParameterManager ¶meter_manager, ModelFitting::EngineParameterManager &engine_parameter_manager, SourceInterface &source, int index, FittingState &state) const
Definition
FlexibleModelFittingIterativeTask.cpp:329
SourceXtractor::FlexibleModelFittingIterativeTask::computeProperties
void computeProperties(SourceGroupInterface &group) const override
Computes one or more properties for the SourceGroup and/or the Sources it contains.
Definition
FlexibleModelFittingIterativeTask.cpp:184
SourceXtractor::FlexibleModelFittingIterativeTask::fitSourceComputeChiSquared
SeFloat fitSourceComputeChiSquared(FlexibleModelFittingParameterManager ¶meter_manager, SourceGroupInterface &group, SourceInterface &source, int index, FittingState &state) const
Definition
FlexibleModelFittingIterativeTask.cpp:404
SourceXtractor::FlexibleModelFittingIterativeTask::m_scale_factor
double m_scale_factor
Definition
FlexibleModelFittingIterativeTask.h:103
SourceXtractor::FlexibleModelFittingIterativeTask::m_frames
std::vector< std::shared_ptr< FlexibleModelFittingFrame > > m_frames
Definition
FlexibleModelFittingIterativeTask.h:110
SourceXtractor::FlexibleModelFittingIterativeTask::m_meta_iterations
int m_meta_iterations
Definition
FlexibleModelFittingIterativeTask.h:104
SourceXtractor::FlexibleModelFittingIterativeTask::m_meta_iteration_stop
double m_meta_iteration_stop
Definition
FlexibleModelFittingIterativeTask.h:106
SourceXtractor::FlexibleModelFittingIterativeTask::createDeblendImage
std::shared_ptr< VectorImage< SeFloat > > createDeblendImage(SourceGroupInterface &group, SourceInterface &source, int source_index, std::shared_ptr< FlexibleModelFittingFrame > frame, FittingState &state) const
Definition
FlexibleModelFittingIterativeTask.cpp:275
SourceXtractor::FlexibleModelFittingIterativeTask::fitSourcePrepareModels
int fitSourcePrepareModels(FlexibleModelFittingParameterManager ¶meter_manager, ModelFitting::ResidualEstimator &res_estimator, int &good_pixels, SourceGroupInterface &group, SourceInterface &source, int index, FittingState &state, double downscaling) const
Definition
FlexibleModelFittingIterativeTask.cpp:358
SourceXtractor::FlexibleModelFittingIterativeTask::m_least_squares_engine
std::string m_least_squares_engine
Definition
FlexibleModelFittingIterativeTask.h:100
SourceXtractor::FlexibleModelFittingIterativeTask::FlexibleModelFittingIterativeTask
FlexibleModelFittingIterativeTask(const std::string &least_squares_engine, unsigned int max_iterations, double modified_chi_squared_scale, std::vector< std::shared_ptr< FlexibleModelFittingParameter > > parameters, std::vector< std::shared_ptr< FlexibleModelFittingFrame > > frames, std::vector< std::shared_ptr< FlexibleModelFittingPrior > > priors, double scale_factor=1.0, int meta_iterations=3, double deblend_factor=1.0, double meta_iteration_stop=0.0001, size_t max_fit_size=100)
Definition
FlexibleModelFittingIterativeTask.cpp:49
SourceXtractor::FlexibleModelFittingIterativeTask::m_parameters
std::vector< std::shared_ptr< FlexibleModelFittingParameter > > m_parameters
Definition
FlexibleModelFittingIterativeTask.h:109
SourceXtractor::FlexibleModelFittingIterativeTask::computeChiSquared
SeFloat computeChiSquared(SourceGroupInterface &group, SourceInterface &source, int index, double pixel_scale, FlexibleModelFittingParameterManager &manager, int &total_data_points, FittingState &state) const
Definition
FlexibleModelFittingIterativeTask.cpp:638
SourceXtractor::FlexibleModelFittingIterativeTask::~FlexibleModelFittingIterativeTask
virtual ~FlexibleModelFittingIterativeTask()
Definition
FlexibleModelFittingIterativeTask.cpp:65
SourceXtractor::FlexibleModelFittingIterativeTask::computeChiSquaredForFrame
SeFloat computeChiSquaredForFrame(std::shared_ptr< const Image< SeFloat > > image, std::shared_ptr< const Image< SeFloat > > model, std::shared_ptr< const Image< SeFloat > > weights, int &data_points) const
Definition
FlexibleModelFittingIterativeTask.cpp:618
SourceXtractor::FlexibleModelFittingIterativeTask::updateCheckImages
void updateCheckImages(SourceGroupInterface &group, double pixel_scale, FittingState &state) const
Definition
FlexibleModelFittingIterativeTask.cpp:563
SourceXtractor::FlexibleModelFittingIterativeTask::m_priors
std::vector< std::shared_ptr< FlexibleModelFittingPrior > > m_priors
Definition
FlexibleModelFittingIterativeTask.h:111
SourceXtractor::FlexibleModelFittingIterativeTask::m_max_fit_size
size_t m_max_fit_size
Definition
FlexibleModelFittingIterativeTask.h:107
SourceXtractor::FlexibleModelFittingParameterManager
Definition
FlexibleModelFittingParameterManager.h:44
SourceXtractor::GroupTask
A Task that acts on a SourceGroup to compute one or more properties.
Definition
GroupTask.h:36
SourceXtractor::SourceGroupInterface
Defines the interface used to group sources.
Definition
SourceGroupInterface.h:38
SourceXtractor::SourceInterface
The SourceInterface is an abstract "source" that has properties attached to it.
Definition
SourceInterface.h:46
std::function
SourceXtractor
Definition
Aperture.h:30
SourceXtractor::Flags
Flags
Flagging of bad sources.
Definition
SourceFlags.h:37
SourceXtractor::SeFloat
SeFloat32 SeFloat
Definition
Types.h:32
std::shared_ptr
ModelFitting::LeastSquareSummary
Class containing the summary information of solving a least square minimization problem.
Definition
LeastSquareSummary.h:38
SourceXtractor::FlexibleModelFittingIterativeTask::FittingState
Definition
FlexibleModelFittingIterativeTask.h:72
SourceXtractor::FlexibleModelFittingIterativeTask::FittingState::source_states
std::vector< SourceState > source_states
Definition
FlexibleModelFittingIterativeTask.h:73
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState
Definition
FlexibleModelFittingIterativeTask.h:58
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::parameters_sigmas
std::unordered_map< int, double > parameters_sigmas
Definition
FlexibleModelFittingIterativeTask.h:61
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::iterations_per_meta
std::vector< int > iterations_per_meta
Definition
FlexibleModelFittingIterativeTask.h:69
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::parameters_fitted
std::unordered_map< int, bool > parameters_fitted
Definition
FlexibleModelFittingIterativeTask.h:62
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::chi_squared_per_meta
std::vector< SeFloat > chi_squared_per_meta
Definition
FlexibleModelFittingIterativeTask.h:68
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::flags
Flags flags
Definition
FlexibleModelFittingIterativeTask.h:63
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::iterations
unsigned int iterations
Definition
FlexibleModelFittingIterativeTask.h:66
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::parameters_values
std::unordered_map< int, double > parameters_values
Definition
FlexibleModelFittingIterativeTask.h:60
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::stop_reason
unsigned int stop_reason
Definition
FlexibleModelFittingIterativeTask.h:67
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::duration
float duration
Definition
FlexibleModelFittingIterativeTask.h:65
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::reduced_chi_squared
double reduced_chi_squared
Definition
FlexibleModelFittingIterativeTask.h:64
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::parameters_initial_values
std::unordered_map< int, double > parameters_initial_values
Definition
FlexibleModelFittingIterativeTask.h:59
std::vector
Generated by
1.10.0