SourceXtractorPlusPlus
0.19.2
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
Euclid::Configuration::ConfigManager::registerConfiguration
void registerConfiguration()
Euclid::Configuration::ConfigManager::getConfiguration
T & getConfiguration()
SourceXtractor::MeasurementImageConfig
Definition
MeasurementImageConfig.h:37
SourceXtractor::PropertyId
Identifier used to set and retrieve properties.
Definition
PropertyId.h:40
SourceXtractor::PropertyId::getIndex
unsigned int getIndex() const
Definition
PropertyId.h:70
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
SourceXtractor
Definition
Aperture.h:30
std::out_of_range
std::shared_ptr
Generated by
1.9.7