r3.univar calculates the univariate statistics for a 3D raster map.
This includes the number of cells counted, minimum and maximum cell values,
range, arithmetic mean, population variance, standard deviation,
coefficient of variation, and sum. Statistics are calculated separately for every
category/zone found in the zones input map if given.
If the -e extended statistics flag is given the 1st quartile, median,
3rd quartile, and given percentile are calculated.
If the -g flag is given the results are presented in a format suitable
for use in a shell script.
If the -t flag is given the results are presented in tabular format
with the given field separator. The table can immediately be converted to a
vector attribute table which can then be linked to a vector, e.g. the vector
that was rasterized to create the zones input raster.
As with most GRASS raster3d modules, r3.univar operates on the voxel
array defined by the current 3d region settings, not the original extent and
resolution of the input map. See g.region.
This module can use large amounts of system memory when the -e
extended statistics flag is used with a very large region setting. If the
region is too large the module should exit gracefully with a memory allocation
error. Basic statistics can be calculated using any size input region.
Computing univariate statistics of a 3D raster with randomly generated values:
# define volume
g.region n=10 s=0 w=0 e=10 b=0 t=10 res=1 res3=1 -p3
# generate random map
r3.mapcalc "random_0_1 = rand(0., 1)" -s
# compute univariate statistics, along with extended statistics
r3.univar -e map=random_0_1 percentile=98
total null and non-null cells: 1000
total null cells: 0
Of the non-null cells:
mean of absolute values: 0.513676
standard deviation: 0.289969
variation coefficient: 56.4498 %
1st quartile: 0.257654
median (even number of cells): 0.524313
3rd quartile: 0.763637
98th percentile: 0.982924
# script style output, along with extended statistics
r3.univar -ge map=random_0_1 percentile=98
To be implemented mode, skewness, kurtosis.
Code is based on r.univar from
Hamish Bowman, Otago University, New Zealand
and Martin Landa
Zonal loop by Markus Metz
Last changed: $Date$