Agroeye  1.0
RasterData.h
Go to the documentation of this file.
1 #ifndef RASTERDATA_H
2 #define RASTERDATA_H
3 
4 #include <vector>
5 #include <algorithm>
7 #include "RasterErrors.h"
8 #include "ContainerMath.h"
9 
10 namespace agroeye {
11 namespace handlers {
12 
18 class RasterBand;
19 class RasterData {
20  friend class RasterBand;
21 public:
31  RasterData(const size_t width, const size_t height, const size_t x = 0, const size_t y = 0);
32 
39  RasterData(const RasterData& other);
40 
47  RasterData(RasterData&& other);
50  virtual ~RasterData();
51 
56  inline size_t getXPos() const {return xPos;};
57  inline size_t getYPos() const {return yPos;};
58  inline size_t getWidth() const {return width;};
59  inline size_t getHeight() const {return height;};
60  double& operator()(size_t x, size_t y);
61  const double& operator()(size_t x, size_t y) const;
62  double getMean() const;
63  double getStdDev() const;
72 
83  static RasterData extractPiece(const RasterData& rasterData, size_t x, size_t y, size_t width, size_t height);
84 
85 private:
86  double getMean(const double noDataValue) const;
87  double getStdDev(const double noDataValue) const;
88  void checkAndAssign(const size_t x, const size_t y, const size_t width, const size_t height);
89  bool checkInsidePosition(const size_t x, const size_t y) const;
90  size_t getIndex(const size_t x, const size_t y) const;
91 
92  size_t xPos;
93  size_t yPos;
94  size_t width;
95  size_t height;
96  std::vector<double> pixelData;
97 };
98 
99 } // namespace handlers
100 } // namespace agroeye
101 
102 
103 #endif
Definition: RasterData.h:19
size_t getYPos() const
Definition: RasterData.h:57
size_t getXPos() const
Column number of top left corner Position of first pixel in.
Definition: RasterData.h:56
size_t getHeight() const
Definition: RasterData.h:59
double getStdDev() const
Definition: RasterData.cpp:102
Definition: ContainerMath.h:11
RasterData(const size_t width, const size_t height, const size_t x=0, const size_t y=0)
Constructor allocating memory.
Definition: RasterData.cpp:6
static RasterData extractPiece(const RasterData &rasterData, size_t x, size_t y, size_t width, size_t height)
Extracts fragment of raster data creating new one.
Definition: RasterData.cpp:123
double calculate(agroeye::operations::StatisticsTypes types) const
Calculates the value of given statistic attribute.
Definition: RasterData.cpp:114
Definition: RasterBand.h:20
virtual ~RasterData()
Definition: RasterData.cpp:58
RasterData & operator=(const RasterData &)
Definition: RasterData.cpp:33
size_t getWidth() const
Definition: RasterData.h:58
double getMean() const
Definition: RasterData.cpp:98
double & operator()(size_t x, size_t y)
Definition: RasterData.cpp:88
StatisticsTypes
Type of statistics that can be calculated.
Definition: SegmentationParameters.h:15