r3.univar(1)

✨ NAME ✨

hiii bestie πŸ’– welcome to the GRASS GIS User's Manual page for r3.univar β€” she's that girl fr fr. She calculates univariate statistics from the non-null cells of a 3D raster map. πŸ¦‹

And the stats she's serving? literally the number of cells counted, minimum and maximum cell values, range, arithmetic mean, population variance, standard deviation, coefficient of variation, and sum. no cap. πŸ‘‘


🏷️ KEYWORDS 🏷️

raster3d, statistics, univariate statistics β€” iykyk 🌸


πŸŽ€ SYNOPSIS πŸŽ€

r3.univar
r3.univar --help
r3.univar [-get] map=name  [zones=name]   [output=name]
[percentile=float[,float,...]]   [separator=character]   [--overwrite]
[--help]  [--verbose]  [--quiet]  [--ui]

🚩 Flags 🚩

  • -g β€” prints the stats in shell script style πŸ’…
  • -e β€” calculates extended statistics ✨ (this is the one that eats your RAM, we'll get to that)
  • -t β€” table output format instead of the standard output format πŸŽ€
  • --overwrite β€” allow output files to overwrite existing files πŸ™ˆ (yes she will simply delete the old one, be warned)
  • --help β€” print usage summary 🫢
  • --verbose β€” verbose module output πŸ‘€
  • --quiet β€” quiet module output 🀫
  • --ui β€” force launching GUI dialog πŸ–₯️

πŸ“‹ Parameters πŸ“‹

  • map=name [required] β€” name of 3D raster map πŸ—ΊοΈ (this one is not optional bestie, she needs a map)
  • zones=name β€” 3D Raster map used for zoning, must be of type CELL 🌈
  • output=name β€” name for output file (if omitted or - output to stdout) πŸ’Ύ
  • percentile=float[,float,...] β€” percentile to calculate (requires extended statistics flag) πŸ“Š
    • Options: 0-100
    • Default: 90
  • separator=character β€” field separator πŸŽ€
    • Special characters: pipe, comma, space, tab, newline
    • Default: pipe

πŸ’– DESCRIPTION πŸ’–

okay so here's the tea β˜• β€” r3.univar calculates the univariate statistics for a 3D raster map. That includes the number of cells counted, minimum and maximum cell values, range, arithmetic mean, population variance, standard deviation, coefficient of variation, and sum. the whole lil squad. πŸ’…

And here's the cute part: statistics are calculated separately for every category/zone found in the zones input map, if you gave one. so yes, per-zone glow-ups. ✨

  • if the -e extended statistics flag is given, the 1st quartile, median, 3rd quartile, and the 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. it's giving pipeline. 🌈


πŸ“ NOTES πŸ“

⚠️ 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. πŸ’€

🌈 EXAMPLE 🌈

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

and the output she serves ✨:

 100%
total null and non-null cells: 1000
total null cells: 0
Of the non-null cells:
----------------------
n: 1000
minimum: 0.00053905
maximum: 0.998322
range: 0.997783
mean: 0.513676
mean of absolute values: 0.513676
standard deviation: 0.289969
variance: 0.0840821
variation coefficient: 56.4498 %
sum: 513.676463040334
1st quartile: 0.257654
median (even number of cells): 0.524313
3rd quartile: 0.763637
98th percentile: 0.982924

and now the script-style era πŸ’…:

# script style output, along with extended statistics
r3.univar -ge map=random_0_1 percentile=98
n=1000
null_cells=0
cells=1000
min=0.000539049520323687
max=0.998322037540536
range=0.997782988020212
mean=0.513676463040334
mean_of_abs=0.513676463040334
stddev=0.289969154194666
variance=0.0840821103843701
coeff_var=56.4497646005434
sum=513.676463040334
first_quartile=0.257654
median=0.524313
third_quartile=0.763637
percentile_98=0.982924

🚧 TODO 🚧

To be implemented: mode, skewness, kurtosis. πŸ™ˆ (not yet bestie, not yet)


πŸ‘€ SEE ALSO πŸ‘€

  • g.region
  • r.univar
  • r.mode
  • r.quantile
  • r.series
  • r3.stats
  • r.statistics
  • v.rast.stats
  • v.univar

πŸ‘‘ AUTHORS πŸ‘‘

  • Soeren Gebbert
  • Code is based on r.univar from Hamish Bowman, Otago University, New Zealand
  • and Martin Landa
  • Zonal loop by Markus Metz

πŸ“¦ SOURCE CODE πŸ“¦

Available at: r3.univar source code (history) 🌐

Accessed: Saturday Jan 17 05:41:05 2026 ⭐

Main index | 3D raster index | Topics index | Keywords index | Graphical index | Full index πŸŽ€


okay that's the whole page bestie, you ate it, go calculate some stats πŸ’–

signing off from GRASS 8.4.2 β€” this was r3.univar(1), mwah πŸ’…βœ¨

© 2003-2025 GRASS Development Team, GRASS GIS 8.4.2 Reference Manual 🫢🌸

πŸ“¦ where this page comes from