GRASS logo

Note: A new GRASS GIS stable version has been released: GRASS GIS 7, available here. And see the new manual page here


v.rast.stats - Calculates univariate statistics from a raster map based on a vector map and uploads statistics to new attribute columns.


vector, raster, statistics


v.rast.stats help
v.rast.stats [-ce] vector=name [layer=integer] raster=name colprefix=string [percentile=integer] [--verbose] [--quiet]


Continue if upload column(s) already exist
Calculate extended statistics
Verbose module output
Quiet module output


Name of vector polygon map
A single vector map can be connected to multiple database tables. This number determines which table to use
Default: 1
Name of raster map to calculate statistics from
Column prefix for new attribute columns
Percentile to calculate (requires extended statistics flag)
Options: 0-100
Default: 90


v.rast.stats calculates basic univariate statistics from a raster map only for the parts covered by the specified vector map. The vector map will be rasterized according to the raster map resolution. Then univariate statistics are calculated per vector category (cat) from the raster map and the results uploaded to the vector map attribute table. New columns are generated in the attribute table if not already present.

Nine columns are generated (n, min, max, range, mean, stddev, variance, coeff_var, sum) according to the output of r.univar. If the -e extended statistics flag is given the 1st quartile, median, 3rd quartile, and given percentile are also calculated.


v.rast.stats is only meaningful for lines or polygons.

The module may take a long time to run if the raster region contains a large number of cells. In this case the --verbose flag may be used to track progress.

The script stops if a (prefixed) upload column is already present in the vector map attribute table, unless otherwise instructed with the -c continue flag. The column prefix will be separated from the statistic name with an underscore. For example with a prefix of "elev" the sum column will be named elev_sum.

If a DBF database is being used, note that column names are restricted by the DBF specification to 10 characters. Therefore it is advised to be economical in the use of the column prefix when using DBF as any additional characters will be chopped off.

If a MASK is present, it will be restored after the script finished. The script changes temporarily to the resolution of the given raster map.

Large amounts of system memory can be used when the -e extended statistics flag is used with a very large region setting. If the region is too large the module should display memory allocation errors. Basic statistics can be calculated using any size input region.


Example to upload DEM statistics to ZIP codes vector map (North Carolina sample dataset):
g.copy vect=zipcodes_wake,myzipcodes_wake
# set computational region to DEM:
g.region rast=elevation -p
# calculate DEM statistics, upload to vector map table:
v.rast.stats myzipcodes_wake raster=elevation colprefix=elev
# verify results: -c myzipcodes_wake myzipcodes_wake
v.univar myzipcodes_wake column=elev_range type=centroid


r.univar, v.univar, v.what.rast, v.what.vect


Markus Neteler, CEA (for the EDEN EU/FP6 Project)

Last changed: $Date: 2014-09-14 22:59:33 -0700 (Sun, 14 Sep 2014) $

Main index - vector index - Full index

© 2003-2016 GRASS Development Team