ddt 1.1.0
Loading...
Searching...
No Matches
dataFile.hpp
Go to the documentation of this file.
1
20#ifndef DATAFILE_HPP
21#define DATAFILE_HPP
22
23#include <sys/stat.h>
24
25#include <algorithm>
26#include <boost/bind/bind.hpp>
27#include <boost/signals2/signal.hpp>
28#include <cctype>
29
30#include "ddt/ddtLogger.hpp"
31#include "ddt/imageError.hpp"
32#include "ddt/imageIO.hpp"
33
34namespace ddt {
35
39typedef struct FitsExtension {
48
53
57 std::string extension;
58
62 std::string extension_name;
63
67 cpl_propertylist* extension_headers;
68} FitsExtension;
69
78class DataFile {
79 public:
83 DataFile();
84
88 virtual ~DataFile();
89
95
108 bool OpenFile(const std::string& filename, const int position = 0);
109
122 cpl_vector* OpenAndLoadVector(const std::string& file_name,
123 const int position = 0);
124
137 cpl_image* OpenAndLoadImage(const std::string& file_name,
138 const int position = 0);
139
154 cpl_image* OpenAndLoadCube(const std::string& file_name,
155 const int plane_number = 0,
156 const int position = 0);
157
163 cpl_vector* LoadVector();
164
172 cpl_image* LoadImage(const int plane_number = 0);
173
181 cpl_table* LoadBinaryTable(const int extension_number);
182
188 cpl_propertylist* LoadPropertyList();
189
195 cpl_wcs* LoadWCS();
196
204 cpl_image* LoadImageExtensionsAsOne(const int plane_number = 0);
205
210 int get_FilePosition() const;
211
216 std::string get_FileName() const;
217
222 int get_NumberAxis() const;
223
228 int get_NumberPlanes() const;
229
234 int get_NumberExtensions() const;
235
240 int get_ImageWidth() const;
241
246 int get_ImageHeight() const;
247
252 bool get_IsVector() const;
253
258 bool get_IsImage() const;
259
264 bool get_IsCube() const;
265
270 bool get_IsBintable() const;
271
278 FitsExtension* get_FitsExtensionInfo(const int extension_number);
279
285
290 std::vector<int> get_invalid_image_hdus() const;
291
292 protected:
297
298 private:
302 void Initialize();
303
307 bool SetImageProperties();
308
312 bool RetrieveImageProperties(const cpl_propertylist* const property_list);
313
317 void RetrieveExtensionInfo();
318
322 bool OpenFileExtension(const int position);
323
327 bool OpenPrimaryHDU();
328
332 std::string file_name;
333
337 int file_position;
338
342 int number_axis;
343
347 int number_planes;
348
352 int number_extensions;
353
357 int image_width;
358
362 int image_height;
363
367 bool is_vector;
368
372 bool is_image;
373
377 bool is_cube;
378
382 bool is_bintable;
383
387 FitsExtension primary_hdu;
388
392 std::vector<FitsExtension> extensions;
393
398 std::vector<int> invalid_image_hdus;
399};
400
401} // namespace ddt
402
403#endif /* DATAFILE_HPP */
404
Definition: dataFile.hpp:78
cpl_table * LoadBinaryTable(const int extension_number)
Definition: dataFile.cpp:437
bool get_IsBintable() const
Definition: dataFile.cpp:632
int get_NumberAxis() const
Definition: dataFile.cpp:571
std::vector< int > get_invalid_image_hdus() const
Definition: dataFile.cpp:555
cpl_image * LoadImageExtensionsAsOne(const int plane_number=0)
Definition: dataFile.cpp:468
int get_NumberExtensions() const
Definition: dataFile.cpp:583
cpl_propertylist * LoadPropertyList()
Definition: dataFile.cpp:447
cpl_image * OpenAndLoadImage(const std::string &file_name, const int position=0)
Definition: dataFile.cpp:360
ddt::DdtLogger * logger
Definition: dataFile.hpp:296
int get_ImageHeight() const
Definition: dataFile.cpp:608
int get_FilePosition() const
Definition: dataFile.cpp:563
int get_NumberPlanes() const
Definition: dataFile.cpp:577
bool get_IsVector() const
Definition: dataFile.cpp:614
int get_ImageWidth() const
Definition: dataFile.cpp:602
FitsExtension * get_FitsExtensionInfo(const int extension_number)
Definition: dataFile.cpp:585
FitsExtension get_PrimaryHDUInfo() const
Definition: dataFile.cpp:596
std::string get_FileName() const
Definition: dataFile.cpp:565
virtual ~DataFile()
bool OpenFile(const std::string &filename, const int position=0)
Definition: dataFile.cpp:173
DataFile()
Definition: dataFile.cpp:30
cpl_image * LoadImage(const int plane_number=0)
Definition: dataFile.cpp:413
bool get_IsCube() const
Definition: dataFile.cpp:626
cpl_vector * LoadVector()
Definition: dataFile.cpp:409
cpl_wcs * LoadWCS()
Definition: dataFile.cpp:452
cpl_image * OpenAndLoadCube(const std::string &file_name, const int plane_number=0, const int position=0)
Definition: dataFile.cpp:384
bool get_IsImage() const
Definition: dataFile.cpp:620
void set_logger(ddt::DdtLogger *logger)
Definition: dataFile.cpp:35
cpl_vector * OpenAndLoadVector(const std::string &file_name, const int position=0)
Definition: dataFile.cpp:336
Definition: ddtLogger.hpp:51
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:39
Definition: dataFile.hpp:39
int image_width
Definition: dataFile.hpp:47
std::string extension_name
Definition: dataFile.hpp:62
cpl_propertylist * extension_headers
Definition: dataFile.hpp:67
int image_height
Definition: dataFile.hpp:52
int number_axis
Definition: dataFile.hpp:43
std::string extension
Definition: dataFile.hpp:57