SourceXtractorPlusPlus
0.15
Please provide a description of the project.
SEImplementation
SEImplementation
Plugin
MultiframeModelFitting
MultiframeSourceModel.h
Go to the documentation of this file.
1
17
/*
18
* MultiframeSourceModel.h
19
*
20
* Created on: Nov 24, 2017
21
* Author: mschefer
22
*/
23
24
#ifndef _SEIMPLEMENTATION_PLUGIN_MULTIFRAMEMODELFITTING_MULTIFRAMESOURCEMODEL_H_
25
#define _SEIMPLEMENTATION_PLUGIN_MULTIFRAMEMODELFITTING_MULTIFRAMESOURCEMODEL_H_
26
27
#include "
SEFramework/CoordinateSystem/CoordinateSystem.h
"
28
#include "
SEFramework/Source/SourceInterface.h
"
29
30
#include "
ModelFitting/Parameters/ManualParameter.h
"
31
#include "
ModelFitting/Parameters/EngineParameter.h
"
32
#include "
ModelFitting/Parameters/DependentParameter.h
"
33
#include "
ModelFitting/Models/ExtendedModel.h
"
34
#include "
ModelFitting/Models/TransformedModel.h
"
35
#include "
ModelFitting/Engine/EngineParameterManager.h
"
36
37
namespace
SourceXtractor
{
38
39
class
MultiframeSourceModel
{
40
41
const
SourceInterface
&
m_source
;
42
43
int
m_size
;
44
double
m_center_x
,
m_center_y
;
45
std::shared_ptr<CoordinateSystem>
m_ref_coordinate_system
;
46
double
m_radius_guess
,
m_aspect_guess
;
47
48
49
// common parameters
50
ModelFitting::EngineParameter
dx
,
dy
;
51
52
ModelFitting::ManualParameter
exp_xs
{ 1 };
53
ModelFitting::ManualParameter
exp_n
{ 1 };
54
55
ModelFitting::ManualParameter
dev_xs
{ 1 };
56
ModelFitting::ManualParameter
dev_n
{ 4 };
57
58
ModelFitting::EngineParameter
exp_effective_radius
;
59
ModelFitting::EngineParameter
dev_effective_radius
;
60
61
ModelFitting::DependentParameter<ModelFitting::EngineParameter>
exp_k
;
62
ModelFitting::DependentParameter<ModelFitting::EngineParameter>
dev_k
;
63
64
ModelFitting::EngineParameter
exp_aspect
,
exp_rot
;
65
ModelFitting::EngineParameter
dev_aspect
,
dev_rot
;
66
67
std::vector<std::unique_ptr<ModelFitting::EngineParameter>
>
exp_fluxes
;
68
std::vector<std::unique_ptr<ModelFitting::EngineParameter>
>
dev_fluxes
;
69
70
// per band
71
std::vector
<
std::unique_ptr
<
72
ModelFitting::DependentParameter
<
73
ModelFitting::EngineParameter
,
ModelFitting::EngineParameter
,
ModelFitting::EngineParameter
>>>
exp_i0s
;
74
std::vector
<
std::unique_ptr
<
75
ModelFitting::DependentParameter
<
76
ModelFitting::EngineParameter
,
ModelFitting::EngineParameter
,
ModelFitting::EngineParameter
>>>
dev_i0s
;
77
78
// per frame
79
std::vector
<
std::unique_ptr
<
80
ModelFitting::DependentParameter<ModelFitting::EngineParameter, ModelFitting::EngineParameter>
>>
pixel_x
;
81
std::vector
<
std::unique_ptr
<
82
ModelFitting::DependentParameter<ModelFitting::EngineParameter, ModelFitting::EngineParameter>
>>
pixel_y
;
83
84
std::map<int, int>
m_frame_map
;
85
std::map<int, int>
m_frame_band_map
;
86
87
int
m_number_of_parameters
;
88
89
90
//
91
// // per measurement frame parameters
92
//
93
94
95
public
:
96
97
MultiframeSourceModel
(
const
SourceInterface
& source);
98
99
void
createParamsForBand
(
const
std::vector<int>
& frames_in_band);
100
101
void
createParamsForFrame
(
int
band_nb,
int
frame_nb,
std::shared_ptr<CoordinateSystem>
coordinates,
PixelCoordinate
offset);
102
void
addModelsForFrame
(
int
frame_nb,
std::vector<ModelFitting::TransformedModel>
& extended_models,
std::tuple<double, double, double, double>
jacobian);
103
104
void
registerParameters
(
ModelFitting::EngineParameterManager
& manager);
105
106
void
debugPrint
()
const
;
107
108
109
int
getNumberOfParameters
()
const
;
110
WorldCoordinate
getFittedWorldCoordinate
()
const
;
111
112
ImageCoordinate
getFittedCoordinate
()
const
;
113
114
double
getExpFluxForBand
(
int
band_nb)
const
;
115
double
getDevFluxForBand
(
int
band_nb)
const
;
116
117
std::vector<double>
getFluxes
()
const
;
118
std::vector<double>
getExpFluxes
()
const
;
119
std::vector<double>
getDevFluxes
()
const
;
120
121
SeFloat
getExpRadius
()
const
;
122
SeFloat
getDevRadius
()
const
;
123
124
private
:
125
int
getSize
()
const
;
126
double
getCenterX
()
const
;
127
double
getCenterY
()
const
;
128
129
double
getFluxGuess
(
const
std::vector<int>
& frames_in_band)
const
;
130
double
getRadiusGuess
()
const
;
131
double
getAspectGuess
()
const
;
132
double
getRotGuess
()
const
;
133
134
std::shared_ptr<CoordinateSystem>
getRefCoordinateSystem
()
const
;
135
136
};
137
138
}
139
140
#endif
/* _SEIMPLEMENTATION_PLUGIN_MULTIFRAMEMODELFITTING_MULTIFRAMESOURCEMODEL_H_ */
CoordinateSystem.h
DependentParameter.h
EngineParameterManager.h
EngineParameter.h
ExtendedModel.h
ManualParameter.h
SourceInterface.h
TransformedModel.h
ModelFitting::DependentParameter< ModelFitting::EngineParameter >
ModelFitting::EngineParameterManager
Class responsible for managing the parameters the least square engine minimizes.
Definition:
EngineParameterManager.h:61
ModelFitting::EngineParameter
EngineParameter are those derived from the minimization process.
Definition:
EngineParameter.h:47
ModelFitting::ManualParameter
Definition:
ManualParameter.h:30
SourceXtractor::MultiframeSourceModel
Definition:
MultiframeSourceModel.h:39
SourceXtractor::MultiframeSourceModel::m_size
int m_size
Definition:
MultiframeSourceModel.h:43
SourceXtractor::MultiframeSourceModel::m_aspect_guess
double m_aspect_guess
Definition:
MultiframeSourceModel.h:46
SourceXtractor::MultiframeSourceModel::m_center_y
double m_center_y
Definition:
MultiframeSourceModel.h:44
SourceXtractor::MultiframeSourceModel::dev_n
ModelFitting::ManualParameter dev_n
Definition:
MultiframeSourceModel.h:56
SourceXtractor::MultiframeSourceModel::dx
ModelFitting::EngineParameter dx
Definition:
MultiframeSourceModel.h:50
SourceXtractor::MultiframeSourceModel::dev_i0s
std::vector< std::unique_ptr< ModelFitting::DependentParameter< ModelFitting::EngineParameter, ModelFitting::EngineParameter, ModelFitting::EngineParameter > > > dev_i0s
Definition:
MultiframeSourceModel.h:76
SourceXtractor::MultiframeSourceModel::getCenterY
double getCenterY() const
SourceXtractor::MultiframeSourceModel::getDevFluxForBand
double getDevFluxForBand(int band_nb) const
SourceXtractor::MultiframeSourceModel::getNumberOfParameters
int getNumberOfParameters() const
SourceXtractor::MultiframeSourceModel::getExpFluxes
std::vector< double > getExpFluxes() const
SourceXtractor::MultiframeSourceModel::getCenterX
double getCenterX() const
SourceXtractor::MultiframeSourceModel::dy
ModelFitting::EngineParameter dy
Definition:
MultiframeSourceModel.h:50
SourceXtractor::MultiframeSourceModel::m_frame_map
std::map< int, int > m_frame_map
Definition:
MultiframeSourceModel.h:84
SourceXtractor::MultiframeSourceModel::debugPrint
void debugPrint() const
SourceXtractor::MultiframeSourceModel::dev_xs
ModelFitting::ManualParameter dev_xs
Definition:
MultiframeSourceModel.h:55
SourceXtractor::MultiframeSourceModel::dev_effective_radius
ModelFitting::EngineParameter dev_effective_radius
Definition:
MultiframeSourceModel.h:59
SourceXtractor::MultiframeSourceModel::getFluxes
std::vector< double > getFluxes() const
SourceXtractor::MultiframeSourceModel::m_number_of_parameters
int m_number_of_parameters
Definition:
MultiframeSourceModel.h:87
SourceXtractor::MultiframeSourceModel::dev_aspect
ModelFitting::EngineParameter dev_aspect
Definition:
MultiframeSourceModel.h:65
SourceXtractor::MultiframeSourceModel::createParamsForBand
void createParamsForBand(const std::vector< int > &frames_in_band)
SourceXtractor::MultiframeSourceModel::exp_k
ModelFitting::DependentParameter< ModelFitting::EngineParameter > exp_k
Definition:
MultiframeSourceModel.h:61
SourceXtractor::MultiframeSourceModel::exp_aspect
ModelFitting::EngineParameter exp_aspect
Definition:
MultiframeSourceModel.h:64
SourceXtractor::MultiframeSourceModel::m_center_x
double m_center_x
Definition:
MultiframeSourceModel.h:44
SourceXtractor::MultiframeSourceModel::exp_rot
ModelFitting::EngineParameter exp_rot
Definition:
MultiframeSourceModel.h:64
SourceXtractor::MultiframeSourceModel::addModelsForFrame
void addModelsForFrame(int frame_nb, std::vector< ModelFitting::TransformedModel > &extended_models, std::tuple< double, double, double, double > jacobian)
SourceXtractor::MultiframeSourceModel::pixel_y
std::vector< std::unique_ptr< ModelFitting::DependentParameter< ModelFitting::EngineParameter, ModelFitting::EngineParameter > > > pixel_y
Definition:
MultiframeSourceModel.h:82
SourceXtractor::MultiframeSourceModel::exp_fluxes
std::vector< std::unique_ptr< ModelFitting::EngineParameter > > exp_fluxes
Definition:
MultiframeSourceModel.h:67
SourceXtractor::MultiframeSourceModel::MultiframeSourceModel
MultiframeSourceModel(const SourceInterface &source)
SourceXtractor::MultiframeSourceModel::getFluxGuess
double getFluxGuess(const std::vector< int > &frames_in_band) const
SourceXtractor::MultiframeSourceModel::exp_effective_radius
ModelFitting::EngineParameter exp_effective_radius
Definition:
MultiframeSourceModel.h:58
SourceXtractor::MultiframeSourceModel::m_frame_band_map
std::map< int, int > m_frame_band_map
Definition:
MultiframeSourceModel.h:85
SourceXtractor::MultiframeSourceModel::m_source
const SourceInterface & m_source
Definition:
MultiframeSourceModel.h:41
SourceXtractor::MultiframeSourceModel::pixel_x
std::vector< std::unique_ptr< ModelFitting::DependentParameter< ModelFitting::EngineParameter, ModelFitting::EngineParameter > > > pixel_x
Definition:
MultiframeSourceModel.h:80
SourceXtractor::MultiframeSourceModel::dev_rot
ModelFitting::EngineParameter dev_rot
Definition:
MultiframeSourceModel.h:65
SourceXtractor::MultiframeSourceModel::getExpFluxForBand
double getExpFluxForBand(int band_nb) const
SourceXtractor::MultiframeSourceModel::createParamsForFrame
void createParamsForFrame(int band_nb, int frame_nb, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset)
SourceXtractor::MultiframeSourceModel::getRefCoordinateSystem
std::shared_ptr< CoordinateSystem > getRefCoordinateSystem() const
SourceXtractor::MultiframeSourceModel::exp_i0s
std::vector< std::unique_ptr< ModelFitting::DependentParameter< ModelFitting::EngineParameter, ModelFitting::EngineParameter, ModelFitting::EngineParameter > > > exp_i0s
Definition:
MultiframeSourceModel.h:73
SourceXtractor::MultiframeSourceModel::getDevFluxes
std::vector< double > getDevFluxes() const
SourceXtractor::MultiframeSourceModel::getExpRadius
SeFloat getExpRadius() const
SourceXtractor::MultiframeSourceModel::exp_n
ModelFitting::ManualParameter exp_n
Definition:
MultiframeSourceModel.h:53
SourceXtractor::MultiframeSourceModel::getFittedCoordinate
ImageCoordinate getFittedCoordinate() const
SourceXtractor::MultiframeSourceModel::m_ref_coordinate_system
std::shared_ptr< CoordinateSystem > m_ref_coordinate_system
Definition:
MultiframeSourceModel.h:45
SourceXtractor::MultiframeSourceModel::getRotGuess
double getRotGuess() const
SourceXtractor::MultiframeSourceModel::getRadiusGuess
double getRadiusGuess() const
SourceXtractor::MultiframeSourceModel::dev_fluxes
std::vector< std::unique_ptr< ModelFitting::EngineParameter > > dev_fluxes
Definition:
MultiframeSourceModel.h:68
SourceXtractor::MultiframeSourceModel::registerParameters
void registerParameters(ModelFitting::EngineParameterManager &manager)
SourceXtractor::MultiframeSourceModel::getAspectGuess
double getAspectGuess() const
SourceXtractor::MultiframeSourceModel::dev_k
ModelFitting::DependentParameter< ModelFitting::EngineParameter > dev_k
Definition:
MultiframeSourceModel.h:62
SourceXtractor::MultiframeSourceModel::exp_xs
ModelFitting::ManualParameter exp_xs
Definition:
MultiframeSourceModel.h:52
SourceXtractor::MultiframeSourceModel::getSize
int getSize() const
SourceXtractor::MultiframeSourceModel::getDevRadius
SeFloat getDevRadius() const
SourceXtractor::MultiframeSourceModel::getFittedWorldCoordinate
WorldCoordinate getFittedWorldCoordinate() const
SourceXtractor::MultiframeSourceModel::m_radius_guess
double m_radius_guess
Definition:
MultiframeSourceModel.h:46
SourceXtractor::SourceInterface
The SourceInterface is an abstract "source" that has properties attached to it.
Definition:
SourceInterface.h:46
std::map< int, int >
SourceXtractor
Definition:
Aperture.h:30
SourceXtractor::SeFloat
SeFloat32 SeFloat
Definition:
Types.h:32
std::shared_ptr
SourceXtractor::ImageCoordinate
Definition:
CoordinateSystem.h:42
SourceXtractor::PixelCoordinate
A pixel coordinate made of two integers m_x and m_y.
Definition:
PixelCoordinate.h:37
SourceXtractor::WorldCoordinate
Definition:
CoordinateSystem.h:33
std::tuple< double, double, double, double >
std::unique_ptr
std::vector
Generated by
1.9.1