# Buffer (Analysis)

## Summary

Creates buffer polygons around input features to a specified distance.

Alternate tools are available for buffer operations. See the Pairwise Buffer and Graphic Buffer tool documentation for details.

## Usage

• As described in How Buffer works, an important feature of the Buffer tool is the Method parameter, which specifies how buffers will be constructed. The two basic methods for constructing buffers, Euclidean and geodesic, are described as follows:

• Euclidean buffers measure distance in a two-dimensional Cartesian plane, where distances are calculated between two points on a flat surface. Euclidean buffers are appropriate when analyzing distances around features in a projected coordinate system in a relatively small area (such as one UTM zone).
• Geodesic buffers account for the shape of the earth (an ellipsoid, or more properly, a geoid). Distances are calculated between two points on a curved surface (the geoid). Geodesic buffers are appropriate in the following circumstances:
• The input features are dispersed (cover multiple UTM zones, large regions, or the entire globe).
• The spatial reference (map projection) of the input features distorts distances to preserve other properties such as area.
Geodesic buffers may appear unusual on a flat map. When displayed on a globe, however, they will look correct. For more information, see How Buffer works.

The Method parameter specifies how buffers will be created.

• The Planar option is the default. This option will automatically determine the method to use based on the coordinate system of the input.
• If the input features have a projected coordinate system, Euclidean buffers will be created.
• If the input features have a geographic coordinate system and you specify a Buffer Distance value in linear units (meters, feet, and so forth, as opposed to angular units such as degrees), geodesic buffers will be created.
• This option produces the same result as the Buffer tool prior to ArcGIS 10.3.
• The Geodesic option creates a shape-preserving geodesic buffer for any input coordinate system. The input features are densified to create buffers that more accurately represent the shape of the input features. In some cases, this option may take more time than a geodesic buffer created using the Planar option. However, the result is a buffer that more accurately matches the shape of the input feature.

##### Note:

You can change the coordinate system of a feature class using the Project tool, or you can set the Output Coordinate System environment before running the Buffer tool, and this coordinate system will be used when creating buffers.

When using the Planar option, you can improve the accuracy of buffers created with projected inputs using a projection that minimizes distance distortion—such as an Equidistant Conic or an Azimuthal Equidistant projection—that is geographically appropriate for the input.

• If the input is a projected coordinate system and the output is a geodatabase feature class, the output may contain circular arc segments. When the input is a point feature class, the output will always be circular arcs. If circular arcs are projected to a different coordinate system, the location and size of the original buffers will be transformed. The shape of the buffers will not change, and the projected buffers will not accurately represent the area covered by the original buffer. If you project circular arcs, use the Densify tool to convert the circular arcs to straight lines; then project the densified buffers.

• The output feature class will include a BUFF_DIST field that contains the buffer distance used to buffer each feature in the linear unit of the input's coordinate system. When using the Geodesic option to create buffers, the buffer distance provided will be converted to meters.

If a BUFF_DIST field exists in the input, its values will be overwritten in the output. If a Dissolve Type value of All or List is used, the output will not include this field.

• The output feature class will include a ORIG_FID field that contains the feature ID of the input feature for which the buffer was created. If an ORIG_FID field exists in the input, its values will be overwritten in the output. If a Dissolve Type value of All or List is used, the output will not include this field.

• When buffering polygon features, negative buffer distances can be used to create buffers inside the polygon features. Using a negative buffer distance will reduce the polygons' boundaries by the distance specified.

##### Caution:

If the negative buffer distance is large enough to collapse the polygon to nothing, a null geometry will be generated. A warning message will appear, and no null geometry features will be written to the output feature class.

• You can use a field from the input to set the buffer distances. Both numeric and text fields are acceptable. In a text field, the buffer distance can be a number, such as 5, or a valid linear unit, such as 5 kilometers.

If using a number without a linear unit, the buffer will be in the linear units of the input's spatial reference. If the input is in a geographic coordinate system, the buffer will be in meters.

