Buffer (Analysis)
Summary
Creates buffer polygons around input features to a specified distance. An optional dissolve can be performed to combine overlapping buffers.
Illustration
Usage
-
-
If buffering a projected feature class that has features covering a large region, or you are using a very large buffer distance, distortions in the projection can cause erroneous buffers to be produced.
- Point or multipoint input—You can completely avoid distortion when buffering points by using a feature class that has a geographic coordinate system and specifying a Buffer Distance in linear units (meters, feet, and so forth, as opposed to angular units such as degrees). When this combination of inputs is used—point or multipoint features in a geographic coordinate system buffered by linear units—the output will be true geodesic buffers. Geodesic buffers appear as ovals on any flat map and will only appear as perfect circles when displayed on a globe (you can use the ArcGlobe or ArcGIS Explorer applications to view geographic data on a three-dimensional globe).
- Line or polygon input—You can only minimize distortion by using a projection that minimizes distance distortion, such as an Equidistant Conic or an Azimuthal Equidistant projection.
You can change the coordinate system of your input feature class by using the Project tool, or you can set the Output Coordinate System geoprocessing environment before executing the Buffer tool and this coordinate system will be used in creating buffers.
For additional information, see How Buffer works.
-
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 be given, and any null geometry features will not be written to the output feature class.
-
When the output of the Buffer tool will be used as input to an overlay operation such as Union or Intersect, it is recommended that the Dissolve Type option LIST or ALL be used to reduce the number of overlapping features produced by the tool. Use the Dissolve Type option LIST, and in Dissolve Field(s), select only the attributes from the input features that are necessary for the analysis being performed. This will reduce the number of spatial relationships between the datasets involved in the overlay operation, thereby reducing the amount of memory and time required for processing.
-
Using the Dissolve Type option NONE adds the field BUFF_DIST to the output feature class. This field contains the buffer distance used to buffer each feature in the linear unit of the input features' coordinate system.
-
If a field from the input features is used to obtain buffer distances, the field's values can be either a number (5) or a number with a valid linear unit (5 Kilometers). If the field values are simply a number, it is implied that these distances are in the linear unit of the input features' spatial reference. Field values can be entered with any valid linear unit and the feature will be buffered to that specified distance. If the linear unit specified in the field values is invalid or not recognized, the linear unit of the input features' spatial reference will be used by default.
-
The Buffer tool can create very large multipart polygon features when the Dissolve Type option is set to ALL or LIST. This is especially true when using a dissolve field that has few unique values or when dissolving all polygons into a single polygon. Very large polygon features can cause display problems and poor performance when the features are drawn on a map or edited. To avoid these potential problems, use Multipart To Singlepart on the Buffer tool's output to split larger multipart features into many smaller features.
-
For details on how the dissolve types ALL and LIST work, refer to the documentation for the Dissolve tool.
-
Features are excluded from the buffer process if their buffer distance is zero.
-
The buffered edges of a left or right side buffer are slightly different from those created by a full buffer due to differences in the algorithms used to create the buffers. The difference between the two is within the precision of the input features.
-
The Dissolve Field(s) parameter Add Field button is used only in ModelBuilder. In ModelBuilder, where the preceding tool has not been run or its derived data does not exist, the Dissolve Field(s) parameter may not be populated with field names. The Add Field button allows expected fields to be added to the Dissolve Field(s) list in order to complete the Buffer tool dialog box.
Side Type (line_side) options LEFT, RIGHT, and OUTSIDE_ONLY and the End Type (line_end_type) option FLAT are only available with an ArcInfo license.
Syntax
Parameter | Explanation | Data Type |
in_features |
The input point, line, or polygon features to be buffered. | Feature Layer |
out_feature_class |
The feature class containing the output feature buffers. | Feature Class |
buffer_distance_or_field |
The distance around the input features in which buffer zones are created. Distances can be provided as either a value representing a linear distance or as a numeric field from the input features that contains the linear distances to buffer each feature. If the Distance linear units are not specified or are entered as Unknown, the linear unit of the input features' spatial reference is used. | Linear unit ; Field |
line_side (Optional) |
The side(s) of the input features that will be buffered.
License: This optional parameter is not available with an ArcView or ArcEditor license. | String |
line_end_type (Optional) |
The shape of the buffer at the end of line input features. This parameter is not valid for polygon input features.
License: This optional parameter is not available with an ArcView or ArcEditor license. | String |
dissolve_option (Optional) |
Specifies the dissolve to be performed to remove output buffer overlap.
| String |
dissolve_field [dissolve_field,...] (Optional) |
The list of field(s) from the input features on which to dissolve the output buffers. Any buffers sharing attribute values in the listed fields (carried over from the input features) are dissolved. | Field |
Code Sample
The following Python Window script demonstrates how to use the Buffer tool:
import arcpy arcpy.env.workspace = "C:/data" arcpy.Buffer_analysis("roads", "C:/output/majorrdsBuffered" "100 Feet", "FULL", "ROUND", "LIST", "Distance")
Find areas of suitable vegetation that exclude areas heavily impacted by major roads:
# Name: Buffer.py # Description: Find areas of suitable vegetation which exclude areas heavily impacted by major roads # Author: ESRI # import system modules import arcpy from arcpy import env # Set environment settings 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.Select_analysis(veg, suitableVeg, whereClause) # Buffer areas of impact around major roads roads = "majorrds" roadsBuffer = "C:/output/Output.gdb/buffer_output" distanceField = "Distance" sideType = "FULL" endType = "ROUND" dissolveType = "LIST" dissolveField = "Distance" arcpy.Buffer_analysis(roads, roadsBuffer, distanceField, sideType, endType, dissolveType, dissolveField) # Erase areas of impact around major roads from the suitable vegetation patches eraseOutput = "C:/output/Output.gdb/suitable_vegetation_minus_roads" xyTol = "1 Meters" arcpy.Erase_analysis(suitableVeg, roadsBuffer, eraseOutput, xyTol)