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
Offsets created around the input line feature
Buffer derived from the offsets
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.
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.
Because the buffer distances are dependent on the field values, various buffer widths can be applied in the same operation.
Euclidean and Geodesic buffering
Geodesic buffer
There are two methods for generating buffer offsets: Euclidean (or 2D Cartesian) and Geodesic.
Euclidean buffer
The input geometry is buffered by calculating offsets using a two-dimensional distance formula.
For best results, the buffer operation should be performed in a projected coordinate system that minimizes distortion for that particular input dataset.
Geodesic buffer (point and multipoint only)
The input geometry is buffered by calculating each offset by projecting it on the surface of the earth (ellipsoid).
The geodesic buffer approach yields buffers that are not affected by the distortions that are inherent in a projected coordinate system.
This approach is especially critical when generating buffers for features stored in a geographic coordinate system. This is due to the fact that although the conversion from degrees of latitude is fairly constant throughout the coordinate system, the conversion from degrees of longitude to linear distances varies greatly as you move away from the equator.
For example, at the equator, 1 decimal degree is equivalent to 111.325 kilometers, but as you move north or south from the equator, the lines of longitude come closer and closer together: at 30 degrees of latitude, a degree of longitude measures 96.49 kilometers, but at 60 degrees of latitude, a degree of longitude is only 55.80 kilometers. Eventually all longitudes converge to a point at the poles.
The graphic below shows how the squares described by 1 degree of longitude and 1 degree of latitude vary in shape and size as you move farther and farther from the equator.
The geodesic buffer algorithm is used when these three criteria are met:
- The input feature class contains a point or multipoints.
- The input feature class has a geographic coordinate system (unprojected).
- The buffer distance is specified with a linear unit (for example, kilometers or miles).
Example of an analysis with geodesic buffering
The goal is to generate 500 kilometer buffers around a selected set of world cities. In the past, this could be difficult to accomplish. However, now with geodesic buffering, simply select your input point layer (symbolized with black triangles below) in a geographic coordinate system and specify the buffer distance "500 kilometers".
The resulting buffers appear more and more distorted as you move away from the equator.
Jakarta is only 6 degrees from the equator, so the buffer generated for it is quite circular.
Stockholm, on the other hand, is 59 degrees north of the equator. When rendered in a geographic coordinate system, the buffer looks quite distorted, especially in the east–west direction. Using the Measure tool in ArcMap will return a distance of 500 kilometers from the point to the resulting buffer's edge in all directions. This is because the Measure tool also calculates geodesic distances.
Switching the ArcMap data frame coordinate system to UTM zone 33 (appropriate for Stockholm) shows that, in an appropriate projected coordinate system, the buffer is very much circular in shape.
Alert, in Canadian territory of Nunavut, is the northernmost permanently inhabited place in the world. Its location is represented by a black triangle below. The result of generating a 1,000 kilometer geodesic buffer around that point is represented by the yellow area.
When the ArcMap data frame coordinate system is set to North Pole Gnomonic, the buffer around Alert is also circular.
The BUFF_DIST field
Before ArcGIS 9.3, the BUFF_DIST field reflected exactly the value you entered. For example, if your data's spatial reference had feet as the linear unit, and a 50-meter buffer distance was used, the output data's attribute table looked like this:
Beginning with ArcGIS 9.3, the value shown in the BUFF_DIST field is in the units of your input data. Given the same scenario as above, now the 50 meter buffer distance is converted to the input data's units of measure, in this case feet:
There are two exceptions to this:
- If the input data is in a geographic coordinate system with angular units and a linear unit such as kilometers or miles is used as the buffer distance unit, no conversion is applied. The value in the BUFF_DIST field is exactly the value entered.
- If the spatial reference of the input data is Unknown, no conversion is applied, so the value in the BUFF_DIST field is exactly the value entered.
Note: BUFF_DIST value units are always those of the Output coordinate system environment when it is set.
The following table summarizes the possible scenarios when the Output coordinate system environment is not set. Note that Linear includes both metric and non-metric units of measure.
Data coordinate system units |
Buffer distance units |
Units for distance in BUFF_DIST field |
---|---|---|
Angular |
Angular or linear |
No conversion |
Linear |
Angular |
Converted to coordinate system units |
Linear |
Linear |
Converted to coordinate system units |
Angular or Linear |
Unknown |
Assumed to be input coordinate system units |
Unknown |
Angular or Linear |
No conversion |