SourceXtractorPlusPlus
0.16
Please provide a description of the project.
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
virtual
void
computeProperties
(
SourceGroupInterface
& group)
const override
;
56
57
private
:
58
struct
SourceState
{
59
std::unordered_map<int, double>
parameters_values
;
60
std::unordered_map<int, double>
parameters_sigmas
;
61
std::unordered_map<int, bool>
parameters_fitted
;
62
Flags
flags
;
63
double
reduced_chi_squared
;
64
float
duration
;
65
unsigned
int
iterations
;
66
unsigned
int
stop_reason
;
67
std::vector<SeFloat>
chi_squared_per_meta
;
68
std::vector<int>
iterations_per_meta
;
69
};
70
71
struct
FittingState
{
72
std::vector<SourceState>
source_states
;
73
};
74
75
std::shared_ptr<VectorImage<SeFloat>
>
createDeblendImage
(
76
SourceGroupInterface
& group,
SourceInterface
& source,
int
source_index,
77
std::shared_ptr<FlexibleModelFittingFrame>
frame,
FittingState
& state)
const
;
78
79
void
fitSource
(
SourceGroupInterface
& group,
SourceInterface
& source,
int
index,
FittingState
& state)
const
;
80
void
setDummyProperty
(
SourceInterface
& source,
Flags
flags)
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:428
SourceXtractor::FlexibleModelFittingIterativeTask::fitSource
void fitSource(SourceGroupInterface &group, SourceInterface &source, int index, FittingState &state) const
Definition:
FlexibleModelFittingIterativeTask.cpp:474
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:333
SourceXtractor::FlexibleModelFittingIterativeTask::computeProperties
virtual void computeProperties(SourceGroupInterface &group) const override
Computes one or more properties for the SourceGroup and/or the Sources it contains.
Definition:
FlexibleModelFittingIterativeTask.cpp:181
SourceXtractor::FlexibleModelFittingIterativeTask::fitSourceComputeChiSquared
SeFloat fitSourceComputeChiSquared(FlexibleModelFittingParameterManager ¶meter_manager, SourceGroupInterface &group, SourceInterface &source, int index, FittingState &state) const
Definition:
FlexibleModelFittingIterativeTask.cpp:407
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::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:47
SourceXtractor::FlexibleModelFittingIterativeTask::m_meta_iteration_stop
double m_meta_iteration_stop
Definition:
FlexibleModelFittingIterativeTask.h:106
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:621
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:280
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:361
SourceXtractor::FlexibleModelFittingIterativeTask::m_least_squares_engine
std::string m_least_squares_engine
Definition:
FlexibleModelFittingIterativeTask.h:100
SourceXtractor::FlexibleModelFittingIterativeTask::setDummyProperty
void setDummyProperty(SourceInterface &source, Flags flags) const
Definition:
FlexibleModelFittingIterativeTask.cpp:269
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:641
SourceXtractor::FlexibleModelFittingIterativeTask::~FlexibleModelFittingIterativeTask
virtual ~FlexibleModelFittingIterativeTask()
Definition:
FlexibleModelFittingIterativeTask.cpp:63
SourceXtractor::FlexibleModelFittingIterativeTask::updateCheckImages
void updateCheckImages(SourceGroupInterface &group, double pixel_scale, FittingState &state) const
Definition:
FlexibleModelFittingIterativeTask.cpp:566
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:43
SourceXtractor::GroupTask
A Task that acts on a SourceGroup to compute one or more properties.
Definition:
GroupTask.h:36
SourceXtractor::Image
Interface representing an image.
Definition:
Image.h:43
SourceXtractor::SourceGroupInterface
Defines the interface used to group sources.
Definition:
SourceGroupInterface.h:37
SourceXtractor::SourceInterface
The SourceInterface is an abstract "source" that has properties attached to it.
Definition:
SourceInterface.h:46
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:71
SourceXtractor::FlexibleModelFittingIterativeTask::FittingState::source_states
std::vector< SourceState > source_states
Definition:
FlexibleModelFittingIterativeTask.h:72
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState
Definition:
FlexibleModelFittingIterativeTask.h:58
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::parameters_sigmas
std::unordered_map< int, double > parameters_sigmas
Definition:
FlexibleModelFittingIterativeTask.h:60
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::iterations_per_meta
std::vector< int > iterations_per_meta
Definition:
FlexibleModelFittingIterativeTask.h:68
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::parameters_fitted
std::unordered_map< int, bool > parameters_fitted
Definition:
FlexibleModelFittingIterativeTask.h:61
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::chi_squared_per_meta
std::vector< SeFloat > chi_squared_per_meta
Definition:
FlexibleModelFittingIterativeTask.h:67
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::flags
Flags flags
Definition:
FlexibleModelFittingIterativeTask.h:62
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::iterations
unsigned int iterations
Definition:
FlexibleModelFittingIterativeTask.h:65
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::parameters_values
std::unordered_map< int, double > parameters_values
Definition:
FlexibleModelFittingIterativeTask.h:59
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::stop_reason
unsigned int stop_reason
Definition:
FlexibleModelFittingIterativeTask.h:66
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::duration
float duration
Definition:
FlexibleModelFittingIterativeTask.h:64
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::reduced_chi_squared
double reduced_chi_squared
Definition:
FlexibleModelFittingIterativeTask.h:63
std::unordered_map< int, double >
std::vector
Generated by
1.9.1