v.rast.stats
Calculates univariate statistics from a raster map based on a vector map and uploads statistics to new attribute columns.
v.rast.stats [-cd] map=name [layer=string] [type=string [,string,...]] [where=sql_query] raster=name [,name,...] column_prefix=string [,string,...] [method=string [,string,...]] [percentile=integer] [--verbose] [--quiet] [--qq] [--ui]
Example:
v.rast.stats map=name raster=name column_prefix=string
grass.script.run_command("v.rast.stats", map, layer="1", type="point,line,boundary,centroid,area", where=None, raster, column_prefix, method="number,null_cells,minimum,maximum,range,average,stddev,variance,coeff_var,sum,first_quartile,median,third_quartile,percentile", percentile=90, flags=None, verbose=False, quiet=False, superquiet=False)
Example:
gs.run_command("v.rast.stats", map="name", raster="name", column_prefix="string")
Parameters
map=name [required]
Name of vector map
Or data source for direct OGR access
layer=string
Layer number or name
Vector features can have category values in different layers. This number determines which layer to use. When used with direct OGR access this is the layer name.
Default: 1
type=string [,string,...]
Input feature type
Allowed values: point, line, boundary, centroid, area
Default: point,line,boundary,centroid,area
where=sql_query
WHERE conditions of SQL statement without 'where' keyword
Example: income < 1000 and population >= 10000
raster=name [,name,...] [required]
Name of input raster map to calculate statistics from
column_prefix=string [,string,...] [required]
Column prefix for new attribute columns
method=string [,string,...]
The methods to use
Allowed values: number, null_cells, minimum, maximum, range, average, stddev, variance, coeff_var, sum, first_quartile, median, third_quartile, percentile
Default: number,null_cells,minimum,maximum,range,average,stddev,variance,coeff_var,sum,first_quartile,median,third_quartile,percentile
percentile=integer
Percentile to calculate
Allowed values: 0-100
Default: 90
-c
Continue if upload column(s) already exist
-d
Create densified lines (default: thin lines)
All cells touched by the line will be set, not only those on the render path
--help
Print usage summary
--verbose
Verbose module output
--quiet
Quiet module output
--qq
Very quiet module output
--ui
Force launching GUI dialog
map : str, required
Name of vector map
Or data source for direct OGR access
Used as: input, vector, name
layer : str, optional
Layer number or name
Vector features can have category values in different layers. This number determines which layer to use. When used with direct OGR access this is the layer name.
Used as: input, layer
Default: 1
type : str | list[str], optional
Input feature type
Allowed values: point, line, boundary, centroid, area
Default: point,line,boundary,centroid,area
where : str, optional
WHERE conditions of SQL statement without 'where' keyword
Example: income < 1000 and population >= 10000
Used as: input, sql_query, sql_query
raster : str | list[str], required
Name of input raster map to calculate statistics from
Used as: input, raster, name
column_prefix : str | list[str], required
Column prefix for new attribute columns
method : str | list[str], optional
The methods to use
Allowed values: number, null_cells, minimum, maximum, range, average, stddev, variance, coeff_var, sum, first_quartile, median, third_quartile, percentile
Default: number,null_cells,minimum,maximum,range,average,stddev,variance,coeff_var,sum,first_quartile,median,third_quartile,percentile
percentile : int, optional
Percentile to calculate
Allowed values: 0-100
Default: 90
flags : str, optional
Allowed values: c, d
c
Continue if upload column(s) already exist
d
Create densified lines (default: thin lines)
All cells touched by the line will be set, not only those on the render path
verbose: bool, optional
Verbose module output
Default: False
quiet: bool, optional
Quiet module output
Default: False
superquiet: bool, optional
Very quiet module output
Default: False
DESCRIPTION
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. A new column is generated in the attribute table for each statistic requested in method (if not already present).
The univariate statistics include the number of raster cells counted, the number of raster NULL cells counted, minimum and maximum cell values, range, average, standard deviation, variance, coefficient of variation, sum, first quartile, median, third quartile, and percentile.
NOTES
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.
The script internally aligns the raster grid cells to the grid of the first input raster map.
If an area has several categories in the selected layer (equivalent to overlapping polygons in Simple Features), only one category will be kept during the rasterization process. Statistics for the skipped categories will thus be partial.
For example, if there are three areas: area 1 with cat 1, area 2 with cat 2, area 3 with cats 1, 2. Only one category value of area 3 will be used for rasterization, the other category value will be skipped. Thus statistics for the used category value will be complete, while statistics for the skipped category value will be incomplete.
Large amounts of system memory can be used when extended statistics (first_quartile,median,third_quartile,percentile ) are being requested 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.
EXAMPLES
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 raster=elevation -p
# calculate selected DEM statistics, upload to vector map table:
v.rast.stats myzipcodes_wake raster=elevation \
column_prefix=elev method=minimum,maximum,average,range,stddev,percentile \
percentile=95
# verify results:
v.info -c myzipcodes_wake
v.db.select myzipcodes_wake
v.univar myzipcodes_wake column=elev_range type=centroid
SEE ALSO
r.univar, v.univar, v.vect.stats, v.what.rast, v.what.rast3, v.what.vect
AUTHOR
Markus Neteler, CEA (for the EDEN EU/FP6 Project)
SOURCE CODE
Available at: v.rast.stats source code
(history)
Latest change: Friday Feb 07 19:16:09 2025 in commit a82a39f