SourceXtractorPlusPlus  0.10
Please provide a description of the project.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FitsWriter.h
Go to the documentation of this file.
1 
17 /*
18  * FitsWriter.h
19  *
20  * Created on: May 23, 2017
21  * Author: mschefer
22  */
23 
24 #ifndef _SEFRAMEWORK_IMAGE_FITSWRITER_H_
25 #define _SEFRAMEWORK_IMAGE_FITSWRITER_H_
26 
27 #include "ElementsKernel/Logging.h"
33 
34 namespace SourceXtractor {
35 
37 
43 class FitsWriter {
44 
45 public:
46 
50  virtual ~FitsWriter() = default;
51 
52  template <typename T>
53  static void writeFile(const Image<T> &image, const std::string &filename,
54  const std::shared_ptr<CoordinateSystem> coord_system = nullptr) {
55  auto target_image = newImage<T>(filename, image.getWidth(), image.getHeight(), coord_system);
56 
57  // FIXME optimize the copy by using tile boundaries, image chunks, etc
58  for (int y = 0; y < image.getHeight(); y++) {
59  for (int x = 0; x < image.getWidth(); x++) {
60  target_image->setValue(x, y, image.getValue(x, y));
61  }
62  }
63  }
64 
65  template <typename T>
67  const std::shared_ptr<CoordinateSystem> coord_system = nullptr) {
68  fitsWriterLogger.debug() << "Creating file " << filename;
69  auto image_source = std::make_shared<FitsImageSource<T>>(filename, width, height, coord_system);
70  return WriteableBufferedImage<T>::create(image_source);
71  }
72 
73  template <typename T>
75  fitsWriterLogger.debug() << "Creating temporary fits file";
76  auto image_source = std::make_shared<TemporaryFitsImageSource<T>>(pattern, width, height);
77  return WriteableBufferedImage<T>::create(image_source);
78  }
79 
80 
81 }; /* End of FitsReader class */
82 
83 } /* namespace SourceXtractor */
84 
85 
86 
87 
88 
89 #endif /* _SEFRAMEWORK_IMAGE_FITSWRITER_H_ */
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
virtual int getHeight() const =0
Returns the height of the image in pixels.
void debug(const std::string &logMessage)
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
static std::shared_ptr< WriteableBufferedImage< T > > create(std::shared_ptr< const ImageSource< T >> source, std::shared_ptr< TileManager > tile_manager=TileManager::getInstance())
STL class.
static Elements::Logging fitsWriterLogger
Definition: FitsWriter.h:36
virtual T getValue(int x, int y) const =0
Returns the value of the pixel with the coordinates (x,y)
string filename
Definition: conf.py:63
virtual ~FitsWriter()=default
Destructor.
static std::shared_ptr< WriteableImage< T > > newImage(const std::string &filename, int width, int height, const std::shared_ptr< CoordinateSystem > coord_system=nullptr)
Definition: FitsWriter.h:66
Interface representing an image.
Definition: Image.h:43
static std::shared_ptr< WriteableImage< T > > newTemporaryImage(const std::string &pattern, int width, int height)
Definition: FitsWriter.h:74
static void writeFile(const Image< T > &image, const std::string &filename, const std::shared_ptr< CoordinateSystem > coord_system=nullptr)
Definition: FitsWriter.h:53
static Logging getLogger(const std::string &name="")
virtual int getWidth() const =0
Returns the width of the image in pixels.