SourceXtractorPlusPlus
1.0.3
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SEImplementation
src
lib
Plugin
AutoPhotometry
AutoPhotometryTaskFactory.cpp
Go to the documentation of this file.
1
17
/*
18
* AutoPhotometryTaskFactory.cpp
19
*
20
* Created on: Jul 18, 2016
21
* Author: mkuemmel@usm.lmu.de
22
*/
23
24
#include <iostream>
25
#include <sstream>
26
27
#include "
SEFramework/Property/PropertyId.h
"
28
#include "
SEFramework/Task/Task.h
"
29
30
#include "
SEImplementation/Configuration/MeasurementImageConfig.h
"
31
#include "
SEImplementation/Configuration/WeightImageConfig.h
"
32
#include "
SEImplementation/Configuration/MagnitudeConfig.h
"
33
#include "
SEImplementation/Plugin/AutoPhotometry/AutoPhotometry.h
"
34
#include "
SEImplementation/Plugin/AutoPhotometry/AutoPhotometryFlag.h
"
35
#include "
SEImplementation/Plugin/AutoPhotometry/AutoPhotometryArray.h
"
36
#include "
SEImplementation/Plugin/AutoPhotometry/AutoPhotometryConfig.h
"
37
#include "
SEImplementation/Plugin/AutoPhotometry/AutoPhotometryTask.h
"
38
#include "
SEImplementation/Plugin/AutoPhotometry/AutoPhotometryFlagTask.h
"
39
#include "
SEImplementation/Plugin/AutoPhotometry/AutoPhotometryArrayTask.h
"
40
#include "
SEImplementation/Plugin/AutoPhotometry/AutoPhotometryTaskFactory.h
"
41
#include "
SEImplementation/Configuration/CheckImagesConfig.h
"
42
#include "
SEImplementation/CheckImages/SourceIdCheckImage.h
"
43
44
45
namespace
SourceXtractor
{
46
47
AutoPhotometryTaskFactory::AutoPhotometryTaskFactory
() :
m_magnitude_zero_point
(0),
m_kron_factor
(0),
m_kron_minrad
(0),
48
m_symmetry_usage
(false) {}
49
50
void
AutoPhotometryTaskFactory::reportConfigDependencies
(
Euclid::Configuration::ConfigManager
&manager)
const
{
51
manager.
registerConfiguration
<
MagnitudeConfig
>();
52
manager.
registerConfiguration
<
AutoPhotometryConfig
>();
53
manager.
registerConfiguration
<
WeightImageConfig
>();
54
manager.
registerConfiguration
<
CheckImagesConfig
>();
55
manager.
registerConfiguration
<
MeasurementImageConfig
>();
56
}
57
58
void
AutoPhotometryTaskFactory::configure
(
Euclid::Configuration::ConfigManager
&manager) {
59
m_magnitude_zero_point
= manager.
getConfiguration
<
MagnitudeConfig
>().getMagnitudeZeroPoint();
60
m_kron_factor
= manager.
getConfiguration
<
AutoPhotometryConfig
>().getAutoKronFactor();
61
m_kron_minrad
= manager.
getConfiguration
<
AutoPhotometryConfig
>().getAutoKronMinrad();
62
m_symmetry_usage
= manager.
getConfiguration
<
WeightImageConfig
>().symmetryUsage();
63
64
auto
& measurement_config = manager.
getConfiguration
<
MeasurementImageConfig
>();
65
const
auto
& image_infos = measurement_config.
getImageInfos
();
66
67
std::map<std::string, unsigned>
pos_in_group;
68
69
for
(
unsigned
int
i = 0; i < image_infos.size(); ++i) {
70
m_auto_names
.emplace_back(
std::make_pair
(
std::to_string
(i), image_infos[i].m_id));
71
m_images
.push_back(image_infos[i].m_id);
72
}
73
}
74
75
void
AutoPhotometryTaskFactory::registerPropertyInstances
(
SourceXtractor::OutputRegistry
&output_registry) {
76
output_registry.
registerPropertyInstances
<
AutoPhotometry
>(
m_auto_names
);
77
}
78
79
std::shared_ptr<Task>
AutoPhotometryTaskFactory::createTask
(
const
PropertyId
&property_id)
const
{
80
if
(property_id.
getTypeId
() ==
typeid
(
AutoPhotometry
)) {
81
return
std::make_shared<AutoPhotometryTask>
(property_id.
getIndex
(),
m_magnitude_zero_point
,
m_kron_factor
,
82
m_kron_minrad
,
m_symmetry_usage
);
83
}
else
if
(property_id ==
PropertyId::create<AutoPhotometryFlag>
()) {
84
return
std::make_shared<AutoPhotometryFlagTask>
(
m_kron_factor
,
m_kron_minrad
);
85
}
else
if
(property_id ==
PropertyId::create<AutoPhotometryArray>
()) {
86
return
std::make_shared<AutoPhotometryArrayTask>
(
m_images
);
87
}
else
{
88
return
nullptr
;
89
}
90
}
91
92
}
AutoPhotometryArrayTask.h
AutoPhotometryArray.h
AutoPhotometryConfig.h
AutoPhotometryFlagTask.h
AutoPhotometryFlag.h
AutoPhotometryTaskFactory.h
AutoPhotometryTask.h
AutoPhotometry.h
CheckImagesConfig.h
MagnitudeConfig.h
MeasurementImageConfig.h
PropertyId.h
SourceIdCheckImage.h
Task.h
WeightImageConfig.h
Euclid::Configuration::ConfigManager
Euclid::Configuration::ConfigManager::registerConfiguration
void registerConfiguration()
Euclid::Configuration::ConfigManager::getConfiguration
T & getConfiguration()
SourceXtractor::AutoPhotometryConfig
Definition
AutoPhotometryConfig.h:32
SourceXtractor::AutoPhotometryTaskFactory::m_magnitude_zero_point
SeFloat m_magnitude_zero_point
Definition
AutoPhotometryTaskFactory.h:50
SourceXtractor::AutoPhotometryTaskFactory::m_kron_minrad
SeFloat m_kron_minrad
Definition
AutoPhotometryTaskFactory.h:52
SourceXtractor::AutoPhotometryTaskFactory::m_auto_names
std::vector< std::pair< std::string, unsigned int > > m_auto_names
Definition
AutoPhotometryTaskFactory.h:54
SourceXtractor::AutoPhotometryTaskFactory::AutoPhotometryTaskFactory
AutoPhotometryTaskFactory()
Definition
AutoPhotometryTaskFactory.cpp:47
SourceXtractor::AutoPhotometryTaskFactory::registerPropertyInstances
void registerPropertyInstances(OutputRegistry &) override
Definition
AutoPhotometryTaskFactory.cpp:75
SourceXtractor::AutoPhotometryTaskFactory::m_symmetry_usage
bool m_symmetry_usage
Definition
AutoPhotometryTaskFactory.h:53
SourceXtractor::AutoPhotometryTaskFactory::createTask
std::shared_ptr< Task > createTask(const PropertyId &property_id) const override
Returns a Task producing a Property corresponding to the given PropertyId.
Definition
AutoPhotometryTaskFactory.cpp:79
SourceXtractor::AutoPhotometryTaskFactory::m_kron_factor
SeFloat m_kron_factor
Definition
AutoPhotometryTaskFactory.h:51
SourceXtractor::AutoPhotometryTaskFactory::reportConfigDependencies
void reportConfigDependencies(Euclid::Configuration::ConfigManager &manager) const override
Registers all the Configuration dependencies.
Definition
AutoPhotometryTaskFactory.cpp:50
SourceXtractor::AutoPhotometryTaskFactory::configure
void configure(Euclid::Configuration::ConfigManager &manager) override
Method which should initialize the object.
Definition
AutoPhotometryTaskFactory.cpp:58
SourceXtractor::AutoPhotometryTaskFactory::m_images
std::vector< unsigned > m_images
Definition
AutoPhotometryTaskFactory.h:55
SourceXtractor::AutoPhotometry
Auto photometry flux and magnitude.
Definition
AutoPhotometry.h:37
SourceXtractor::CheckImagesConfig
Definition
CheckImagesConfig.h:32
SourceXtractor::MagnitudeConfig
Definition
MagnitudeConfig.h:32
SourceXtractor::MeasurementImageConfig
Definition
MeasurementImageConfig.h:37
SourceXtractor::MeasurementImageConfig::getImageInfos
const std::vector< MeasurementImageInfo > & getImageInfos() const
Definition
MeasurementImageConfig.h:76
SourceXtractor::OutputRegistry
Definition
OutputRegistry.h:37
SourceXtractor::OutputRegistry::registerPropertyInstances
void registerPropertyInstances(const std::vector< std::pair< std::string, unsigned int > > &instance_names)
Definition
OutputRegistry.h:64
SourceXtractor::PropertyId
Identifier used to set and retrieve properties.
Definition
PropertyId.h:40
SourceXtractor::PropertyId::create
static PropertyId create(unsigned int index=0)
Definition
PropertyId.h:45
SourceXtractor::PropertyId::getIndex
unsigned int getIndex() const
Definition
PropertyId.h:70
SourceXtractor::PropertyId::getTypeId
std::type_index getTypeId() const
Definition
PropertyId.h:66
SourceXtractor::WeightImageConfig
Definition
WeightImageConfig.h:32
std::make_pair
T make_pair(T... args)
std::make_shared
T make_shared(T... args)
std::map
SourceXtractor
Definition
Aperture.h:30
std::shared_ptr
std::to_string
T to_string(T... args)
Generated by
1.15.0