Voronoi (Thiessen) Polygons within Boundary

Geometric Tools · geoprocessing tool · by Jeff Jenness
Works at every ArcGIS Pro license level

Summary

Builds Voronoi (Thiessen) polygons around a point feature class — each cell is the region of ground closer to its generating point than to any other point — optionally clipped to a boundary polygon such as a management or analysis area. Without a boundary, the cells fill a rectangle covering the points' extent expanded 10% on each axis. Geographic (latitude–longitude) data is tessellated exactly on the sphere with true great-circle bisectors, optionally refined to true ellipsoidal geodesics; projected data is tessellated planar in the output coordinate system. Chosen point attributes transfer to the cells, every cell carries a Point_FID link to its generating point, and a geodesic-hectares area field is optional.

Voronoi cells answer the oldest question in proximity analysis — which point does this piece of ground belong to? — which makes them a natural first model for territories around nest sites, service areas around stations, and the allocation of an area among sample points.

Usage

How this tool differs from Esri's Create Thiessen Polygons

The Voronoi (Thiessen) Polygons dialog with springs as input points and a wildland block as the boundary, beside the result: Voronoi cells clipped to the block, with springs visible both inside and outside it
Nearest-region cells around springs, clipped to a wildland-block boundary — here with use only points inside the boundary checked, so only the interior springs compete for ground, and with the geodesic Area_Ha field requested.

The spherical tessellation

On geographic data, the points become three-dimensional unit vectors whose convex hull is the spherical Delaunay triangulation, and its dual gives Voronoi cells bounded by true great-circle bisectors (Brown 1979; computed with scipy's SphericalVoronoi). The optional ellipsoidal refinement then slides each densified cell-edge vertex to true geodesic equidistance between its two generating points, using Karney's (2013) geodesic algorithms — making the boundaries ellipsoid-true to within the edge densification (about 0.3 degrees between vertices). Without refinement, spherical cells sit within about 0.5% of ellipsoidal-geodesic placement — normally tens of meters at regional point spacings, which is already far closer than any planar treatment of degrees.

The Geometric Tools gallery open on the ribbon, with the Voronoi (Thiessen) Polygons button, in the Tessellations row, outlined in blue
Where to find it: Voronoi (Thiessen) Polygons is in the Tessellations row of the Geometric Tools gallery, in the Geometric Tools group of the Wildlife and Forestry tab.

What is the same as Esri's tool

The default processing frame is the points' extent expanded 10% on each axis (unioned with the boundary's extent when a boundary is given), and the Extent geoprocessing environment replaces that automatic frame — set a larger extent to push edge effects outward, exactly as with Esri's tool. The Output Coordinate System environment is honored (defaulting to the point feature class's own coordinate system), as are the Geographic Transformations, Current/Scratch Workspace, XY Resolution and XY Tolerance environments. A boundary polygon in a different coordinate system is projected automatically, with the datum transformation taken from the environment or from Esri's own best suggestion.

Points outside the boundary

By default, points outside the boundary still shape the cells inside it. That is the mathematically true clipped Voronoi diagram — the nearest point to a piece of ground does not stop mattering because a boundary intervenes — and the tool reports how many points lie outside. Check use only points inside the boundary to make only interior points compete. Which is right depends on the question: if the points are real competitors (nest sites, stations) that exist beyond the boundary, leave the default; if the outside points are irrelevant to the area's internal allocation, exclude them. A layer selection on either input is honored as always, and points whose cells fall entirely outside the boundary write nothing (the tool reports the count).

ModelBuilder

The output polygon feature class chains directly into whatever comes next — zonal summaries, area tabulations, or the Select Random Records tool for selecting a random subset of cells. The output also carries provenance metadata describing the engine used and every option chosen:

A ModelBuilder model with the springs points and the wildland-block boundary feeding the Voronoi (Thiessen) Polygons tool, producing the clipped cells feature class
The tool in ModelBuilder: the springs and the boundary in, the clipped Voronoi cells out.

Parameters

LabelExplanationData type
Input point featuresRequired · in_points The generating points. A map layer's current selection is honored. Multipoint features are exploded — each part generates its own cell carrying the parent's attributes. Coincident points are dropped with a warning (first-in wins). Feature Layer
Boundary polygonOptional · boundary Polygon(s) to clip the Voronoi cells to — a management or analysis area. Multiple polygons are unioned; holes are respected; a selection is honored; a different coordinate system is projected automatically. Left blank, the cells fill a rectangle covering the points' extent expanded 10% on each axis. Feature Layer
Point attribute field(s) to transferOptional · fields Attribute fields copied from each generating point onto its cell (types, lengths and aliases preserved). Every cell also always carries Point_FID, the ObjectID of its generating point. Multiple Value
Output Voronoi polygon feature classRequired · out_fc The output polygons, one per generating point (points whose cells fall entirely outside the boundary write nothing). Defaults to the point feature class's coordinate system; the Output Coordinate System environment overrides. A folder destination gets a shapefile; a geodatabase gets a native feature class. Feature Class
Use only points inside the boundaryOptional · only_inside Checked: only points inside the boundary polygon compete for ground. Unchecked (default): every point shapes the cells, including points outside the boundary — the mathematically true clipped Voronoi diagram. Boolean
Ellipsoidal (geodesic) refinement of cell edgesOptional · refine Geographic coordinate systems only: after the exact spherical tessellation, slide each cell-edge vertex to true ellipsoidal geodesic equidistance between its two generating points. Off, edges are exact great-circle bisectors on the sphere — within about 0.5% of ellipsoidal placement. Boolean
Add a cell area field (Area_Ha)Optional · add_area Writes each cell's geodesic area in hectares to an Area_Ha field — a common territory-size proxy. Boolean

Python

Territories around nest sites, clipped to the study area, with the nest attributes and cell areas carried over:

import arcpy
arcpy.ImportToolbox(r"C:\path\to\JennessEnterprisesTools.pyt")  # your install path
arcpy.jenness.VoronoiPolygons(
    in_points=r"D:\data\study.gdb\nest_sites",
    boundary=r"D:\data\study.gdb\study_area",
    fields=["NestID", "Species"],
    out_fc=r"D:\data\study.gdb\nest_sites_Voronoi",
    only_inside=False,
    refine=True,
    add_area=True)

Recommended citation

Jenness, J. 2026. Voronoi (Thiessen) Polygons within Boundary. Wildlife and Forestry Tools add-in for ArcGIS Pro, v. 1.81 (August 2026). Jenness Enterprises. Available at: https://github.com/JeffJenness/Wildlife_Tools.

Credits and references

By Jeff Jenness, Jenness Enterprises (www.jennessent.com). Spherical Delaunay–Voronoi duality after Brown (1979), computed with scipy's SphericalVoronoi; optional ellipsoidal refinement of cell edges via Karney's (2013) geodesic algorithms.

Licensing information

Works at every ArcGIS Pro license level (Basic, Standard, Advanced). No extension licenses are required — unlike Esri's Create Thiessen Polygons, which requires Advanced.