SourceXtractorPlusPlus
0.21
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SEImplementation
src
lib
Plugin
SourcePsf
SourcePsfTaskFactory.cpp
Go to the documentation of this file.
1
18
#include "
SEImplementation/Configuration/MeasurementImageConfig.h
"
19
#include "
SEImplementation/Plugin/SourcePsf/SourcePsfTaskFactory.h
"
20
21
namespace
SourceXtractor
{
22
23
void
SourcePsfTaskFactory::reportConfigDependencies
(
Euclid::Configuration::ConfigManager
&
manager
)
const
{
24
manager
.registerConfiguration<
PsfPluginConfig
>();
25
manager
.registerConfiguration<
MeasurementImageConfig
>();
26
}
27
28
void
SourcePsfTaskFactory::configure
(
Euclid::Configuration::ConfigManager
&
manager
) {
29
auto
psf_config
=
manager
.getConfiguration<
PsfPluginConfig
>();
30
auto
measurement_config =
manager
.getConfiguration<
MeasurementImageConfig
>();
31
32
const
auto
&
default_psf
=
psf_config
.getPsf();
33
const
auto
&
image_infos
=
manager
.getConfiguration<
MeasurementImageConfig
>().getImageInfos();
34
35
for
(
unsigned
int
i
= 0;
i
<
image_infos
.size();
i
++) {
36
if
(!
image_infos
[
i
].m_psf_path.empty()) {
37
m_vpsf
[
image_infos
[
i
].m_id] =
PsfPluginConfig::readPsf
(
image_infos
[
i
].m_psf_path,
image_infos
[
i
].m_psf_hdu);
38
}
39
else
if
(
default_psf
) {
40
m_vpsf
[
image_infos
[
i
].m_id] =
default_psf
;
41
}
42
}
43
}
44
45
std::shared_ptr<Task>
SourcePsfTaskFactory::createTask
(
const
SourceXtractor::PropertyId
&
property_id
)
const
{
46
auto
instance
=
property_id
.getIndex();
47
48
if
(
m_vpsf
.find(
instance
) ==
m_vpsf
.end()) {
49
throw
Elements::Exception
() <<
"Missing PSF. Make sure every frame has a PSF"
;
50
}
51
52
try
{
53
return
std::make_shared<SourcePsfTask>
(
instance
,
m_vpsf
.at(
instance
));
54
}
catch
(
const
std::out_of_range
&) {
55
return
nullptr
;
56
}
57
}
58
59
}
// end SourceXtractor
MeasurementImageConfig.h
SourcePsfTaskFactory.h
Elements::Exception
Euclid::Configuration::ConfigManager
SourceXtractor::MeasurementImageConfig
Definition
MeasurementImageConfig.h:37
SourceXtractor::PropertyId
Identifier used to set and retrieve properties.
Definition
PropertyId.h:40
SourceXtractor::PsfPluginConfig
Definition
PsfPluginConfig.h:32
SourceXtractor::PsfPluginConfig::readPsf
static std::shared_ptr< Psf > readPsf(const std::string &filename, int hdu_number=1)
Definition
PsfPluginConfig.cpp:164
SourceXtractor::SourcePsfTaskFactory::createTask
std::shared_ptr< Task > createTask(const PropertyId &property_id) const override
Returns a Task producing a Property corresponding to the given PropertyId.
Definition
SourcePsfTaskFactory.cpp:45
SourceXtractor::SourcePsfTaskFactory::reportConfigDependencies
void reportConfigDependencies(Euclid::Configuration::ConfigManager &manager) const override
Registers all the Configuration dependencies.
Definition
SourcePsfTaskFactory.cpp:23
SourceXtractor::SourcePsfTaskFactory::m_vpsf
std::map< int, std::shared_ptr< Psf > > m_vpsf
Definition
SourcePsfTaskFactory.h:40
SourceXtractor::SourcePsfTaskFactory::configure
void configure(Euclid::Configuration::ConfigManager &manager) override
Method which should initialize the object.
Definition
SourcePsfTaskFactory.cpp:28
std::function
SourceXtractor
Definition
Aperture.h:30
std::out_of_range
Generated by
1.10.0