If the linear unit is not recognized, the buffer will be in the linear units of the input's spatial reference. To learn more about valid linear units, see Linear units.

• Buffer operations do not support the transfer of z-values from the input to the output buffer features.

• Buffer operations do not support the transfer of m-values from the input to the output buffer features.

The Side Type parameter options Left, Right, and Exclude the input polygon from buffer and the End Type parameter option Flat are only available with an Desktop Advanced license.

## Parameters

LabelExplanationData Type
Input Features

The input point, line, or polygon features that will be buffered.

Feature Layer
Output Feature Class

The feature class containing the output buffers.

Feature Class
Distance [value or field]

The distance around the input features that will be buffered. Distances can be provided as either a value representing a linear distance or a field from the input features that contains the distance to buffer each feature.

If linear units are not specified or are entered as Unknown, the linear unit of the input features' spatial reference will be used.

Linear Unit; Field
Side Type
(Optional)

Specifies the sides of the input features that will be buffered. This parameter is only supported for polygon and line features.

• FullFor lines, buffers will be generated on both sides of the line. For polygons, buffers will be generated around the polygon and will contain and overlap the area of the input features. This is the default.
• LeftFor lines, buffers will be generated on the topological left of the line. This option is not supported for polygon input features.
• RightFor lines, buffers will be generated on the topological right of the line. This option is not supported for polygon input features.
• Exclude the input polygon from bufferFor polygons, buffers will be generated outside the input polygon only (the area inside the input polygon will be erased from the output buffer). This option is not supported for line input features.

This optional parameter is not available with a Desktop Basic or Desktop Standard license.

String
End Type
(Optional)

Specifies the shape of the buffer at the end of line input features. This parameter is not valid for polygon input features.

• RoundThe ends of the buffer will be round, in the shape of a half circle. This is the default.
• FlatThe ends of the buffer will be flat or squared and will end at the endpoint of the input line feature.

This optional parameter is not available with a Desktop Basic or Desktop Standard license.

String
Dissolve Type
(Optional)

Specifies the type of dissolve that will be performed to remove buffer overlap.

• No DissolveAn individual buffer for each feature will be maintained, regardless of overlap. This is the default.
• Dissolve all output features into a single featureAll buffers will be dissolved together into a single feature, removing any overlap.
• Dissolve features using the listed fields' unique values or combination of valuesAny buffers sharing attribute values in the listed fields (carried over from the input features) will be dissolved.
String
Dissolve Field(s)
(Optional)

The list of fields from the input features on which the output buffers will be dissolved. Any buffers sharing attribute values in the listed fields (carried over from the input features) will be dissolved.

Field
Method
(Optional)

Specifies whether the planar or geodesic method will be used to create the buffers.

• PlanarIf the input features are in a projected coordinate system, Euclidean buffers will be created. If the input features are in a geographic coordinate system and the buffer distance is in linear units (meters, feet, and so forth, as opposed to angular units such as degrees), geodesic buffers will be created. This is the default. You can use the Output Coordinate System environment setting to specify the coordinate system to use. For example, if the input features are in a projected coordinate system, you can set the environment to a geographic coordinate system to create geodesic buffers.
• Geodesic (shape preserving)All buffers will be created using a shape-preserving geodesic buffer method, regardless of the input coordinate system.
String

`arcpy.analysis.Buffer(in_features, out_feature_class, buffer_distance_or_field, {line_side}, {line_end_type}, {dissolve_option}, {dissolve_field}, {method})`
NameExplanationData Type
in_features

The input point, line, or polygon features that will be buffered.

Feature Layer
out_feature_class

The feature class containing the output buffers.

Feature Class
buffer_distance_or_field

The distance around the input features that will be buffered. Distances can be provided as either a value representing a linear distance or a field from the input features that contains the distance to buffer each feature.

If linear units are not specified or are entered as Unknown, the linear unit of the input features' spatial reference will be used.

When specifying a distance, if the linear unit has two words, such as Decimal Degrees, combine the two words into one (for example, 20 DecimalDegrees).

