db.univar
Calculates univariate statistics on selected table column.
db.univar [-eg] table=name column=name [database=name] [driver=name] [where=sql_query] [percentile=float [,float,...]] [format=string] [--verbose] [--quiet] [--qq] [--ui]
Example:
db.univar table=name column=name
grass.script.parse_command("db.univar", table, column, database=None, driver=None, where=None, percentile=90, format=None, flags=None, verbose=None, quiet=None, superquiet=None)
Example:
gs.parse_command("db.univar", table="name", column="name", format="json")
grass.tools.Tools.db_univar(table, column, database=None, driver=None, where=None, percentile=90, format=None, flags=None, verbose=None, quiet=None, superquiet=None)
Example:
tools = Tools()
tools.db_univar(table="name", column="name", format="json")
This grass.tools API is experimental in version 8.5 and expected to be stable in version 8.6.
Parameters
table=name [required]
Name of attribute table
column=name [required]
Name of attribute column on which to calculate statistics (must be numeric)
database=name
Name of database
driver=name
Name of database driver
Allowed values: dbf, odbc, ogr, sqlite, pg
where=sql_query
WHERE conditions of SQL statement without 'where' keyword
Example: income < 1000 and population >= 10000
percentile=float [,float,...]
Percentile to calculate (requires extended statistics flag)
Allowed values: 0-100
Default: 90
format=string
Output format
Allowed values: plain, json, shell
plain: Plain text output
json: JSON (JavaScript Object Notation)
shell: Shell script style for Bash eval
-e
Extended statistics (quartiles and 90th percentile)
-g
Print stats in shell script style [deprecated]
This flag is deprecated and will be removed in a future release. Use format=shell instead.
--help
Print usage summary
--verbose
Verbose module output
--quiet
Quiet module output
--qq
Very quiet module output
--ui
Force launching GUI dialog
table : str, required
Name of attribute table
Used as: input, dbtable, name
column : str, required
Name of attribute column on which to calculate statistics (must be numeric)
Used as: input, dbcolumn, name
database : str, optional
Name of database
Used as: input, dbname, name
driver : str, optional
Name of database driver
Used as: input, dbdriver, name
Allowed values: dbf, odbc, ogr, sqlite, pg
where : str, optional
WHERE conditions of SQL statement without 'where' keyword
Example: income < 1000 and population >= 10000
Used as: input, sql_query, sql_query
percentile : float | list[float] | str, optional
Percentile to calculate (requires extended statistics flag)
Allowed values: 0-100
Default: 90
format : str, optional
Output format
Allowed values: plain, json, shell
plain: Plain text output
json: JSON (JavaScript Object Notation)
shell: Shell script style for Bash eval
flags : str, optional
Allowed values: e, g
e
Extended statistics (quartiles and 90th percentile)
g
Print stats in shell script style [deprecated]
This flag is deprecated and will be removed in a future release. Use format=shell instead.
verbose : bool, optional
Verbose module output
Default: None
quiet : bool, optional
Quiet module output
Default: None
superquiet : bool, optional
Very quiet module output
Default: None
table : str, required
Name of attribute table
Used as: input, dbtable, name
column : str, required
Name of attribute column on which to calculate statistics (must be numeric)
Used as: input, dbcolumn, name
database : str, optional
Name of database
Used as: input, dbname, name
driver : str, optional
Name of database driver
Used as: input, dbdriver, name
Allowed values: dbf, odbc, ogr, sqlite, pg
where : str, optional
WHERE conditions of SQL statement without 'where' keyword
Example: income < 1000 and population >= 10000
Used as: input, sql_query, sql_query
percentile : float | list[float] | str, optional
Percentile to calculate (requires extended statistics flag)
Allowed values: 0-100
Default: 90
format : str, optional
Output format
Allowed values: plain, json, shell
plain: Plain text output
json: JSON (JavaScript Object Notation)
shell: Shell script style for Bash eval
flags : str, optional
Allowed values: e, g
e
Extended statistics (quartiles and 90th percentile)
g
Print stats in shell script style [deprecated]
This flag is deprecated and will be removed in a future release. Use format=shell instead.
verbose : bool, optional
Verbose module output
Default: None
quiet : bool, optional
Quiet module output
Default: None
superquiet : bool, optional
Very quiet module output
Default: None
Returns:
result : grass.tools.support.ToolResult | None
If the tool produces text as standard output, a ToolResult object will be returned. Otherwise, None
will be returned.
DESCRIPTION
db.univar calculates basic univariate statistics for numeric attributes in a data table. It will calculate minimum, maximum, range, mean, standard deviation, variance, coefficient of variation, quartiles, median, and 90th percentile. It uses db.select to create list values for statistical calculations. NOTES If the database and driver are not specified, the default values set in db.connect will be used.
EXAMPLE
In this example, random points are sampled from the elevation map (North Carolina sample dataset) and univariate statistics performed:
g.region raster=elevation -p
v.random output=samples n=100
v.db.addtable samples column="heights double precision"
v.what.rast samples raster=elevation column=heights
v.db.select samples
db.univar samples column=heights
Python example with JSON output
Using the example above, print the 90th percentile in Python:
import grass.script as gs
data = gs.parse_command(
"db.univar", table="samples", column="heights", format="json", flags="e"
)
print(data["percentiles"])
Output:
[{'percentile': 90.0, 'value': 139.0807}]
The JSON will look like this:
{
"n": 100,
"min": 62.71209,
"max": 147.2162,
"range": 84.50410999999998,
"mean": 110.95470289999996,
"mean_abs": 110.95470289999996,
"variance": 362.63393287085927,
"stddev": 19.042949689343278,
"coeff_var": 0.17162814366242862,
"sum": 11095.470289999996,
"first_quartile": 95.56498,
"median": 107.5519,
"third_quartile": 125.1526,
"percentiles": [
{
"percentile": 90.0,
"value": 139.0807
}
]
}
SEE ALSO
v.db.univar, r.univar, v.univar, db.select, d.vect.thematic
AUTHORS
Michael Barton, Arizona State University
and authors of r.univar.sh
SOURCE CODE
Available at: db.univar source code
(history)
Latest change: Sunday Jul 20 17:11:04 2025 in commit 80eaa84