Data Area Delineation from Lidar Points - Lidar Solution in ArcGIS
Data Area Delineation from Lidar Points - Lidar Solution in ArcGIS

This blogs is written by Clayton Crawford, a Product Engineer in the Software Products Group's 3D Team in Redlands. 

Data Area Delineation from Lidar Points

It's common for lidar or photogrammetric data for a survey to be delivered without a detailed data area boundary. Often, the xy extents of the survey are defined by a tile system that covers an area of interest and the data fills these tiles (Figure 1) or the data are simply guaranteed to cover some minimal extent and there is no explicit or absolute boundary other than what can be inferred (Figure 2). Either way, the area of coverage is usually not a cleanly filled rectangle.


The problem

If a surface is made without declaring the data area up front (i.e., by including a clip polygon when defining a terrain dataset or TIN) then some of what are actually voids around the perimeter get treated as data areas. Analytic results in these areas are unreliable because height estimates are based on samples that can be far away.

Take, for example, the data shown in Figure 3. The graphic on the left depicts a dense collection of lidar points shown in green. The gaps in the interior are water bodies (where lidar is typically omitted). The irregularly shaped data boundary is easy to see but unless an explicit extent is provided, in the form of a clip polygon, TIN and terrain related tools will fill in voids, greatly oversimplifying the actual data extent.

We know areas outside the data collection extent should be excluded from the surface. The problem is coming up with the polygon that provides an accurate representation of this extent. Hand digitizing is laborious. There’s an easier way.

The solution

What we need to do is synthesize a data boundary from the points that can be used to enforce a proper interpolation zone in the surface (Figure 4).

The key to the equation is the average point spacing. This is the primary variable to use when going after the data area. Surveys usually have explicit minimums on point spacing in order to provide control for interpolators. Areas that don't meet density requirements are exceptions. They usually fall in one of the following categories: water bodies, obscured areas, and ‘holidays’ (send the latter back to the data provider for repair). The vast majority of the data will meet sample density specifications. Point spacing is usually reported in metadata. If you don’t know it try the 3D Analyst Point File Information tool. Alternately, eyeball it using the Measure tool in ArcMap. To learn more about point spacing use the link at the top.

Once you know the point spacing you follow these steps:

  1. Rasterize the points with Point To Raster.
  2. Assign one value to all data cells with Con.
  3. Fill small NoData areas with Expand.
  4. Reduce the overall extent of data cells with Shrink.
  5. Vectorize the raster with Raster To Polygon.
  6. Use a VBA script to remove small holes (interior rings) from polygon(s).

Note that a Spatial Analyst license is required to run a number of these tools.

The remainder of this document goes into more detail on each of these steps.

Point To Raster

Rasterization of the points will help aggregate the area covered by the points and provides a good data structure to work with for subsequent steps. You just need to tell the tool what cell assignment type to use and the output cellsize. Use the COUNT as the assignment type. As far as cellsize goes, specify a value that's several times larger than average point spacing. Otherwise, you’ll get a lot of noise because the points aren’t evenly spaced. From the standpoint of processing efficiency and noise reduction, the larger cellsize you use the better, but there will be a tradeoff with the tightness of fit in the end result. A good place to start is 4 times the average point spacing (Figure 5).


The use of the Con tool in this workflow is to simply turn any and all data cells into cells with one value. This value defines a raster ‘zone’ that will be expanded in the next step. All that’s needed is to take the output from Point To Raster and provide a constant value for a positive expression. All non-zero value cells will be considered positive and be assigned the constant. Since COUNT was used as the cell assignment method during rasterization, any cell with a point in it must have a value greater than zero (Figure 6).


Unless you used a very coarse cellsize relative to your average point spacing, there's a likelihood many NoData cells remain. Most of these can be eliminated using Expand (Figure 7). You want to remove most of these so the polygon produced during vectorization in a later step isn’t full of a million holes. That would be unnecessarily expensive.


 Expand will grow the zone of interest outward. In our case the zone is all the data cells, coded with a value of 1. This effectively eliminates small gaps found in the interior.

It’s okay if some isolated NoData areas remain in the output. You just don’t want thousands upon thousands. The remainder will be handled in the last step.


While Expand eliminates isolated NoData cells it also grows the data area outward. It needs to actually be brought in a little. Clip polygons need to be smaller than the actual point extent, so when terrain or TIN tries to estimate z values along the polygon boundary points can be found on both sides. This is needed to get good z estimates. To reduce the raster’s data boundary use Shrink (Figure 9).

At this point you should have a relatively clean raster with the extent of its data cells slightly within the lidar point extent.

Raster To Polygon

The Raster to Vector tool will convert the raster to a polygon feature class. Make sure the Simplify polygons option is checked. If it’s not, the output will be stair-stepped, rather than smooth, and contain more vertices than necessary (Figure 10).

At this point, the process is almost complete. You need to review the output for correctness. Chances are there’s one more thing that needs to be done: the removal of remaining holes inside your clip polygon.

Remove Interior Rings from Polygons VBA Script

If holes are present in the resulting polygon, grab the RemoveInteriorRings VB script from ArcScripts online ( This will edit out the internal rings leaving just the exterior boundaries. To run the script, follow these steps:

  1. Have your polygon feature class output from Raster To Polygon as the first layer in a map document.
  2. Go into VBA inside ArcMap via Tools>Macros>Visual Basic Editor.
  3. From the Project window right click on the project, select Import File, and bring in the VBA module you downloaded from ArcScripts.
  4. Run the RemoveInteriorRings macro.

You should now have a clip polygon that can be used when defining a terrain dataset or TIN. It should conform to the data extent of the points but fall slightly inside them (Figure 11).