Voronoi (Thiessen) Polygons within Boundary
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
- License. Esri's tool requires the Advanced license; this tool works at every license level (the tessellation is computed internally with scipy, not by ArcToolbox).
- Boundary polygon. Esri's tool can only fill a rectangle; this tool optionally clips the cells to a real boundary polygon — a management area, an analysis area, a study-area outline — with multiple boundary polygons unioned and their holes respected.
- Geographic data. Esri's tool computes planar Thiessen polygons in whatever coordinate system the data arrives in. On latitude–longitude data that geometry is quietly wrong: a degree of longitude shrinks toward the poles, so treating degrees as planar units stretches the east–west axis and every “equidistant” cell edge lands in the wrong place. This tool detects a geographic output coordinate system and computes the tessellation exactly on the sphere instead, with cells bounded by true great-circle bisectors.
- Attributes. Esri's tool offers only-FID or all-fields; this tool offers a field-by-field picker, and always writes a Point_FID field linking each cell to the ObjectID of its generating point.
- Extras. An optional geodesic-hectares Area_Ha field (cell area is a common territory-size proxy in wildlife work); multipoint inputs exploded so each part generates its own attributed cell; coincident points dropped with a warning (first-in wins, honoring the XY Tolerance environment).
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.
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:
Parameters
| Label | Explanation | Data 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
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.
- Brown, K. Q. 1979. Voronoi diagrams from convex hulls. Information Processing Letters 9:223–228. doi.org/10.1016/0020-0190(79)90074-7
- Karney, C. F. F. 2013. Algorithms for geodesics. Journal of Geodesy 87:43–55. doi.org/10.1007/s00190-012-0578-z
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.
Related tools and pages
- Adaptive Voronoi Polygons — iterates this tool's cells toward compact, nearly equal areas, subdividing an area into workable pieces.
- Random Point Generator — random points to tessellate around, or to sample the cells afterward.
- Repeating Shapes — regular tessellations (hexagons, squares, triangles) when the pieces should be uniform rather than point-driven.
- Select Random Records — select a random subset of the finished cells.
- Concave Hull — the chi and alpha shapes are carved from the Delaunay triangulation, this tessellation's dual.