I need to know the value of the sum of all pixels in a raster. However, in the Statistics section of the Metadata tab in Properties, under Sum of All Cells it always indicates 0.00. I have tried with different raster formats to no avail. What am I doing wrong? How can I get this value?
- Create a polygon using Vector > Research Tools >Polygon from layer extent. here layer is the raster in question.
- Activate/ Install Zonal statistics Plugin.
- Use Zonal statistics plugin where the raster is the one whose sum is required and the polygon is the one you created from layer extent. Enter output column prefix (say stats_). Run the plugin.
- Open the attribute table of the polygon. Now you have stats_sum column along with other columns with stats_ prefix.
- I checked the values in GRASS GIS and the match is perfect.
In QGIS 2.x, you can get raster statistics for the entire layer (including the sum of all pixel values in the band) by using the Raster layer statistics algorithm in the Processing toolbox.
Processing | Toolbox (check-box)
then go to the Processing toolbox:
QGIS geoalgorithms | Raster tools | Raster layer statistics
Generate the statistics for the layer you want to inspect. The results are then stored in the layer metadata, which is accessible by right-clicking on the layer and choosing Properties.
I understood the question as, How do I get sum of all pixel values of a raster? Something like running Statistics on the attributes of a vector. One can do this easily via programming. I can think of another way to do this via QGIS. It would be inefficient and slightly inaccurate, but it will work.
- Create a point layer representing each pixel of the raster. You can do this via Vector -> Research Tools -> Regular Points. Use number of points as x_size * y_size. So for a raster of 100 px width x 100px height, use 10000. Specify an offset of (pixel resolution)/2 , so you are sampling a the center of the pixel.
- Next, install the Point Sampling plugin. Using this plugin, you can sample the raster at all of the 10000 points and get an attribute value which is the pixel value.
- Run Vector -> Analysis -> Basic Statistics on the resulting vector to get the sum.
You could use gdalinfo to get the raster statistics, for example:
gdalinfo -stats filename.tif
This will give you the mean pixel value and the raster size in pixels. You could also get this data from the Properties -> Metadata tab.
Then it's a question of arithmetic: mean value x (height in pixels x width in pixels).