25 #include <boost/timer/timer.hpp> 51 namespace po = boost::program_options;
52 namespace fs = boost::filesystem;
57 template <
typename ImageType>
83 template <
typename ImageType>
90 :
ExtendedModel<ImageType>({}, x_scale, y_scale, rotation, width, height,
x,
y)
95 double getValue(
double x,
double y)
const override {
return 0.0; }
99 ImageType image = Traits::factory(size_x, size_y);
104 template <
typename ImageType>
111 :
ExtendedModel<ImageType>({}, x_scale, y_scale, rotation, width, height,
x,
y)
116 double getValue(
double x,
double y)
const override {
return 0.0; }
120 ImageType image = Traits::factory(size_x, size_y);
124 Traits::at(image,
x,
y) =
x+
y;
133 template <
typename ImageType>
140 :
ExtendedModel<ImageType>({}, x_scale, y_scale, rotation, width, height,
x,
y)
145 double getValue(
double x,
double y)
const override {
return 0.0; }
149 ImageType image = Traits::factory(size_x, size_y);
161 template <
typename ImageType>
168 :
ExtendedModel<ImageType>({}, x_scale, y_scale, rotation, width, height,
x,
y)
173 double getValue(
double x,
double y)
const override {
return 0.0; }
177 ImageType image = Traits::factory(size_x, size_y);
215 int image_size = 256;
235 auto x_param = std::make_shared<ManualParameter>(128);
236 auto y_param = std::make_shared<ManualParameter>(128);
238 auto xs = std::make_shared<ManualParameter>(1);
239 auto ys = std::make_shared<ManualParameter>(1);
241 auto rot = std::make_shared<ManualParameter>(0);
242 auto dev_n = std::make_shared<ManualParameter>(4);
243 auto dev_k = std::make_shared<ManualParameter>(10);
244 auto dev_i0 = std::make_shared<ManualParameter>(1000);
247 auto exp = make_unique<SersicModelComponent>(make_unique<OldSharp>(), dev_i0, dev_n, dev_k);
248 component_list.clear();
251 std::move(component_list), xs, ys, rot, 256, 256, x_param, y_param));
255 int image_size = 256;
274 auto x_param = std::make_shared<ManualParameter>(128);
275 auto y_param = std::make_shared<ManualParameter>(128);
277 auto xs = std::make_shared<ManualParameter>(1);
278 auto ys = std::make_shared<ManualParameter>(1);
280 auto rot = std::make_shared<ManualParameter>(0);
281 auto n = std::make_shared<ManualParameter>(4);
282 auto k = std::make_shared<ManualParameter>(10);
283 auto i0 = std::make_shared<ManualParameter>(1000);
287 xs, ys, rot, 256, 256, x_param, y_param,
std::make_tuple(1, 0, 0, 1)));
290 int image_size = 256;
310 auto x_param = std::make_shared<ManualParameter>(128);
311 auto y_param = std::make_shared<ManualParameter>(128);
313 auto xs = std::make_shared<ManualParameter>(1);
314 auto ys = std::make_shared<ManualParameter>(1);
316 auto rot = std::make_shared<ManualParameter>(0);
317 auto n = std::make_shared<ManualParameter>(4);
318 auto k = std::make_shared<ManualParameter>(10);
319 auto i0 = std::make_shared<ManualParameter>(1000);
322 xs, ys, rot, 256, 256, x_param, y_param));
325 int image_size = 256;
343 for (
int i=0; i<iterations; i++) {
344 frame_model.rasterToImage(image);
353 int iterations = 300;
355 auto empty_frame_model = makeEmptyFrameModel();
356 auto dummy_frame_model = makeDummyFrameModel<DummyModel<ImageInterfaceTypePtr>>();
357 auto dummy_fill_frame_model = makeDummyFrameModel<DummyFillModel<ImageInterfaceTypePtr>>();
358 auto dummy_exp_frame_model = makeDummyFrameModel<DummyExpModel<ImageInterfaceTypePtr>>();
359 auto dummy_sersic_frame_model = makeDummyFrameModel<DummySersicModel<ImageInterfaceTypePtr>>();
360 auto sersic_frame_model = makeSersicFrameModel();
361 auto compact_frame_model = makeCompactSersicFrameModel();
365 boost::timer::auto_cpu_timer t;
366 measureRasterToImage(iterations, empty_frame_model);
368 logger.
info() <<
"Testing with dummy (nop) model";
370 boost::timer::auto_cpu_timer t;
371 measureRasterToImage(iterations, dummy_frame_model);
373 logger.
info() <<
"Testing with dummy (fill) model";
375 boost::timer::auto_cpu_timer t;
376 measureRasterToImage(iterations, dummy_fill_frame_model);
378 logger.
info() <<
"Testing with dummy (fill exp) model";
380 boost::timer::auto_cpu_timer t;
381 measureRasterToImage(iterations, dummy_exp_frame_model);
383 logger.
info() <<
"Testing with dummy (sersic) model";
385 boost::timer::auto_cpu_timer t;
386 measureRasterToImage(iterations, dummy_sersic_frame_model);
388 logger.
info() <<
"Testing with old style Sersic model";
390 boost::timer::auto_cpu_timer t;
391 measureRasterToImage(iterations, sersic_frame_model);
393 logger.
info() <<
"Testing with compact Sersic model";
395 boost::timer::auto_cpu_timer t;
396 measureRasterToImage(iterations, compact_frame_model);
double getPixelScale() const
double getValue(double x, double y) const override
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
void convolve(ImageType &) const
ImageType getRasterizedImage(double pixel_scale, std::size_t size_x, std::size_t size_y) const override
void info(const std::string &logMessage)
FrameModel< DummyPsf< ImageInterfaceTypePtr >, ImageInterfaceTypePtr > makeSersicFrameModel()
FrameModel< DummyPsf< ImageInterfaceTypePtr >, ImageInterfaceTypePtr > makeCompactSersicFrameModel()
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
DummyFillModel(std::shared_ptr< BasicParameter > x_scale, std::shared_ptr< BasicParameter > y_scale, std::shared_ptr< BasicParameter > rotation, double width, double height, std::shared_ptr< BasicParameter > x, std::shared_ptr< BasicParameter > y)
std::shared_ptr< VectorImage< SourceXtractor::SeFloat > > m_kernel
std::shared_ptr< VectorImage< SeFloat > > measureRasterToImage(int iterations, T &frame_model)
#define MAIN_FOR(ELEMENTS_PROGRAM_NAME)
double getValue(double x, double y) const override
FrameModel< DummyPsf< ImageInterfaceTypePtr >, ImageInterfaceTypePtr > makeDummyFrameModel()
FrameModel< DummyPsf< ImageInterfaceTypePtr >, ImageInterfaceTypePtr > makeEmptyFrameModel()
DummyExpModel(std::shared_ptr< BasicParameter > x_scale, std::shared_ptr< BasicParameter > y_scale, std::shared_ptr< BasicParameter > rotation, double width, double height, std::shared_ptr< BasicParameter > x, std::shared_ptr< BasicParameter > y)
DummySersicModel(std::shared_ptr< BasicParameter > x_scale, std::shared_ptr< BasicParameter > y_scale, std::shared_ptr< BasicParameter > rotation, double width, double height, std::shared_ptr< BasicParameter > x, std::shared_ptr< BasicParameter > y)
double getValue(double x, double y) const override
static Elements::Logging logger
ImageType getRasterizedImage(double pixel_scale, std::size_t size_x, std::size_t size_y) const override
DummyModel(std::shared_ptr< BasicParameter > x_scale, std::shared_ptr< BasicParameter > y_scale, std::shared_ptr< BasicParameter > rotation, double width, double height, std::shared_ptr< BasicParameter > x, std::shared_ptr< BasicParameter > y)
Elements::ExitCode mainMethod(std::map< std::string, po::variable_value > &args) override
static Logging getLogger(const std::string &name="")
ImageType getRasterizedImage(double pixel_scale, std::size_t size_x, std::size_t size_y) const override
double getValue(double x, double y) const override
std::size_t getSize() const
std::shared_ptr< VectorImage< SourceXtractor::SeFloat > > getScaledKernel(double) const
ImageType getRasterizedImage(double pixel_scale, std::size_t size_x, std::size_t size_y) const override
T emplace_back(T... args)