Agroeye  1.0
RasterDataGroup.h
Go to the documentation of this file.
1 #ifndef RASTERDATAGROUP_H
2 #define RASTERDATAGROUP_H
3 
4 #include <vector>
5 #include <unordered_map>
6 
7 #include "RasterData.h"
8 #include "RasterErrors.h"
9 
10 namespace agroeye {
11 namespace handlers {
12 
19 public:
21  RasterDataGroup(RasterDataGroup&&) = default;
29  void addData(const int bandNo, RasterData&& rasterData);
30 
37  const RasterData& getBandData(const int bandNo) const;
38 
43  std::vector<int> getBandsList() const;
44 
55  static RasterDataGroup createPiece(const RasterDataGroup& rasterData,
56  const size_t x, const size_t y,
57  const size_t width, const size_t height);
58 
59  size_t getXPos() const { return xPos;};
60  size_t getYPos() const { return yPos;};
61  size_t getWidth() const {return width;};
62  size_t getHeight() const {return height;};
63 
64 private:
65  void checkAttributes(const RasterData& rasterData) const;
66  void throwIfBandExists(const int bandNo) const;
67  void throwIfBandDoesNotExist(const int bandNo) const;
68  void assignMetadataIfFirst(const RasterData& rasterData);
69 
70  std::unordered_map<int, RasterData> bandsData;
71  size_t xPos {0};
72  size_t yPos {0};
73  size_t width {0};
74  size_t height {0};
75 };
76 
77 } // namespace handlers
78 } // namespace agroeye
79 
80 #endif
Definition: RasterData.h:19
RasterDataGroup()
Definition: RasterDataGroup.h:20
size_t getYPos() const
Definition: RasterDataGroup.h:60
size_t getXPos() const
Definition: RasterDataGroup.h:59
size_t getHeight() const
Definition: RasterDataGroup.h:62
Encapsulation of read data from a couple of bands from one RasterDataGroup Also provides convinient b...
Definition: RasterDataGroup.h:18
Definition: ContainerMath.h:11
std::vector< int > getBandsList() const
Gets list of bands.
Definition: RasterDataGroup.cpp:14
static RasterDataGroup createPiece(const RasterDataGroup &rasterData, const size_t x, const size_t y, const size_t width, const size_t height)
Extracts piece from given data creating copy.
Definition: RasterDataGroup.cpp:55
size_t getWidth() const
Definition: RasterDataGroup.h:61
void addData(const int bandNo, RasterData &&rasterData)
Adds data to the container.
Definition: RasterDataGroup.cpp:6
const RasterData & getBandData(const int bandNo) const
Provides access to raster data for given band.
Definition: RasterDataGroup.cpp:21
RasterDataGroup & operator=(RasterDataGroup &&)=default