SourceXtractorPlusPlus 1.0.3
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SourcePsfTaskFactory.cpp
Go to the documentation of this file.
1
17
20
21namespace SourceXtractor {
22
27
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_psf_infos[image_infos[i].m_id] = {
38 PsfPluginConfig::readPsf(image_infos[i].m_psf_path, image_infos[i].m_psf_hdu),
39 image_infos[i].m_psf_renormalize
40 };
41 }
42 else if (default_psf) {
43 m_psf_infos[image_infos[i].m_id] = { default_psf, true };
44 }
45 }
46}
47
49 auto instance = property_id.getIndex();
50
51 if (m_psf_infos.find(instance) == m_psf_infos.end()) {
52 throw Elements::Exception() << "Missing PSF. Make sure every frame has a PSF";
53 }
54
55 try {
57 instance, m_psf_infos.at(instance).m_psf, m_psf_infos.at(instance).m_normalize_psf);
58 } catch (const std::out_of_range&) {
59 return nullptr;
60 }
61}
62
63} // end SourceXtractor
Identifier used to set and retrieve properties.
Definition PropertyId.h:40
unsigned int getIndex() const
Definition PropertyId.h:70
static std::shared_ptr< Psf > readPsf(const std::string &filename, int hdu_number=1)
std::shared_ptr< Task > createTask(const PropertyId &property_id) const override
Returns a Task producing a Property corresponding to the given PropertyId.
void reportConfigDependencies(Euclid::Configuration::ConfigManager &manager) const override
Registers all the Configuration dependencies.
void configure(Euclid::Configuration::ConfigManager &manager) override
Method which should initialize the object.
T make_shared(T... args)