QGIS API Documentation
3.26.3-Buenos Aires (65e4edfdad)
|
A class that calculates raster statistics (count, sum, mean) for a polygon or multipolygon layer and appends the results as attributes. More...
#include <qgszonalstatistics.h>
Public Types | |
enum | Result { Success = 0, LayerTypeWrong = 1, LayerInvalid, RasterInvalid, RasterBandInvalid, FailedToCreateField = 8, Canceled = 9 } |
Error codes for calculation. More... | |
enum | Statistic { Count = 1, Sum = 2, Mean = 4, Median = 8, StDev = 16, Min = 32, Max = 64, Range = 128, Minority = 256, Majority = 512, Variety = 1024, Variance = 2048, All = Count | Sum | Mean | Median | StDev | Max | Min | Range | Minority | Majority | Variety | Variance } |
Enumeration of flags that specify statistics to be calculated. More... | |
Public Member Functions | |
QgsZonalStatistics (QgsVectorLayer *polygonLayer, QgsRasterInterface *rasterInterface, const QgsCoordinateReferenceSystem &rasterCrs, double rasterUnitsPerPixelX, double rasterUnitsPerPixelY, const QString &attributePrefix=QString(), int rasterBand=1, QgsZonalStatistics::Statistics stats=QgsZonalStatistics::Statistics(QgsZonalStatistics::Count|QgsZonalStatistics::Sum|QgsZonalStatistics::Mean)) | |
Constructor for QgsZonalStatistics, using a QgsRasterInterface. More... | |
QgsZonalStatistics (QgsVectorLayer *polygonLayer, QgsRasterLayer *rasterLayer, const QString &attributePrefix=QString(), int rasterBand=1, QgsZonalStatistics::Statistics stats=QgsZonalStatistics::Statistics(QgsZonalStatistics::Count|QgsZonalStatistics::Sum|QgsZonalStatistics::Mean)) | |
Convenience constructor for QgsZonalStatistics, using an input raster layer. More... | |
QgsZonalStatistics::Result | calculateStatistics (QgsFeedback *feedback) |
Runs the calculation. More... | |
Static Public Member Functions | |
static QMap< QgsZonalStatistics::Statistic, QVariant > | calculateStatistics (QgsRasterInterface *rasterInterface, const QgsGeometry &geometry, double cellSizeX, double cellSizeY, int rasterBand, QgsZonalStatistics::Statistics statistics) |
Calculates the specified statistics for the pixels of rasterBand in rasterInterface (a raster layer dataProvider() ) within polygon geometry. More... | |
static QString | displayName (QgsZonalStatistics::Statistic statistic) |
Returns the friendly display name for a statistic. More... | |
static QString | shortName (QgsZonalStatistics::Statistic statistic) |
Returns a short, friendly display name for a statistic, suitable for use in a field name. More... | |
A class that calculates raster statistics (count, sum, mean) for a polygon or multipolygon layer and appends the results as attributes.
Definition at line 46 of file qgszonalstatistics.h.
Error codes for calculation.
Definition at line 70 of file qgszonalstatistics.h.
Enumeration of flags that specify statistics to be calculated.
Definition at line 51 of file qgszonalstatistics.h.
QgsZonalStatistics::QgsZonalStatistics | ( | QgsVectorLayer * | polygonLayer, |
QgsRasterLayer * | rasterLayer, | ||
const QString & | attributePrefix = QString() , |
||
int | rasterBand = 1 , |
||
QgsZonalStatistics::Statistics | stats = QgsZonalStatistics::Statistics( QgsZonalStatistics::Count | QgsZonalStatistics::Sum | QgsZonalStatistics::Mean ) |
||
) |
Convenience constructor for QgsZonalStatistics, using an input raster layer.
The raster layer must exist for the lifetime of the zonal statistics calculation.
Definition at line 33 of file qgszonalstatistics.cpp.
QgsZonalStatistics::QgsZonalStatistics | ( | QgsVectorLayer * | polygonLayer, |
QgsRasterInterface * | rasterInterface, | ||
const QgsCoordinateReferenceSystem & | rasterCrs, | ||
double | rasterUnitsPerPixelX, | ||
double | rasterUnitsPerPixelY, | ||
const QString & | attributePrefix = QString() , |
||
int | rasterBand = 1 , |
||
QgsZonalStatistics::Statistics | stats = QgsZonalStatistics::Statistics( QgsZonalStatistics::Count | QgsZonalStatistics::Sum | QgsZonalStatistics::Mean ) |
||
) |
Constructor for QgsZonalStatistics, using a QgsRasterInterface.
The polygonLayer gives the vector layer containing the (multi)polygon features corresponding to the different zones. This layer will be modified, adding extra attributes for each of the zonal statistics calculated.
Pixel values for each zone are taken from the raster rasterInterface. The constructor must also be given various properties relating to the input raster, such as the raster CRS (rasterCrs), and the size (X and Y) in map units for each raster pixel. The source raster band is specified via rasterBand, where a value of 1 corresponds to the first band.
If the CRS of the polygonLayer and rasterCrs differ, the calculation will automatically reproject the zones to ensure valid results are calculated.
The attributePrefix argument specifies an optional prefix to use when creating the new fields for each calculated statistic.
Finally, the calculated statistics can be set via the stats argument. A new field will be added to polygonLayer for each statistic calculated.
Definition at line 45 of file qgszonalstatistics.cpp.
QgsZonalStatistics::Result QgsZonalStatistics::calculateStatistics | ( | QgsFeedback * | feedback | ) |
Runs the calculation.
Definition at line 58 of file qgszonalstatistics.cpp.
|
static |
Calculates the specified statistics for the pixels of rasterBand in rasterInterface (a raster layer dataProvider() ) within polygon geometry.
Returns a map of statistic to result value.
Definition at line 303 of file qgszonalstatistics.cpp.
|
static |
Returns the friendly display name for a statistic.
Definition at line 222 of file qgszonalstatistics.cpp.
|
static |
Returns a short, friendly display name for a statistic, suitable for use in a field name.
Definition at line 256 of file qgszonalstatistics.cpp.