ddt  0.1
ddtEncDecImage2D.hpp
Go to the documentation of this file.
1 // @copyright
2 // (c) Copyright ESO 2020
3 // All Rights Reserved
4 // ESO (eso.org) is an Intergovernmental Organization, and therefore special
5 // legal conditions apply.
6 //
7 // @file ddtEncDecImage2D.hpp
8 // @brief DDT EncDecImage2D. Class to encode / decode 2-dimensional data samples
9 // containing image data.
10 //
11 // Class to encode / decode 2-dimensional data samples containing image data.
12 //
13 // @author Christoph Bortlisz, CGI
14 // @since 2020/05/22
15 //
16 
17 #ifndef DDT_DATAVISUALISATION_DATATRANSFER_DATATRANSFERLIB_ENCDEC_IMAGE2D_HPP
18 #define DDT_DATAVISUALISATION_DATATRANSFER_DATATRANSFERLIB_ENCDEC_IMAGE2D_HPP
19 
20 #include <boost/interprocess/containers/vector.hpp>
21 
22 #include "MetaData.pb.h"
23 #include "ddt/ddtEncDec.hpp"
24 
25 namespace ip = boost::interprocess;
26 
32  uint32_t number_pixels_x;
33  uint32_t number_pixels_y;
36  uint32_t first_pixel_x;
37  uint32_t first_pixel_y;
38  uint32_t number_chunks_x;
39  uint32_t number_chunks_y;
40  uint32_t image_id;
42 };
43 
54 class DdtEncDecImage2D : public DdtEncDec {
55  public:
59  explicit DdtEncDecImage2D();
60 
64  void Decode(const int length, std::vector<uint8_t> meta_data);
65 
71  void Encode(MetaDataElementsImage2D const& meta_data);
72 
76  ~DdtEncDecImage2D() override;
77 
81  std::vector<uint8_t> get_meta_data() const;
82 
83  // Getter functions for the meta data base members
84 
88  uint32_t get_bytes_per_pixel() const override;
89 
93  uint32_t get_number_dimensions() const override;
94 
98  std::string get_utc_timestamp() const override;
99 
103  bool get_complete_flag() const override;
104 
108  bool get_last_segment() const override;
109 
113  bool get_byte_order_little_endian() const override;
114 
118  uint32_t get_data_type() const override;
119 
123  std::string get_description() const override;
124 
125  // Getter functions for the meta data specific members
126 
130  uint32_t get_number_pixels_x() const;
131 
135  uint32_t get_number_pixels_y() const;
136 
140  int32_t get_binning_factor_x() const;
141 
145  int32_t get_binning_factor_y() const;
146 
150  uint32_t get_first_pixel_x() const;
151 
155  uint32_t get_first_pixel_y() const;
156 
160  uint32_t get_number_chunks_x() const;
161 
165  uint32_t get_number_chunks_y() const;
166 
170  uint32_t get_image_id() const;
171 
175  float get_reference_point_x() const override;
176 
180  float get_reference_point_y() const override;
181 
185  float get_ra_reference_point() const override;
186 
190  float get_dec_reference_point() const override;
191 
195  float get_arcsec_pixel_x() const override;
196 
200  float get_arcsec_pixel_y() const override;
201 
205  float get_rotation_x() const override;
206 
210  float get_cd1_1() const override;
211 
215  float get_cd1_2() const override;
216 
220  float get_cd2_1() const override;
221 
225  float get_cd2_2() const override;
226 
230  float get_epoch_equinox() const override;
231 
235  std::string get_type_1() const override;
236 
240  std::string get_type_2() const override;
241 
242  protected:
247  ddt::MetaDataImage2D meta_data_image_2d;
248 };
249 
250 #endif // DDT_DATAVISUALISATION_DATATRANSFER_DATATRANSFERLIB_ENCDEC_IMAGE2D_HPP
WcsInformation
Definition: ddtEncDec.hpp:26
MetaDataElementsImage2D::binning_factor_y
int32_t binning_factor_y
Definition: ddtEncDecImage2D.hpp:35
MetaDataBase
Definition: ddtEncDec.hpp:46
DdtEncDecImage2D::get_utc_timestamp
std::string get_utc_timestamp() const override
Definition: ddtEncDecImage2D.cpp:137
DdtEncDecImage2D::get_byte_order_little_endian
bool get_byte_order_little_endian() const override
Definition: ddtEncDecImage2D.cpp:149
DdtEncDecImage2D::get_rotation_x
float get_rotation_x() const override
Definition: ddtEncDecImage2D.cpp:185
MetaDataElementsImage2D::number_pixels_y
uint32_t number_pixels_y
Definition: ddtEncDecImage2D.hpp:33
DdtEncDecImage2D::get_reference_point_y
float get_reference_point_y() const override
Definition: ddtEncDecImage2D.cpp:165
MetaDataElementsImage2D::meta_data_base
MetaDataBase meta_data_base
Definition: ddtEncDecImage2D.hpp:31
DdtEncDecImage2D::get_meta_data
std::vector< uint8_t > get_meta_data() const
Definition: ddtEncDecImage2D.cpp:117
DdtEncDecImage2D::get_number_dimensions
uint32_t get_number_dimensions() const override
Definition: ddtEncDecImage2D.cpp:133
DdtEncDecImage2D::get_binning_factor_y
int32_t get_binning_factor_y() const
Definition: ddtEncDecImage2D.cpp:229
DdtEncDec
Definition: ddtEncDec.hpp:60
DdtEncDecImage2D::get_cd1_2
float get_cd1_2() const override
Definition: ddtEncDecImage2D.cpp:193
DdtEncDecImage2D::get_number_pixels_y
uint32_t get_number_pixels_y() const
Definition: ddtEncDecImage2D.cpp:221
DdtEncDecImage2D::get_bytes_per_pixel
uint32_t get_bytes_per_pixel() const override
Definition: ddtEncDecImage2D.cpp:129
DdtEncDecImage2D::get_dec_reference_point
float get_dec_reference_point() const override
Definition: ddtEncDecImage2D.cpp:173
DdtEncDecImage2D::get_first_pixel_y
uint32_t get_first_pixel_y() const
Definition: ddtEncDecImage2D.cpp:237
DdtEncDecImage2D::get_ra_reference_point
float get_ra_reference_point() const override
Definition: ddtEncDecImage2D.cpp:169
MetaDataElementsImage2D::first_pixel_x
uint32_t first_pixel_x
Definition: ddtEncDecImage2D.hpp:36
MetaDataElementsImage2D::number_chunks_y
uint32_t number_chunks_y
Definition: ddtEncDecImage2D.hpp:39
ddtEncDec.hpp
DdtEncDecImage2D::meta_data_image_2d
ddt::MetaDataImage2D meta_data_image_2d
Definition: ddtEncDecImage2D.hpp:247
DdtEncDecImage2D::get_arcsec_pixel_x
float get_arcsec_pixel_x() const override
Definition: ddtEncDecImage2D.cpp:177
DdtEncDecImage2D::get_image_id
uint32_t get_image_id() const
Definition: ddtEncDecImage2D.cpp:249
DdtEncDecImage2D::get_cd2_1
float get_cd2_1() const override
Definition: ddtEncDecImage2D.cpp:197
DdtEncDecImage2D::get_complete_flag
bool get_complete_flag() const override
Definition: ddtEncDecImage2D.cpp:141
MetaDataElementsImage2D::number_pixels_x
uint32_t number_pixels_x
Definition: ddtEncDecImage2D.hpp:32
MetaDataElementsImage2D
Definition: ddtEncDecImage2D.hpp:30
DdtEncDecImage2D::get_description
std::string get_description() const override
Definition: ddtEncDecImage2D.cpp:157
DdtEncDecImage2D::get_last_segment
bool get_last_segment() const override
Definition: ddtEncDecImage2D.cpp:145
DdtEncDecImage2D::get_epoch_equinox
float get_epoch_equinox() const override
Definition: ddtEncDecImage2D.cpp:205
MetaDataElementsImage2D::first_pixel_y
uint32_t first_pixel_y
Definition: ddtEncDecImage2D.hpp:37
DdtEncDecImage2D::get_first_pixel_x
uint32_t get_first_pixel_x() const
Definition: ddtEncDecImage2D.cpp:233
DdtEncDecImage2D::Decode
void Decode(const int length, std::vector< uint8_t > meta_data)
Definition: ddtEncDecImage2D.cpp:27
DdtEncDecImage2D::get_number_pixels_x
uint32_t get_number_pixels_x() const
Definition: ddtEncDecImage2D.cpp:217
DdtEncDecImage2D::get_type_2
std::string get_type_2() const override
Definition: ddtEncDecImage2D.cpp:213
DdtEncDecImage2D::get_reference_point_x
float get_reference_point_x() const override
Definition: ddtEncDecImage2D.cpp:161
DdtEncDecImage2D::get_data_type
uint32_t get_data_type() const override
Definition: ddtEncDecImage2D.cpp:153
DdtEncDecImage2D::~DdtEncDecImage2D
~DdtEncDecImage2D() override
DdtEncDecImage2D::get_binning_factor_x
int32_t get_binning_factor_x() const
Definition: ddtEncDecImage2D.cpp:225
MetaDataElementsImage2D::binning_factor_x
int32_t binning_factor_x
Definition: ddtEncDecImage2D.hpp:34
DdtEncDecImage2D::get_type_1
std::string get_type_1() const override
Definition: ddtEncDecImage2D.cpp:209
MetaDataElementsImage2D::wcs_info
WcsInformation wcs_info
Definition: ddtEncDecImage2D.hpp:41
DdtEncDecImage2D::Encode
void Encode(MetaDataElementsImage2D const &meta_data)
Definition: ddtEncDecImage2D.cpp:40
DdtEncDecImage2D::get_number_chunks_y
uint32_t get_number_chunks_y() const
Definition: ddtEncDecImage2D.cpp:245
DdtEncDecImage2D::get_number_chunks_x
uint32_t get_number_chunks_x() const
Definition: ddtEncDecImage2D.cpp:241
DdtEncDecImage2D::get_arcsec_pixel_y
float get_arcsec_pixel_y() const override
Definition: ddtEncDecImage2D.cpp:181
DdtEncDecImage2D
Definition: ddtEncDecImage2D.hpp:54
DdtEncDecImage2D::get_cd1_1
float get_cd1_1() const override
Definition: ddtEncDecImage2D.cpp:189
MetaDataElementsImage2D::image_id
uint32_t image_id
Definition: ddtEncDecImage2D.hpp:40
MetaDataElementsImage2D::number_chunks_x
uint32_t number_chunks_x
Definition: ddtEncDecImage2D.hpp:38
DdtEncDecImage2D::DdtEncDecImage2D
DdtEncDecImage2D()
Definition: ddtEncDecImage2D.cpp:19
DdtEncDecImage2D::get_cd2_2
float get_cd2_2() const override
Definition: ddtEncDecImage2D.cpp:201