QGIS API Documentation  2.0.1-Dufour
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
qgsrasterbandstats.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsrasterbandstats.h - description
3  -------------------
4  begin : Fri Jun 28 2002
5  copyright : (C) 2005 by T.Sutton
6  email : tim@linfiniti.com
7 ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef QGSRASTERBANDSTATS
19 #define QGSRASTERBANDSTATS
20 
21 #include <QString>
22 #include <QVector>
23 
24 #include <limits>
25 
26 #include "qgscolorrampshader.h"
27 #include "qgsrectangle.h"
28 
33 class CORE_EXPORT QgsRasterBandStats
34 {
35  public:
36  enum Stats
37  {
38  None = 0,
39  Min = 1,
40  Max = 1 << 1,
41  Range = 1 << 2,
42  Sum = 1 << 3,
43  Mean = 1 << 4,
44  StdDev = 1 << 5,
45  SumOfSquares = 1 << 6,
46  All = Min | Max | Range | Sum | Mean | StdDev | SumOfSquares
47  };
48 
50  {
51  statsGathered = None;
52  minimumValue = std::numeric_limits<double>::max();
53  maximumValue = std::numeric_limits<double>::min();
54  range = 0.0;
55  mean = 0.0;
56  sumOfSquares = 0.0;
57  stdDev = 0.0;
58  sum = 0.0;
59  elementCount = 0;
60  width = 0;
61  height = 0;
62  }
63 
65  bool contains( const QgsRasterBandStats &s ) const
66  {
67  return ( s.bandNumber == bandNumber &&
68  s.extent == extent &&
69  s.width == width &&
70  s.height == height &&
71  s.statsGathered == ( statsGathered & s.statsGathered ) );
72  }
73 
75  //QString bandName;
76 
79 
81  // TODO: check if no data are excluded in stats calculation
82  size_t elementCount;
83 
86  double maximumValue;
87 
90  double minimumValue;
91 
93  double mean;
94 
96  double range;
97 
99  double stdDev;
100 
103 
105  double sum;
106 
108  double sumOfSquares;
109 
111  int width;
112 
114  int height;
115 
118 };
119 #endif
A rectangle specified with double values.
Definition: qgsrectangle.h:35
double sum
The sum of all cells in the band.
int height
Number of rows used to calc statistics.
int bandNumber
The name of the band that these stats belong to.
double maximumValue
The maximum cell value in the raster band.
size_t elementCount
The number of not no data cells in the band.
bool contains(const QgsRasterBandStats &s) const
double ANALYSIS_EXPORT max(double x, double y)
returns the maximum of two doubles or the first argument if both are equal
QgsRectangle extent
Extent used to calc statistics.
double stdDev
The standard deviation of the cell values.
The RasterBandStats struct is a container for statistics about a single raster band.
double mean
The mean cell value for the band.
int statsGathered
Collected statistics.
double range
The range is the distance between min & max.
double minimumValue
The minimum cell value in the raster band.
double ANALYSIS_EXPORT min(double x, double y)
returns the minimum of two doubles or the first argument if both are equal
double sumOfSquares
The sum of the squares.
int width
Number of columns used to calc statistics.