LCOV - code coverage report
Current view: top level - core/raster - qgsrasterbandstats.h (source / functions) Hit Total Coverage
Test: coverage.info.cleaned Lines: 0 21 0.0 %
Date: 2021-04-10 08:29:14 Functions: 0 0 -
Branches: 0 0 -

           Branch data     Line data    Source code
       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 "qgis_core.h"
      22                 :            : #include <QString>
      23                 :            : #include <QVector>
      24                 :            : 
      25                 :            : #include <limits>
      26                 :            : 
      27                 :            : #include "qgsrectangle.h"
      28                 :            : 
      29                 :            : /**
      30                 :            :  * \ingroup core
      31                 :            :  * \brief The RasterBandStats struct is a container for statistics about a single
      32                 :            :  * raster band.
      33                 :            :  */
      34                 :          0 : class CORE_EXPORT QgsRasterBandStats
      35                 :            : {
      36                 :            :   public:
      37                 :            :     enum Stats
      38                 :            :     {
      39                 :            :       None         = 0,
      40                 :            :       Min          = 1,
      41                 :            :       Max          = 1 << 1,
      42                 :            :       Range        = 1 << 2,
      43                 :            :       Sum          = 1 << 3,
      44                 :            :       Mean         = 1 << 4,
      45                 :            :       StdDev       = 1 << 5,
      46                 :            :       SumOfSquares = 1 << 6,
      47                 :            :       All          = Min | Max | Range | Sum | Mean | StdDev | SumOfSquares
      48                 :            :     };
      49                 :            : 
      50                 :          0 :     QgsRasterBandStats()
      51                 :            :     {
      52                 :          0 :       statsGathered = None;
      53                 :          0 :       minimumValue = std::numeric_limits<double>::max();
      54                 :          0 :       maximumValue = -std::numeric_limits<double>::max();
      55                 :          0 :       range = 0.0;
      56                 :          0 :       mean = 0.0;
      57                 :          0 :       sumOfSquares = 0.0;
      58                 :          0 :       stdDev = 0.0;
      59                 :          0 :       sum = 0.0;
      60                 :          0 :       elementCount = 0;
      61                 :          0 :       width = 0;
      62                 :          0 :       height = 0;
      63                 :          0 :       bandNumber = 1;
      64                 :          0 :     }
      65                 :            : 
      66                 :            :     //! Compares region, size etc. not collected statistics
      67                 :          0 :     bool contains( const QgsRasterBandStats &s ) const
      68                 :            :     {
      69                 :          0 :       return ( s.bandNumber == bandNumber &&
      70                 :          0 :                s.extent == extent &&
      71                 :          0 :                s.width == width &&
      72                 :          0 :                s.height == height &&
      73                 :          0 :                s.statsGathered == ( statsGathered & s.statsGathered ) );
      74                 :            :     }
      75                 :            : 
      76                 :            :     //! \brief The gdal band number (starts at 1)
      77                 :            :     int bandNumber;
      78                 :            : 
      79                 :            :     // TODO: check if no data are excluded in stats calculation
      80                 :            : 
      81                 :            :     //! \brief The number of not no data cells in the band.
      82                 :            :     qgssize elementCount;
      83                 :            : 
      84                 :            :     /**
      85                 :            :      * \brief The maximum cell value in the raster band. NO_DATA values
      86                 :            :      * are ignored. This does not use the gdal GetMaximmum function.
      87                 :            :     */
      88                 :            :     double maximumValue;
      89                 :            : 
      90                 :            :     /**
      91                 :            :      * \brief The minimum cell value in the raster band. NO_DATA values
      92                 :            :      * are ignored. This does not use the gdal GetMinimum function.
      93                 :            :     */
      94                 :            :     double minimumValue;
      95                 :            : 
      96                 :            :     //! \brief The mean cell value for the band. NO_DATA values are excluded.
      97                 :            :     double mean;
      98                 :            : 
      99                 :            :     //! \brief The range is the distance between min & max.
     100                 :            :     double range;
     101                 :            : 
     102                 :            :     //! \brief The standard deviation of the cell values.
     103                 :            :     double stdDev;
     104                 :            : 
     105                 :            :     //! \brief Collected statistics
     106                 :            :     int statsGathered;
     107                 :            : 
     108                 :            :     //! \brief The sum of all cells in the band. NO_DATA values are excluded.
     109                 :            :     double sum;
     110                 :            : 
     111                 :            :     //! \brief The sum of the squares. Used to calculate standard deviation.
     112                 :            :     double sumOfSquares;
     113                 :            : 
     114                 :            :     //! \brief Number of columns used to calc statistics
     115                 :            :     int width;
     116                 :            : 
     117                 :            :     //! \brief Number of rows used to calc statistics
     118                 :            :     int height;
     119                 :            : 
     120                 :            :     //! \brief Extent used to calc statistics
     121                 :            :     QgsRectangle extent;
     122                 :            : };
     123                 :            : #endif

Generated by: LCOV version 1.14