How Buffer (Analysis) works

How buffers are created

The buffer routine traverses each of the input feature's vertices and creates buffer offsets. Output buffer features are created from those offsets.

Creating offsets around a line

Input line feature

Input line features

Offsets created around the input line feature

Line offsets

Buffer derived from the offsets

Buffer poly output

Description of buffer distance

The buffer distance parameter can be entered as a fixed value or as a field containing numeric values.

Example 1: Fixed distance

The following shows the buffer of a line feature class using a distance of 20, an end type of FLAT, a side type of FULL, and a dissolve type of ALL.

Buffer lines example 1

Because the buffer distance is a constant, all features are buffered to the same width.

Example 2: Distance from field

This example illustrates the buffer of a line feature class using a numeric field with values of 10, 20, and 30 for distance, an end type of FLAT, a side type of FULL, and a dissolve type of ALL.

Buffer lines example 2

Because the buffer distances are dependent on the field values, various buffer widths can be applied in the same operation.

Euclidean and Geodesic buffering

An important feature of the Buffer tool is the ability to generate geodesic buffers. Geodesic buffers are those that account for the actual shape of the earth (an ellipsoid, or more properly, a geoid) in the calculation of the buffers; distances are measured between two points on a globe. Another kind of buffers, Euclidean buffers, measure distance in a two-dimensional Cartesian plane, where straight-line or Euclidean distances are calculated between two points on the plane. Euclidean buffers are the more common type of buffer, and work well when analyzing distances around features in a projected coordinate system which are concentrated in a relatively small area (like one UTM zone). Geodesic buffers provide more accurate buffer offsets for features that are more dispersed (cover multiple UTM zones, large regions, or even the whole globe).

There are times when performing a Euclidean buffer will produce results that are not technically correct. The major danger in performing a Euclidean buffer is that when features are stored in a projected coordinate system, there are areas in the projection where distances, areas, and the shape of features are distorted; this is a fact of using projected coordinate systems. For example, if using a State Plane or UTM projected coordinate system, features are more accurate near the origin of the projection (the center of the state, or the UTM zone), but become more distorted when moving away from the origin. In cases where a dataset is not concentrated in a small area, or when a buffer distance is used which is large enough to create offsets outside of that small area, Euclidean buffers will be incorrect. Similarly, if a World projected coordinate system is used, distortion is often minimal in one area, but significant in another (for the Mercator World projection, distortion is minimal near the equator but significant near the poles). For a dataset that has features in both low and high distortion areas, Euclidean buffers will be more accurate in the low distortion areas and less accurate in the high distortion areas; geodesic buffers will be accurate in all areas.

Although geodesic buffers will always be more accurate than Euclidean buffers, there is a trade-off, in that generating geodesic buffers will take more time than generating Euclidean buffers. This difference in performance occurs because Euclidean buffers are generated using a very simple two-dimensional distance formula, whereas the geodesic buffer calculation is quite complex.

The geodesic buffer algorithm is used when the buffer input is in a geographic coordinate system (unprojected) and you specify a Buffer Distance in linear units (meters, feet, and so forth, as opposed to angular units such as degrees).

Geodesic Buffering example

The goal of this example is to compare 1,000 kilometer geodesic and Euclidean buffers of a number of select world cities. Geodesic buffers were generated by buffering a point feature class with a geographic coordinate system, and Euclidean buffers were generated by buffering a point feature class with a projected coordinate system (in both the projected and unprojected datasets the points represent the same cities).

When working with a dataset in one of the common projected coordinate systems for the whole world, such as Mercator, projection distortion may be minimal near the equator, but significant near the poles. This means that for a Mercator projected dataset, distance measurements and buffer offsets should be quite accurate near the equator and less accurate away from the equator.

Geodesic and Euclidean buffers

The graphic on the left shows the input point locations. The equator and prime meridian are shown for reference. Both graphics are displayed in the Mercator (World) projection.

In the graphic on the right, the points near to the equator have geodesic and Euclidean buffers that are coincident. For points near to the equator, the Mercator projection does a good job of producing accurate distance measurements. However, the buffers of points far from the equator show considerably more distance distortion, as their Euclidean buffers are much smaller than the geodesic buffers; this occurs with the Mercator projection because at the poles areas are stretched (land masses close to the poles, such as Greenland and Antarctica have enormous areas in comparison with the land masses close to the equator). All 1,000 kilometer Euclidean buffers are the same size since the Euclidean buffer routine assumes that map distances are the same everywhere in the projection (1,000 kilometers in Brazil is the same as 1,000 kilometers in central Russia); this is not true since away from the equator the projection's distances become more and more distorted. With any type of analysis of distance on a global scale geodesic buffers should be used as they will be accurate in all areas while Euclidean buffers will not be accurate in high distortion areas.

NoteNote:

Displaying geodesic and Euclidean buffers on a globe will reveal that the geodesic buffers truly are more accurate.

Euclidean and geodesic buffers in ArcGlobe

These are the same 1,000 kilometers Euclidean and geodesic buffers that were created for the example above. When displayed on a globe, each of the Euclidean buffers is a different size despite the fact that the same buffer distance was used for each (note the buffer in Alaska appears considerably smaller than the buffer in Brazil). This is a result of the buffers being created with the false assumption that all of the map distances were the same from one location to another. Contrarily, each of the geodesic buffers is a correct uniform size when displayed on the globe; these geodesic buffers are correct because they were not influenced by distortion from a projected coordinate system.

Additional information about geodesic buffering

The vertices of input polyline and polygon features are assumed to be connected with geodesic lines (a geodesic line is the shortest path between two points on an ellipsoid). If the intended path between vertices is not meant to follow a geodesic, you first need to explicitly densify the inputs. Geometries can be densified using the Densify tool.

The path followed by the output buffer is generally not a geodesic curve. The maximum allowable deviation of the computed buffer curve from a theoretical buffer curve is equal to 10 meters. The method used to compute this offset curve is called tracés parallèles. For detailed information about this method, see:

  • Murphy B., Collier P., Mitchell D. and Hirst W. (1999) - "Maritime Boundary Generation from Straight Baselines Defined as Geodesics". Proceedings of the International Conference on Technical Aspects of Maritime Boundary Delineation and Delimitation. Monaco, 9–10 September, 1999.

The BUFF_DIST field

The values in the BUFF_DIST field of the output feature class is in the linear unit of the Input Features' coordinate system. For example, if a 50 meter buffer distance is specified in the tool, but the input dataset has a coordinate system that uses feet as the linear unit, 50 meters will be converted to feet in the output BUFF_DIST field. There are two exceptions to this:

The following table summarizes scenarios when BUFF_DIST unit conversion is and is not performed.

Input Features Coordinate System

Buffer Distance Units

Unit Conversion

Geographic

Angular or linear

Converted to meters

Projected

Angular

Converted to input coordinate system unit

Projected

Linear

Converted to input coordinate system unit

Geographic or Projected

Unknown

Assumed to be input coordinate system unit

Unknown

Angular or Linear

No conversion

BUFF_DIST unit conversion
Feature Class properties dialog box
NoteNote:

BUFF_DIST value units are always those of the Output Coordinate System environment when it is set.

Related Topics

3/3/2014