|r.buffer(1grass)||GRASS GIS User's Manual||r.buffer(1grass)|
r.buffer - Creates a raster map showing buffer zones surrounding cells that contain non-NULL category values.
r.buffer [-z] input=name output=name distances=float[,float,...] [units=string] [--overwrite] [--help] [--verbose] [--quiet] [--ui]
r.buffer creates a new raster map showing buffer (a.k.a.
"distance" or "proximity") zones around all cells that
contain non-NULL category values in an existing raster map. The distances of
buffer zones from cells with non-zero category values are user-chosen and
must be positive value(s). Suppose, for example, that you want to place
buffer zones around roads. This program could create the raster map shown
below on the right based on road information contained in the raster map
shown on the left.
Category 0: No roads
Category 1: Road location
Category 2: Buffer Zone 1 around roads
Category 3: Buffer Zone 2 around roads
Category 4: Buffer Zone 3 around roads
The user has the option of identifying up to 250 continuous zones. The zones are identified by specifying the upper limit of each desired zone (r.buffer assumes that 0 is the starting point). "Continuous" is used in the sense that each category zone’s lower value is the previous zone’s upper value. The first buffer zone always has distance 0 as its lower bound. Buffer distances can be specified using one of five units with the units parameter.
Distances from cells containing the user-specified category values are calculated using the "fromcell" method. This method locates each cell that contains a category value from which distances are to be calculated, and draws the requested distance rings around them. This method works very fast when there are few cells containing the category values of interest, but works slowly when there are numerous cells containing the category values of interest spread throughout the area.
r.buffer measures distances from center of cell to center of cell using Euclidean distance measure for planimetric locations (like UTM) and using ellipsoidal geodesic distance measure for latitude/longitude locations.
r.buffer calculates distance zones from all cells having non-NULL category values in the input map. If the user wishes to calculate distances from only selected input map category values, the user should run (for example) r.reclass prior to r.buffer, to reclass all categories from which distance zones are not desired to be calculated into category NULL.
The -z flag can be used to ignore raster values of zero instead of NULL values in the input raster map.
When working with massive raster regions consider the r.buffer.lowmem module if RAM use becomes a problem. The lowmem version can be > 40x slower, but will work with minimal memory requirements. The classic r.buffer should be able to deal with raster maps of 32000x32000 size on a system with 1 GB RAM, and rasters of 90000x90000 on a system with 8 GB RAM without going into swap.
In the following example (North Carolina sample dataset), the
buffer zones would be (in the default map units of meters): 0-100, 101-200,
201-300, 301-400 and 401-500.
g.region raster=roadsmajor -p r.buffer input=roadsmajor output=roadsmajor_buf distances=100,200,300,400,500
1 distances calculated from these locations
2 0-100 meters
3 100-200 meters
4 200-300 meters
5 300-400 meters
6 400-500 meters
Distances to road
r.buffer.lowmem, r.grow, v.buffer
g.region, r.cost, r.distance, r.grow.distance, r.mapcalc, r.reclass
Michael Shapiro, U.S. Army Construction Engineering Research
James Westervelt, U.S. Army Construction Engineering Research Laboratory
Available at: r.buffer source code (history)
Main index | Raster index | Topics index | Keywords index | Graphical index | Full index
© 2003-2021 GRASS Development Team, GRASS GIS 7.8.6 Reference Manual