SourceXtractorPlusPlus  0.14
Please provide a description of the project.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FitsFile.h
Go to the documentation of this file.
1 
18 /*
19  * FitsFile.h
20  *
21  * Created on: Jun 9, 2020
22  * Author: mschefer
23  */
24 
25 #ifndef _SEFRAMEWORK_FITS_FITSFILE_H_
26 #define _SEFRAMEWORK_FITS_FITSFILE_H_
27 
28 #include <string>
29 #include <vector>
30 #include <map>
31 
32 #include <fitsio.h>
33 
36 
37 namespace SourceXtractor {
38 
44 class FitsFile {
45 protected:
46  FitsFile(const std::string& filename, bool writeable, std::shared_ptr<FitsFileManager> manager);
47 
48 public:
49 
50  virtual ~FitsFile();
51 
52  fitsfile* getFitsFilePtr() {
53  if (!m_is_file_opened) {
54  open();
55  }
56  return m_file_pointer;
57  }
58 
59  const std::vector<int>& getImageHdus() const {
60  return m_image_hdus;
61  }
62 
64  return m_headers.at(hdu-1);
65  }
66 
67  void setWriteMode();
68 
69  void open();
70  void close();
71 
72 
73 private:
74  void openFirstTime();
75  void reopen();
76 
77  void reloadHeaders();
79  void loadHeadFile();
80 
82  fitsfile* m_file_pointer;
86 
88 
90 
92 
93  friend class FitsFileManager;
94 };
95 
96 }
97 
98 #endif /* _SEFRAMEWORK_FITS_FITSFILE_H_ */
std::vector< int > m_image_hdus
Definition: FitsFile.h:87
std::map< std::string, MetadataEntry > & getHDUHeaders(int hdu)
Definition: FitsFile.h:63
std::vector< std::map< std::string, MetadataEntry > > m_headers
Definition: FitsFile.h:89
STL class.
fitsfile * m_file_pointer
Definition: FitsFile.h:82
fitsfile * getFitsFilePtr()
Definition: FitsFile.h:52
STL class.
string filename
Definition: conf.py:63
std::map< std::string, MetadataEntry > loadFitsHeader(fitsfile *fptr)
Definition: FitsFile.cpp:212
represents access to a whole FITS file and handles loading and caching FITS headers ...
Definition: FitsFile.h:44
const std::vector< int > & getImageHdus() const
Definition: FitsFile.h:59
std::string m_filename
Definition: FitsFile.h:81
std::shared_ptr< FitsFileManager > m_manager
Definition: FitsFile.h:91
FitsFile(const std::string &filename, bool writeable, std::shared_ptr< FitsFileManager > manager)
Definition: FitsFile.cpp:90