SourceXtractorPlusPlus  0.15
Please provide a description of the project.
FitsImageSource.h
Go to the documentation of this file.
1 
17 /*
18  * FitsImageSource.h
19  *
20  * Created on: Feb 21, 2018
21  * Author: mschefer
22  */
23 
24 #ifndef _SEFRAMEWORK_IMAGE_FITSIMAGESOURCE_H_
25 #define _SEFRAMEWORK_IMAGE_FITSIMAGESOURCE_H_
26 
27 #include <memory>
28 #include <vector>
29 #include <map>
30 
31 #include <boost/lexical_cast.hpp>
32 
33 #include "FilePool/FileManager.h"
37 #include "SEUtils/VariantCast.h"
38 
39 
40 namespace SourceXtractor {
41 
44 
45 class FitsImageSource : public ImageSource, public std::enable_shared_from_this<ImageSource> {
46 public:
47 
48 
57  FitsImageSource(const std::string& filename, int hdu_number = 0,
60 
61  FitsImageSource(const std::string& filename, int width, int height,
62  ImageTile::ImageType image_type,
63  const std::shared_ptr<CoordinateSystem> coord_system = nullptr,
64  bool append = false,
65  bool empty_primary = false,
67 
68  virtual ~FitsImageSource() = default;
69 
70  std::string getRepr() const override {
71  return m_filename;
72  }
73 
75  int getWidth() const override {
76  return m_width;
77  }
78 
80  int getHeight() const override {
81  return m_height;
82  }
83 
84  std::shared_ptr<ImageTile> getImageTile(int x, int y, int width, int height) const override;
85 
86  void saveTile(ImageTile& tile) override;
87 
88  template<typename TT>
89  bool readFitsKeyword(const std::string& header_keyword, TT& out_value) const {
90  auto& headers = getMetadata();
91  auto i = headers.find(header_keyword);
92  if (i != headers.end()) {
93  out_value = VariantCast<TT>(i->second.m_value);
94  return true;
95  }
96  return false;
97  }
98 
99  int getHDU() const {
100  return m_hdu_number;
101  }
102 
103  ImageTile::ImageType getType() const override {
104  return m_image_type;
105  }
106 
107  std::unique_ptr<std::vector<char>> getFitsHeaders(int& number_of_records) const;
108 
109  const std::map<std::string, MetadataEntry> getMetadata() const override;
110 
111  void setMetadata(std::string key, MetadataEntry value) override;
112 
113 private:
114  void switchHdu(fitsfile *fptr, int hdu_number) const;
115 
116  int getDataType() const;
117 
118  int getImageType() const;
119 
122 
124 
125  int m_width;
126  int m_height;
128 };
129 
130 }
131 
132 
133 #endif /* _SEFRAMEWORK_IMAGE_FITSIMAGESOURCE_H_ */
SourceXtractor::FitsImageSource
Definition: FitsImageSource.h:45
std::string
STL class.
std::shared_ptr
STL class.
SourceXtractor::FitsImageSource::saveTile
void saveTile(ImageTile &tile) override
Definition: FitsImageSource.cpp:207
SourceXtractor::FitsImageSource::getMetadata
const std::map< std::string, MetadataEntry > getMetadata() const override
Definition: FitsImageSource.cpp:289
conf.filename
string filename
Definition: conf.py:63
Euclid::FilePool::FileHandler
SourceXtractor::FitsImageSource::getWidth
int getWidth() const override
Returns the width of the image in pixels.
Definition: FitsImageSource.h:75
SourceXtractor::FitsImageSource::m_filename
std::string m_filename
Definition: FitsImageSource.h:120
SourceXtractor::FitsImageSource::getRepr
std::string getRepr() const override
Human readable representation of this source.
Definition: FitsImageSource.h:70
SourceXtractor::FitsImageSource::m_width
int m_width
Definition: FitsImageSource.h:125
CoordinateSystem.h
SourceXtractor::FitsImageSource::getFitsHeaders
std::unique_ptr< std::vector< char > > getFitsHeaders(int &number_of_records) const
Definition: FitsImageSource.cpp:244
SourceXtractor::FitsImageSource::getHeight
int getHeight() const override
Returns the height of the image in pixels.
Definition: FitsImageSource.h:80
SourceXtractor::FitsImageSource::getHDU
int getHDU() const
Definition: FitsImageSource.h:99
SourceXtractor::ImageTile
Definition: ImageTile.h:34
SourceXtractor
Definition: Aperture.h:30
SourceXtractor::FitsImageSource::m_handler
std::shared_ptr< FileHandler > m_handler
Definition: FitsImageSource.h:121
ImageSourceWithMetadata.h
SourceXtractor::FitsImageSource::m_hdu_number
int m_hdu_number
Definition: FitsImageSource.h:123
SourceXtractor::FitsImageSource::m_height
int m_height
Definition: FitsImageSource.h:126
std::enable_shared_from_this
Euclid::FilePool::FileManager
SourceXtractor::MetadataEntry
Definition: ImageSource.h:39
std::map
STL class.
SourceXtractor::FitsImageSource::getDataType
int getDataType() const
Definition: FitsImageSource.cpp:319
SourceXtractor::FitsImageSource::~FitsImageSource
virtual ~FitsImageSource()=default
SourceXtractor::ImageSource
Definition: ImageSource.h:52
SourceXtractor::FitsImageSource::m_image_type
ImageTile::ImageType m_image_type
Definition: FitsImageSource.h:127
VariantCast.h
SourceXtractor::FitsImageSource::FitsImageSource
FitsImageSource(const std::string &filename, int hdu_number=0, ImageTile::ImageType image_type=ImageTile::AutoType, std::shared_ptr< FileManager > manager=FileManager::getDefault())
Definition: FitsImageSource.cpp:47
x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
Definition: MoffatModelFittingTask.cpp:94
SourceXtractor::FitsImageSource::setMetadata
void setMetadata(std::string key, MetadataEntry value) override
Definition: FitsImageSource.cpp:294
Euclid::FilePool::FileManager::getDefault
static std::shared_ptr< FileManager > getDefault()
SourceXtractor::ImageTile::AutoType
@ AutoType
Definition: ImageTile.h:38
SourceXtractor::FitsImageSource::getType
ImageTile::ImageType getType() const override
Definition: FitsImageSource.h:103
SourceXtractor::FitsImageSource::readFitsKeyword
bool readFitsKeyword(const std::string &header_keyword, TT &out_value) const
Definition: FitsImageSource.h:89
y
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
Definition: MoffatModelFittingTask.cpp:94
std::unique_ptr
STL class.
SourceXtractor::ImageTile::ImageType
ImageType
Definition: ImageTile.h:37
SourceXtractor::FitsImageSource::getImageType
int getImageType() const
Definition: FitsImageSource.cpp:335
FileManager.h
FitsFile.h
SourceXtractor::FitsImageSource::switchHdu
void switchHdu(fitsfile *fptr, int hdu_number) const
Definition: FitsImageSource.cpp:228
SourceXtractor::FitsImageSource::getImageTile
std::shared_ptr< ImageTile > getImageTile(int x, int y, int width, int height) const override
Definition: FitsImageSource.cpp:185