SourceXtractorPlusPlus
0.19
SourceXtractor++, the next generation SExtractor
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
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_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
updateCheckImages
(
SourceGroupInterface
& group,
double
pixel_scale
,
FittingState
& state)
const
;
81
SeFloat
computeChiSquared
(
SourceGroupInterface
& group,
SourceInterface
& source,
int
index,
82
double
pixel_scale
,
FlexibleModelFittingParameterManager
& manager,
int
& total_data_points,
FittingState
& state)
const
;
83
SeFloat
computeChiSquaredForFrame
(
std::shared_ptr
<
const
Image<SeFloat>
> image,
84
std::shared_ptr
<
const
Image<SeFloat>
> model,
std::shared_ptr
<
const
Image<SeFloat>
> weights,
int
& data_points)
const
;
85
int
fitSourcePrepareParameters
(
FlexibleModelFittingParameterManager
& parameter_manager,
86
ModelFitting::EngineParameterManager
& engine_parameter_manager,
87
SourceInterface
& source,
int
index,
FittingState
& state)
const
;
88
int
fitSourcePrepareModels
(
FlexibleModelFittingParameterManager
& parameter_manager,
89
ModelFitting::ResidualEstimator
& res_estimator,
int
& good_pixels,
90
SourceGroupInterface
& group,
SourceInterface
& source,
int
index,
FittingState
& state,
double
downscaling)
const
;
91
SeFloat
fitSourceComputeChiSquared
(
FlexibleModelFittingParameterManager
& parameter_manager,
92
SourceGroupInterface
& group,
SourceInterface
& source,
int
index,
FittingState
& state)
const
;
93
void
fitSourceUpdateState
(
FlexibleModelFittingParameterManager
& parameter_manager,
SourceInterface
& source,
94
SeFloat
avg_reduced_chi_squared,
SeFloat
duration,
unsigned
int
iterations,
unsigned
int
stop_reason,
Flags
flags,
95
ModelFitting::LeastSquareSummary
solution,
96
int
index,
FittingState
& state)
const
;
97
98
// Task configuration
99
std::string
m_least_squares_engine
;
100
unsigned
int
m_max_iterations
;
101
double
m_modified_chi_squared_scale
;
102
double
m_scale_factor
;
103
int
m_meta_iterations
;
104
double
m_deblend_factor
;
105
double
m_meta_iteration_stop
;
106
size_t
m_max_fit_size
;
107
108
std::vector<std::shared_ptr<FlexibleModelFittingParameter>
>
m_parameters
;
109
std::vector<std::shared_ptr<FlexibleModelFittingFrame>
>
m_frames
;
110
std::vector<std::shared_ptr<FlexibleModelFittingPrior>
>
m_priors
;
111
};
112
113
}
114
115
#endif
/* _SEIMPLEMENTATION_PLUGIN_FLEXIBLEMODELFITTING_FLEXIBLEMODELFITTINGITERATIVETASK_H_ */
SourceXtractor::FlexibleModelFittingIterativeTask::m_least_squares_engine
std::string m_least_squares_engine
Definition:
FlexibleModelFittingIterativeTask.h:99
SourceXtractor::FlexibleModelFittingIterativeTask
Definition:
FlexibleModelFittingIterativeTask.h:38
std::shared_ptr
SourceXtractor::FlexibleModelFittingIterativeTask::m_priors
std::vector< std::shared_ptr< FlexibleModelFittingPrior > > m_priors
Definition:
FlexibleModelFittingIterativeTask.h:110
FlexibleModelFittingPrior.h
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::duration
float duration
Definition:
FlexibleModelFittingIterativeTask.h:64
PixelRectangle.h
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::stop_reason
unsigned int stop_reason
Definition:
FlexibleModelFittingIterativeTask.h:66
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:630
ModelFitting::LeastSquareSummary
Class containing the summary information of solving a least square minimization problem.
Definition:
LeastSquareSummary.h:38
SourceXtractor::FlexibleModelFittingIterativeTask::m_modified_chi_squared_scale
double m_modified_chi_squared_scale
Definition:
FlexibleModelFittingIterativeTask.h:101
SourceXtractor::FlexibleModelFittingIterativeTask::fitSourcePrepareParameters
int fitSourcePrepareParameters(FlexibleModelFittingParameterManager ¶meter_manager, ModelFitting::EngineParameterManager &engine_parameter_manager, SourceInterface &source, int index, FittingState &state) const
Definition:
FlexibleModelFittingIterativeTask.cpp:323
ResidualEstimator.h
SourceXtractor::FlexibleModelFittingIterativeTask::m_max_iterations
unsigned int m_max_iterations
Definition:
FlexibleModelFittingIterativeTask.h:100
FlexibleModelFittingFrame.h
SourceXtractor::FlexibleModelFittingIterativeTask::m_frames
std::vector< std::shared_ptr< FlexibleModelFittingFrame > > m_frames
Definition:
FlexibleModelFittingIterativeTask.h:109
SourceXtractor::FlexibleModelFittingIterativeTask::m_meta_iteration_stop
double m_meta_iteration_stop
Definition:
FlexibleModelFittingIterativeTask.h:105
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::parameters_sigmas
std::unordered_map< int, double > parameters_sigmas
Definition:
FlexibleModelFittingIterativeTask.h:60
SourceXtractor::SeFloat
SeFloat32 SeFloat
Definition:
Types.h:32
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:270
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::parameters_values
std::unordered_map< int, double > parameters_values
Definition:
FlexibleModelFittingIterativeTask.h:59
SourceXtractor::FlexibleModelFittingIterativeTask::m_max_fit_size
size_t m_max_fit_size
Definition:
FlexibleModelFittingIterativeTask.h:106
std::string
STL class.
SourceXtractor::GroupTask
A Task that acts on a SourceGroup to compute one or more properties.
Definition:
GroupTask.h:36
LeastSquareEngineManager.h
SourceXtractor::FlexibleModelFittingIterativeTask::~FlexibleModelFittingIterativeTask
virtual ~FlexibleModelFittingIterativeTask()
Definition:
FlexibleModelFittingIterativeTask.cpp:63
SourceXtractor::FlexibleModelFittingIterativeTask::m_parameters
std::vector< std::shared_ptr< FlexibleModelFittingParameter > > m_parameters
Definition:
FlexibleModelFittingIterativeTask.h:108
VectorImage.h
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:181
SourceXtractor::FlexibleModelFittingParameterManager
Definition:
FlexibleModelFittingParameterManager.h:43
SourceXtractor::FlexibleModelFittingIterativeTask::m_meta_iterations
int m_meta_iterations
Definition:
FlexibleModelFittingIterativeTask.h:103
SourceXtractor::FlexibleModelFittingIterativeTask::fitSourceComputeChiSquared
SeFloat fitSourceComputeChiSquared(FlexibleModelFittingParameterManager ¶meter_manager, SourceGroupInterface &group, SourceInterface &source, int index, FittingState &state) const
Definition:
FlexibleModelFittingIterativeTask.cpp:397
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::parameters_fitted
std::unordered_map< int, bool > parameters_fitted
Definition:
FlexibleModelFittingIterativeTask.h:61
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::iterations_per_meta
std::vector< int > iterations_per_meta
Definition:
FlexibleModelFittingIterativeTask.h:68
SourceXtractor::FlexibleModelFittingIterativeTask::FittingState::source_states
std::vector< SourceState > source_states
Definition:
FlexibleModelFittingIterativeTask.h:72
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::iterations
unsigned int iterations
Definition:
FlexibleModelFittingIterativeTask.h:65
FlexibleModelFittingParameter.h
FrameModel.h
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::SourceGroupInterface
Defines the interface used to group sources.
Definition:
SourceGroupInterface.h:37
std::vector
STL class.
SourceXtractor::FlexibleModelFittingIterativeTask::FittingState
Definition:
FlexibleModelFittingIterativeTask.h:71
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::reduced_chi_squared
double reduced_chi_squared
Definition:
FlexibleModelFittingIterativeTask.h:63
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState
Definition:
FlexibleModelFittingIterativeTask.h:58
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:351
SourceXtractor::FlexibleModelFittingIterativeTask::fitSource
void fitSource(SourceGroupInterface &group, SourceInterface &source, int index, FittingState &state) const
Definition:
FlexibleModelFittingIterativeTask.cpp:465
SourceXtractor::Flags
Flags
Flagging of bad sources.
Definition:
SourceFlags.h:37
SourceXtractor::Image
Interface representing an image.
Definition:
Image.h:43
ModelFitting::EngineParameterManager
Class responsible for managing the parameters the least square engine minimizes.
Definition:
EngineParameterManager.h:61
SourceXtractor::FlexibleModelFittingIterativeTask::m_deblend_factor
double m_deblend_factor
Definition:
FlexibleModelFittingIterativeTask.h:104
SourceXtractor::FlexibleModelFittingIterativeTask::updateCheckImages
void updateCheckImages(SourceGroupInterface &group, double pixel_scale, FittingState &state) const
Definition:
FlexibleModelFittingIterativeTask.cpp:556
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::chi_squared_per_meta
std::vector< SeFloat > chi_squared_per_meta
Definition:
FlexibleModelFittingIterativeTask.h:67
ModelFitting::ResidualEstimator
Provides to the LeastSquareEngine the residual values.
Definition:
ResidualEstimator.h:50
SourceXtractor::FlexibleModelFittingIterativeTask::m_scale_factor
double m_scale_factor
Definition:
FlexibleModelFittingIterativeTask.h:102
SourceXtractor::SourceInterface
The SourceInterface is an abstract "source" that has properties attached to it.
Definition:
SourceInterface.h:46
GroupTask.h
pixel_scale
const double pixel_scale
Definition:
TestImage.cpp:74
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:610
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:418
std::unordered_map< int, double >
SourceXtractor::FlexibleModelFittingIterativeTask::SourceState::flags
Flags flags
Definition:
FlexibleModelFittingIterativeTask.h:62
Generated by
1.8.5