The topic of this article may not meet Wikipedia's general notability guideline. (October 2018)
In geographic information systems (GIS) and spatial analysis, buffer analysis is the determination of a zone around a geographic feature containing locations that are within a specified distance of that feature, the buffer zone (or just buffer). A buffer is likely the most commonly used tool within the proximity analysis methods.
The buffer operation has been a core part of GIS functionality since the original integrated GIS software packages of the late 70s and early 80s, such as ARC/INFO, Odyssey, and MOSS. Although it is has been one of the most widely used GIS operations in subsequent years, in a wide variety of applications, there has been little published research on the tool itself, except for the occasional development of a more efficient algorithm.
- Single point: Create a circle around the point with radius r.
- Polyline, which consists of an ordered list of points (vertices) connected by straight lines. This is also used for the boundary of a polygon.
- Create a circle buffer around each vertex
- Create a rectangle along each line segment by creating a duplicate line segment offset the distance r perpendicular to each side.
- Merge or dissolve the rectangles and circles into a single polygon.
Software implementations of the buffer operation typically use alterations of this strategy to process more efficiently and accurately.
Planar vs. geodesic distance
Traditional implementations assumed the buffer was being created on a planar cartesian coordinate space (i.e., created by a map projection) using Euclidean geometry, because the mathematics and computation involved is relatively simple, which was important given the computing power available in the late 1970s. Due to the inherent distortions caused by map projections, the buffer computed this way will not be identical to one drawn on the surface of the Earth; at a local scale, the difference is negligible, but at smaller scales, the error can be significant.
Some current software, such as Esri ArcGIS Pro and turf, offer the option to compute buffers using geodesic distance, using a similar algorithm but calculated using spherical trigonometry, including representing the lines between vertices as great circles. Other implementations use a workaround by first reprojecting the feature to a projection that minimizes distortion in that location, then computing the planar buffer.
GIS software may offer variations on the basic algorithm, which may be useful in different applications:
- Endcaps at the end of linear buffers are rounded by default, but may be squared off or a butt end (truncated at the final vertex)
- Side preference may be important, such as needing the buffer on only one side of a line, or on a polygon, selecting only the outer buffer or the inner buffer (sometimes called a setback).
- Variable width, in which the features in a layer may be buffered using different radii, usually given by an attribute.
- Common buffers, in which the buffers for each feature in a layer are dissolved into a single polygon. This is most commonly used when one is not concerned about which feature is near each point in space, only that a point is nearby some (anonymous) feature.
- OGC ST_Buffer function (PostGIS implementation)
- buffer function in turfjs
- BufferOp in JTS, the library at the foundation of many open-source GIS implementations
- v.buffer command in GRASS
- Buffer (Analysis) tool in Esri ArcGIS Pro
- de Smith, Michael J.; Goodchild, Michael F.; Longley, Paul A. (2018). "4.4.5 Buffering". Geospatial Analysis: A Comprehensive Guide to Principles, Techniques, and Software Tools (6th ed.).
- Wade, T. and Smmer, S. eds. A to Z GIS
- Bhatia, Sumeet; Vira, Viral; Choksi, Deepak; Venkatachalam, P. (2012). "An algorithm for generating geometric buffers for vector feature layers". Geo-spatial Information Science. 16 (2): 130–138. doi:10.1080/10095020.2012.747643.
- "How Buffer (Analysis) Works". ArcGIS Pro Documentation. Esri. Retrieved 16 March 2021.
- "ST_Buffer". PostGIS documentation.