Skip to content

v.hull

Produces a 2D/3D convex hull for a given vector map.

v.hull [-rf] input=name [layer=string] output=name [cats=range] [where=sql_query] [--overwrite] [--verbose] [--quiet] [--qq] [--ui]

Example:

v.hull input=name output=name

grass.script.run_command("v.hull", input, layer="-1", output, cats=None, where=None, flags=None, overwrite=False, verbose=False, quiet=False, superquiet=False)

Example:

gs.run_command("v.hull", input="name", output="name")

Parameters

input=name [required]
    Name of input vector map
    Or data source for direct OGR access
layer=string
    Layer number or name ('-1' for all layers)
    A single vector map can be connected to multiple database tables. This number determines which table to use. When used with direct OGR access this is the layer name.
    Default: -1
output=name [required]
    Name for output vector map
cats=range
    Category values
    Example: 1,3,7-9,13
where=sql_query
    WHERE conditions of SQL statement without 'where' keyword
    Example: income < 1000 and population >= 10000
-r
    Limit to current region
-f
    Create a 'flat' 2D hull even if the input is 3D points
--overwrite
    Allow output files to overwrite existing files
--help
    Print usage summary
--verbose
    Verbose module output
--quiet
    Quiet module output
--qq
    Very quiet module output
--ui
    Force launching GUI dialog

input : str, required
    Name of input vector map
    Or data source for direct OGR access
    Used as: input, vector, name
layer : str, optional
    Layer number or name ('-1' for all layers)
    A single vector map can be connected to multiple database tables. This number determines which table to use. When used with direct OGR access this is the layer name.
    Used as: input, layer
    Default: -1
output : str, required
    Name for output vector map
    Used as: output, vector, name
cats : str, optional
    Category values
    Example: 1,3,7-9,13
    Used as: input, cats, range
where : str, optional
    WHERE conditions of SQL statement without 'where' keyword
    Example: income < 1000 and population >= 10000
    Used as: input, sql_query, sql_query
flags : str, optional
    Allowed values: r, f
    r
        Limit to current region
    f
        Create a 'flat' 2D hull even if the input is 3D points
overwrite: bool, optional
    Allow output files to overwrite existing files
    Default: False
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.hull computes the convex hull of a vector map and outputs the convex hull polygon as a vector area map. The convex hull, or convex envelope, for an object or a set of objects is the minimal convex set containing the given objects. This module creates a vector polygon containing all vector points or lines of the input map.

In the case of 3D input points, the hull will be a 3D hull as well, unless the user specifies the -f flag. The 3D hull will be composed of triangular faces.

Convex hull polygon
Fig: Convex hull polygon created with v.hull

NOTES

In order to use the where option the layer option must be set to a positive number (the default is '-1' for 'all layers'), otherwise all points from all layers will be used and the cats and where options will be ignored.

EXAMPLE

Example of v.hull 3D output (using two random 3D point clouds, North Carolina sample data set):

g.region rural_1m -p
r.mapcalc "zero = 0"
v.random -z output=random3d_a n=10 zmin=0 zmax=200
v.random -z output=random3d_b n=15 zmin=400 zmax=600
v.hull input=random3d_a output=random3d_a_hull
v.hull input=random3d_b output=random3d_b_hull

d.mon wx0
d.vect random3d_a_hull
d.vect random3d_a color=red

d.vect random3d_b_hull
d.vect random3d_b color=red

# 3D view in wxGUI (g.gui)

Convex hull in 3D
Fig: Convex hull in 3D from 3D points created with v.hull

REFERENCES

  • M. de Berg, M. van Kreveld, M. Overmars, O. Schwarzkopf, (2000). Computational geometry, chapter 1.1, 2-8.
  • J. O'Rourke, (1998). Computational Geometry in C (Second Edition), chapter 4.

SEE ALSO

v.delaunay

AUTHORS

Andrea Aime, Modena, Italy
Markus Neteler, ITC-irst (update to 5.7)
Benjamin Ducke, CAU Kiel (3D hull support)
Martin Landa, CTU in Prague, Czech Republic (vector lines support)

SOURCE CODE

Available at: v.hull source code (history)
Latest change: Wednesday Feb 26 22:15:39 2025 in commit c855d99