Linear Unit; Field
line_side
(Optional)

Specifies the sides of the input features that will be buffered. This parameter is only supported for polygon and line features.

• FULLFor lines, buffers will be generated on both sides of the line. For polygons, buffers will be generated around the polygon and will contain and overlap the area of the input features. This is the default.
• LEFTFor lines, buffers will be generated on the topological left of the line. This option is not supported for polygon input features.
• RIGHTFor lines, buffers will be generated on the topological right of the line. This option is not supported for polygon input features.
• OUTSIDE_ONLYFor polygons, buffers will be generated outside the input polygon only (the area inside the input polygon will be erased from the output buffer). This option is not supported for line input features.

This optional parameter is not available with a Desktop Basic or Desktop Standard license.

String
line_end_type
(Optional)

Specifies the shape of the buffer at the end of line input features. This parameter is not valid for polygon input features.

• ROUNDThe ends of the buffer will be round, in the shape of a half circle. This is the default.
• FLATThe ends of the buffer will be flat or squared and will end at the endpoint of the input line feature.

This optional parameter is not available with a Desktop Basic or Desktop Standard license.

String
dissolve_option
(Optional)

Specifies the type of dissolve that will be performed to remove buffer overlap.

• NONEAn individual buffer for each feature will be maintained, regardless of overlap. This is the default.
• ALLAll buffers will be dissolved together into a single feature, removing any overlap.
• LISTAny buffers sharing attribute values in the listed fields (carried over from the input features) will be dissolved.
String
dissolve_field
[dissolve_field,...]
(Optional)

The list of fields from the input features on which the output buffers will be dissolved. Any buffers sharing attribute values in the listed fields (carried over from the input features) will be dissolved.

Field
method
(Optional)

Specifies whether the planar or geodesic method will be used to create the buffers.

• PLANARIf the input features are in a projected coordinate system, Euclidean buffers will be created. If the input features are in a geographic coordinate system and the buffer distance is in linear units (meters, feet, and so forth, as opposed to angular units such as degrees), geodesic buffers will be created. This is the default. You can use the Output Coordinate System environment setting to specify the coordinate system to use. For example, if the input features are in a projected coordinate system, you can set the environment to a geographic coordinate system to create geodesic buffers.
• GEODESICAll buffers will be created using a shape-preserving geodesic buffer method, regardless of the input coordinate system.
String

### Code sample

Buffer example 1 (Python window)

The following Python window script demonstrates how to use the Buffer function.

``````import arcpy
arcpy.env.workspace = "C:/data"
"ROUND", "LIST", "Distance")``````
Buffer example 2 (stand-alone script)

Find areas of suitable vegetation that exclude areas heavily impacted by major roads.

``````# Name: Buffer.py
# Description: Find areas of suitable vegetation that exclude areas heavily

# Import system modules
import arcpy

# Set environment settings
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"

# Select suitable vegetation patches from all vegetation
veg = "vegtype"
suitableVeg = "C:/output/Output.gdb/suitable_vegetation"
whereClause = "HABITAT = 1"
arcpy.analysis.Select(veg, suitableVeg, whereClause)

# Buffer areas of impact around major roads
distanceField = "Distance"
sideType = "FULL"
endType = "ROUND"
dissolveType = "LIST"
dissolveField = "Distance"
dissolveType, dissolveField)

# Erase areas of impact around major roads from the suitable vegetation patches
xyTol = "1 Meters"

## Environments

### Special cases

Parallel Processing Factor

This tool honors the Parallel Processing Factor environment. If the environment is not set (the default) or is set to 0, parallel processing will be disabled; parallel processing will not be used and processing will be done sequentially. Setting the environment to 100 will enable parallel processing; parallel processing will be used and processing will be done in parallel. Up to 10 cores will be used when parallel processing is enabled.

The Parallel Processing Factor environment is only supported when buffering line and polygon features.

## Licensing information

• Basic: Limited
• Standard: Limited