ddt 1.4.0
 
Loading...
Searching...
No Matches
dataFile.hpp
Go to the documentation of this file.
1
10
11#ifndef DATAFILE_HPP
12#define DATAFILE_HPP
13
14#include <sys/stat.h>
15
16#include <algorithm>
17#include <boost/bind/bind.hpp>
18#include <boost/signals2/signal.hpp>
19#include <cctype>
20
21#include "ddt/ddtLogger.hpp"
22#include "ddt/imageError.hpp"
23#include "ddt/imageIO.hpp"
24
25namespace ddt {
26
30typedef struct FitsExtension {
39
44
48 std::string extension;
49
53 std::string extension_name;
54
58 cpl_propertylist* extension_headers;
60
69class DataFile {
70 public:
74 DataFile();
75
79 virtual ~DataFile();
80
86
99 bool OpenFile(const std::string& filename, const int position = 0);
100
113 cpl_vector* OpenAndLoadVector(const std::string& file_name,
114 const int position = 0);
115
128 cpl_image* OpenAndLoadImage(const std::string& file_name,
129 const int position = 0);
130
145 cpl_image* OpenAndLoadCube(const std::string& file_name,
146 const int plane_number = 0,
147 const int position = 0);
148
154 cpl_vector* LoadVector();
155
163 cpl_image* LoadImage(const int plane_number = 0);
164
172 cpl_table* LoadBinaryTable(const int extension_number);
173
179 cpl_propertylist* LoadPropertyList();
180
186 cpl_wcs* LoadWCS();
187
195 cpl_image* LoadImageExtensionsAsOne(const int plane_number = 0);
196
201 int get_FilePosition() const;
202
207 std::string get_FileName() const;
208
213 int get_NumberAxis() const;
214
219 int get_NumberPlanes() const;
220
225 int get_NumberExtensions() const;
226
231 int get_ImageWidth() const;
232
237 int get_ImageHeight() const;
238
243 bool get_IsVector() const;
244
249 bool get_IsImage() const;
250
255 bool get_IsCube() const;
256
261 bool get_IsBintable() const;
262
269 FitsExtension* get_FitsExtensionInfo(const int extension_number);
270
276
281 std::vector<int> get_invalid_image_hdus() const;
282
283 protected:
288
289 private:
293 void Initialize();
294
298 bool SetImageProperties();
299
303 bool RetrieveImageProperties(const cpl_propertylist* const property_list);
304
308 void RetrieveExtensionInfo();
309
313 bool OpenFileExtension(const int position);
314
318 bool OpenPrimaryHDU();
319
323 std::string file_name;
324
328 int file_position;
329
333 int number_axis;
334
338 int number_planes;
339
343 int number_extensions;
344
348 int image_width;
349
353 int image_height;
354
358 bool is_vector;
359
363 bool is_image;
364
368 bool is_cube;
369
373 bool is_bintable;
374
378 FitsExtension primary_hdu;
379
383 std::vector<FitsExtension> extensions;
384
389 std::vector<int> invalid_image_hdus;
390};
391
392} // namespace ddt
393
394#endif /* DATAFILE_HPP */
cpl_table * LoadBinaryTable(const int extension_number)
Definition dataFile.cpp:428
bool get_IsBintable() const
Definition dataFile.cpp:623
int get_NumberAxis() const
Definition dataFile.cpp:562
std::vector< int > get_invalid_image_hdus() const
Definition dataFile.cpp:546
cpl_image * LoadImageExtensionsAsOne(const int plane_number=0)
Definition dataFile.cpp:459
int get_NumberExtensions() const
Definition dataFile.cpp:574
cpl_propertylist * LoadPropertyList()
Definition dataFile.cpp:438
cpl_image * OpenAndLoadImage(const std::string &file_name, const int position=0)
Definition dataFile.cpp:351
ddt::DdtLogger * logger
Definition dataFile.hpp:287
int get_ImageHeight() const
Definition dataFile.cpp:599
int get_FilePosition() const
Definition dataFile.cpp:554
int get_NumberPlanes() const
Definition dataFile.cpp:568
bool get_IsVector() const
Definition dataFile.cpp:605
int get_ImageWidth() const
Definition dataFile.cpp:593
FitsExtension * get_FitsExtensionInfo(const int extension_number)
Definition dataFile.cpp:576
FitsExtension get_PrimaryHDUInfo() const
Definition dataFile.cpp:587
std::string get_FileName() const
Definition dataFile.cpp:556
virtual ~DataFile()
bool OpenFile(const std::string &filename, const int position=0)
Definition dataFile.cpp:164
DataFile()
Definition dataFile.cpp:21
cpl_image * LoadImage(const int plane_number=0)
Definition dataFile.cpp:404
bool get_IsCube() const
Definition dataFile.cpp:617
cpl_vector * LoadVector()
Definition dataFile.cpp:400
cpl_wcs * LoadWCS()
Definition dataFile.cpp:443
cpl_image * OpenAndLoadCube(const std::string &file_name, const int plane_number=0, const int position=0)
Definition dataFile.cpp:375
bool get_IsImage() const
Definition dataFile.cpp:611
void set_logger(ddt::DdtLogger *logger)
Definition dataFile.cpp:26
cpl_vector * OpenAndLoadVector(const std::string &file_name, const int position=0)
Definition dataFile.cpp:327
Definition ddtLogger.hpp:43
Class to wrap the usage of log4cplus as logging utility. This file provides a wrapper class for the u...
Image error handling function declaration. This file is part of the DDT Image Handling Library and pr...
Image IO function declaration. This file is part of the DDT Image Handling Library and provides funct...
Definition ddtClient.hpp:32
struct ddt::FitsExtension FitsExtension
Definition dataFile.hpp:30
int image_width
Definition dataFile.hpp:38
std::string extension_name
Definition dataFile.hpp:53
cpl_propertylist * extension_headers
Definition dataFile.hpp:58
int image_height
Definition dataFile.hpp:43
int number_axis
Definition dataFile.hpp:34
std::string extension
Definition dataFile.hpp:48