ddt 1.2.1
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;
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
struct ddt::FitsExtension FitsExtension
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