Fill Corridor Holes

Corridor Designer Tools · Build and Modify Corridors · geoprocessing tool · by Jeff Jenness
Works at every ArcGIS Pro license level

Summary

Closes small interior holes in one or more polygon feature classes — typically a Least-Cost Corridor output, but any polygon dataset works. Every hole smaller than a size threshold is filled; holes at or above the threshold are left as real, meaningful gaps — a lake in the middle of a habitat polygon, a genuinely excluded area. Hole size is measured as true geodesic area, correct on any coordinate system including geographic ones. Every attribute field is preserved unchanged; only the geometry is edited.

Learn more About Corridor Design covers the preliminary linkage design and the holes that slicing leaves in it. Step 8 of the Corridor Design Tutorial and Step 6 of the Land Facet Tutorial both run this tool on a unioned linkage, with the tutorial data (41 MB) available to download so you can follow along.

Fill small, keep large

This tool identifies and measures every hole in your polygon features directly and applies an exact threshold in the unit of your choice: below it, filled; at or above it, kept. That is the standard useful direction for hole cleanup — it removes rasterization slivers while preserving genuinely large gaps — and matches the only direction Esri's Eliminate Polygon Part supports.

Why not Esri's Eliminate Polygon Part? It was tested directly against this need and rejected: its area threshold is planar only, and on a geographic (latitude/longitude) coordinate system it does not correctly convert an areal-unit string at all — in testing, a 50,000 m² threshold silently eliminated a real 111,000 m² hole, with no error. Least-Cost Corridor output is very often geographic, so this tool measures every hole's true geodesic area instead, exact on any coordinate system.

Multiple inputs in one run

Every listed feature class is processed independently and written to its own output, named <input name><suffix> (default _holes_removed) in the output workspace — a straight schema copy with only the geometry edited. A non-polygon input is skipped with a warning rather than failing the batch.

A tour of the dialog

The example is the preliminary linkage design from the Corridor Design Tutorial, a union of twelve species' corridors riddled with small holes, cleaned with a 10-hectare threshold.

The Corridor Designer Tools gallery open on the ribbon, with the Fill Corridor Holes button, in the Build and Modify Corridors row, outlined in blue
Where to find it: Fill Corridor Holes is in the Build and Modify Corridors row of the Corridor Designer Tools gallery, in the Corridor Designer Tools group of the Wildlife and Forestry tab.
The Fill Corridor Holes geoprocessing pane: input Full Linkage Design, hole size threshold 10, threshold units Hectares, output workspace Test_Geometry.gdb, output name suffix _holes_removed
The threshold and its unit — square meters, hectares, square kilometers, square feet, acres or square miles — plus the output workspace and the suffix each output name gets.
The unioned linkage design before filling, in orange, with many small holes and several large ones
Before: the raw union.
The linkage design after filling, in green: the small holes are gone and only openings larger than 10 hectares remain
After: every hole under 10 hectares filled; the larger openings kept for a decision.

ModelBuilder

A ModelBuilder diagram: Full Linkage Design and the Test_Geometry.gdb workspace feeding Fill Corridor Holes, producing the output feature classes
The polygon layer and the output workspace in; the cleaned feature class out.

Parameters

LabelExplanationData type
Input polygon feature classesRequired · in_features One or more polygon datasets; each is processed independently. Feature Layer (multiple)
Hole size thresholdRequired · threshold_value Holes smaller than this are filled. Double
Threshold unitsRequired · threshold_units The areal unit of the threshold (hectares, acres, square kilometers, …). String
Output workspaceRequired · out_workspace Home for the cleaned outputs. Workspace
Output name suffixOptional · name_suffix Appended to each input's name (default _holes_removed). String

Python

import arcpy
arcpy.ImportToolbox(r"C:\path\to\JennessEnterprisesTools.pyt")  # your install path
arcpy.jenness.FillCorridorHoles(
    in_features=r"D:\corr.gdb\bear_corridor;D:\corr.gdb\deer_corridor",
    threshold_value=50,
    threshold_units="Hectares",
    out_workspace=r"D:\corr.gdb")

Recommended citation

Jenness, J., D. Majka and P. Beier. 2026. Fill Corridor Holes. Wildlife and Forestry Tools add-in for ArcGIS Pro, v. 1.99 (September 2026). Jenness Enterprises. Available at: https://github.com/JeffJenness/Wildlife_Tools.

Credits and references

By Jeff Jenness, Jenness Enterprises (www.jennessent.com), ported from the CorridorDesigner tools by Jenness, Majka and Beier.

Licensing information

Works at every ArcGIS Pro license level (Basic, Standard, Advanced). No extension licenses are required.