SourceXtractorPlusPlus 0.21
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SE2BackgroundConfig.cpp
Go to the documentation of this file.
1
17/*
18 * @file BackgroundConfig.cpp
19 * @author nikoapos
20 */
21
22#include <algorithm>
23#include <ElementsKernel/Logging.h>
24#include "AlexandriaKernel/StringUtils.h"
27
28using namespace Euclid::Configuration;
29namespace po = boost::program_options;
30
31namespace SourceXtractor {
32
34
35static const std::string CELLSIZE_VALUE {"background-cell-size" };
36static const std::string SMOOTHINGBOX_VALUE {"smoothing-box-size" };
37
39 Configuration(manager_id), m_cell_size(), m_smoothing_box() {
40}
41
43 return { {"Background modelling", {
44 {CELLSIZE_VALUE.c_str(), po::value<std::string>()->default_value(std::string("64")),
45 "Background mesh cell size to determine a value."},
46 {SMOOTHINGBOX_VALUE.c_str(), po::value<std::string>()->default_value(std::string("3")),
47 "Background median filter size"}
48 }}};
49}
50
52 auto cell_size_str = args.find(CELLSIZE_VALUE)->second.as<std::string>();
53 auto smoothing_box_str = args.find(SMOOTHINGBOX_VALUE)->second.as<std::string>();
54
55 if (args.find(CELLSIZE_VALUE) != args.end()) {
56 m_cell_size = Euclid::stringToVector<int>(cell_size_str);
57 }
58 if (args.find(SMOOTHINGBOX_VALUE) != args.end()) {
59 m_smoothing_box = Euclid::stringToVector<int>(smoothing_box_str);
60 }
61
62 auto less_eq_0 = [](int v) { return v <= 0; };
63 auto less_0 = [](int v) { return v < 0; };
64
66 throw Elements::Exception() << "There are value(s) < 1 in backgound-cell-size: " << cell_size_str;
67 }
69 throw Elements::Exception() << "There are value(s) < 0 in smoothing-box-size: " << smoothing_box_str;
70 }
71}
72
73} // SourceXtractor namespace
T begin(T... args)
static Logging getLogger(const std::string &name="")
void initialize(const UserValues &args) override
std::map< std::string, Configuration::OptionDescriptionList > getProgramOptions() override
T end(T... args)
T find_if(T... args)
static Elements::Logging logger
static const std::string CELLSIZE_VALUE
static const std::string SMOOTHINGBOX_VALUE