SourceXtractorPlusPlus
0.11
Please provide a description of the project.
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
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_ */
SourceXtractor::MultiframeSourceModel::MultiframeSourceModel
MultiframeSourceModel(const SourceInterface &source)
SourceXtractor::ImageCoordinate
Definition:
CoordinateSystem.h:42
SourceXtractor::MultiframeSourceModel::getNumberOfParameters
int getNumberOfParameters() const
SourceXtractor::MultiframeSourceModel::getCenterX
double getCenterX() const
std::shared_ptr
SourceXtractor::MultiframeSourceModel::m_center_x
double m_center_x
Definition:
MultiframeSourceModel.h:44
ModelFitting::DependentParameter
Implementation of a parameter depending on an arbitrary number of other parameters.
Definition:
DependentParameter.h:48
SourceXtractor::MultiframeSourceModel::getDevRadius
SeFloat getDevRadius() const
SourceXtractor::MultiframeSourceModel::registerParameters
void registerParameters(ModelFitting::EngineParameterManager &manager)
SourceXtractor::MultiframeSourceModel::exp_fluxes
std::vector< std::unique_ptr< ModelFitting::EngineParameter > > exp_fluxes
Definition:
MultiframeSourceModel.h:67
SourceXtractor::MultiframeSourceModel::dy
ModelFitting::EngineParameter dy
Definition:
MultiframeSourceModel.h:50
SourceXtractor::MultiframeSourceModel::getExpRadius
SeFloat getExpRadius() const
DependentParameter.h
ModelFitting::EngineParameter
EngineParameter are those derived from the minimization process.
Definition:
EngineParameter.h:47
SourceXtractor::MultiframeSourceModel::getDevFluxForBand
double getDevFluxForBand(int band_nb) const
SourceXtractor::MultiframeSourceModel::getCenterY
double getCenterY() const
SourceXtractor::MultiframeSourceModel::pixel_x
std::vector< std::unique_ptr< ModelFitting::DependentParameter< ModelFitting::EngineParameter, ModelFitting::EngineParameter > > > pixel_x
Definition:
MultiframeSourceModel.h:80
SourceXtractor::MultiframeSourceModel::exp_i0s
std::vector< std::unique_ptr< ModelFitting::DependentParameter< ModelFitting::EngineParameter, ModelFitting::EngineParameter, ModelFitting::EngineParameter > > > exp_i0s
Definition:
MultiframeSourceModel.h:73
TransformedModel.h
ModelFitting::ManualParameter
Definition:
ManualParameter.h:30
SourceXtractor::MultiframeSourceModel::dev_n
ModelFitting::ManualParameter dev_n
Definition:
MultiframeSourceModel.h:56
ExtendedModel.h
SourceXtractor::MultiframeSourceModel::getFluxes
std::vector< double > getFluxes() const
ManualParameter.h
SourceXtractor::MultiframeSourceModel::exp_effective_radius
ModelFitting::EngineParameter exp_effective_radius
Definition:
MultiframeSourceModel.h:58
SourceXtractor::SeFloat
SeFloat32 SeFloat
Definition:
Types.h:32
SourceXtractor::MultiframeSourceModel::getExpFluxes
std::vector< double > getExpFluxes() const
SourceXtractor::MultiframeSourceModel::getRotGuess
double getRotGuess() const
SourceXtractor::MultiframeSourceModel::m_radius_guess
double m_radius_guess
Definition:
MultiframeSourceModel.h:46
SourceXtractor::MultiframeSourceModel::getFittedCoordinate
ImageCoordinate getFittedCoordinate() const
SourceXtractor::MultiframeSourceModel::getRadiusGuess
double getRadiusGuess() const
std::map< int, int >
SourceXtractor::MultiframeSourceModel::debugPrint
void debugPrint() const
SourceXtractor::MultiframeSourceModel::getExpFluxForBand
double getExpFluxForBand(int band_nb) const
SourceXtractor::MultiframeSourceModel::getAspectGuess
double getAspectGuess() const
SourceXtractor::MultiframeSourceModel::exp_xs
ModelFitting::ManualParameter exp_xs
Definition:
MultiframeSourceModel.h:52
SourceXtractor::MultiframeSourceModel::getFittedWorldCoordinate
WorldCoordinate getFittedWorldCoordinate() const
EngineParameterManager.h
SourceXtractor::MultiframeSourceModel::m_aspect_guess
double m_aspect_guess
Definition:
MultiframeSourceModel.h:46
SourceXtractor::MultiframeSourceModel::getRefCoordinateSystem
std::shared_ptr< CoordinateSystem > getRefCoordinateSystem() const
SourceXtractor::MultiframeSourceModel::m_number_of_parameters
int m_number_of_parameters
Definition:
MultiframeSourceModel.h:87
SourceXtractor::MultiframeSourceModel::dev_fluxes
std::vector< std::unique_ptr< ModelFitting::EngineParameter > > dev_fluxes
Definition:
MultiframeSourceModel.h:68
SourceXtractor::MultiframeSourceModel::getDevFluxes
std::vector< double > getDevFluxes() const
SourceXtractor::MultiframeSourceModel::m_center_y
double m_center_y
Definition:
MultiframeSourceModel.h:44
SourceXtractor::MultiframeSourceModel::exp_rot
ModelFitting::EngineParameter exp_rot
Definition:
MultiframeSourceModel.h:64
SourceXtractor::MultiframeSourceModel::dev_effective_radius
ModelFitting::EngineParameter dev_effective_radius
Definition:
MultiframeSourceModel.h:59
SourceXtractor::MultiframeSourceModel::createParamsForFrame
void createParamsForFrame(int band_nb, int frame_nb, std::shared_ptr< CoordinateSystem > coordinates, PixelCoordinate offset)
SourceXtractor::MultiframeSourceModel::pixel_y
std::vector< std::unique_ptr< ModelFitting::DependentParameter< ModelFitting::EngineParameter, ModelFitting::EngineParameter > > > pixel_y
Definition:
MultiframeSourceModel.h:82
SourceXtractor::MultiframeSourceModel::dev_k
ModelFitting::DependentParameter< ModelFitting::EngineParameter > dev_k
Definition:
MultiframeSourceModel.h:62
SourceXtractor::MultiframeSourceModel::dev_aspect
ModelFitting::EngineParameter dev_aspect
Definition:
MultiframeSourceModel.h:65
SourceXtractor::PixelCoordinate
A pixel coordinate made of two integers m_x and m_y.
Definition:
PixelCoordinate.h:37
EngineParameter.h
SourceXtractor::MultiframeSourceModel::exp_aspect
ModelFitting::EngineParameter exp_aspect
Definition:
MultiframeSourceModel.h:64
std::tuple< double, double, double, double >
SourceInterface.h
CoordinateSystem.h
std::vector
STL class.
std::unique_ptr
STL class.
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::m_size
int m_size
Definition:
MultiframeSourceModel.h:43
SourceXtractor::MultiframeSourceModel::exp_n
ModelFitting::ManualParameter exp_n
Definition:
MultiframeSourceModel.h:53
SourceXtractor::MultiframeSourceModel::m_ref_coordinate_system
std::shared_ptr< CoordinateSystem > m_ref_coordinate_system
Definition:
MultiframeSourceModel.h:45
ModelFitting::EngineParameterManager
Class responsible for managing the parameters the least square engine minimizes.
Definition:
EngineParameterManager.h:61
SourceXtractor::MultiframeSourceModel::dx
ModelFitting::EngineParameter dx
Definition:
MultiframeSourceModel.h:50
SourceXtractor::MultiframeSourceModel::dev_rot
ModelFitting::EngineParameter dev_rot
Definition:
MultiframeSourceModel.h:65
SourceXtractor::MultiframeSourceModel::m_source
const SourceInterface & m_source
Definition:
MultiframeSourceModel.h:41
SourceXtractor::MultiframeSourceModel::exp_k
ModelFitting::DependentParameter< ModelFitting::EngineParameter > exp_k
Definition:
MultiframeSourceModel.h:61
SourceXtractor::MultiframeSourceModel::m_frame_map
std::map< int, int > m_frame_map
Definition:
MultiframeSourceModel.h:84
SourceXtractor::MultiframeSourceModel::m_frame_band_map
std::map< int, int > m_frame_band_map
Definition:
MultiframeSourceModel.h:85
SourceXtractor::MultiframeSourceModel::addModelsForFrame
void addModelsForFrame(int frame_nb, std::vector< ModelFitting::TransformedModel > &extended_models, std::tuple< double, double, double, double > jacobian)
SourceXtractor::SourceInterface
The SourceInterface is an abstract "source" that has properties attached to it.
Definition:
SourceInterface.h:46
SourceXtractor::MultiframeSourceModel::getSize
int getSize() const
SourceXtractor::MultiframeSourceModel::createParamsForBand
void createParamsForBand(const std::vector< int > &frames_in_band)
SourceXtractor::MultiframeSourceModel::getFluxGuess
double getFluxGuess(const std::vector< int > &frames_in_band) const
SourceXtractor::MultiframeSourceModel::dev_xs
ModelFitting::ManualParameter dev_xs
Definition:
MultiframeSourceModel.h:55
SourceXtractor::MultiframeSourceModel
Definition:
MultiframeSourceModel.h:39
SourceXtractor::WorldCoordinate
Definition:
CoordinateSystem.h:33
Generated by
1.8.5