## NAME

v.buffer - Creates a buffer around vector features of given type.

## KEYWORDS

vector, buffer, geometry

## SYNOPSIS

v.buffer
v.buffer help
v.buffer [-sct] input=name [layer=integer] [cats=range] [where=sql_query] [type=string[,string,...]] output=name [distance=float] [minordistance=float] [angle=float] [bufcolumn=name] [scale=float] [tolerance=float] [--overwrite] [--verbose] [--quiet]

### Flags:

-s
  Make outside corners straight
-c
  Don't make caps at the ends of polylines
-t
  Transfer categories and attributes
--overwrite
  Allow output files to overwrite existing files
--verbose
  Verbose module output
--quiet
  Quiet module output

### Parameters:

input=name
  Name of input vector map
layer=integer
  Layer number
  A single vector map can be connected to multiple database tables. This number determines which table to use.
  Default: 1
cats=range
  Category values
  Example: 1,3,7-9,13
where=sql_query
  WHERE conditions of SQL statement without 'where' keyword
  Example: income < 1000 and inhab >= 10000
type=string[,string,...]
  Feature type
  Options: point,line,boundary,centroid,area
  Default: point,line,area
output=name
  Name for output vector map
distance=float
  Buffer distance along major axis in map units
minordistance=float
  Buffer distance along minor axis in map units
angle=float
  Angle of major axis in degrees
  Default: 0
bufcolumn=name
  Name of column to use for buffer distances
scale=float
  Scaling factor for attribute column values
  Default: 1.0
tolerance=float
  Maximum distance between theoretical arc and polygon segments as multiple of buffer
  Default: 0.01

## DESCRIPTION

v.buffer creates a buffer around features of given type, which have a category in the given layer. The tolerance controls the number of vector segments being generated (the smaller the value, the more vector segments are generated).

## NOTES

Internal buffers for areas can be generated with negative distance values ("inward buffer" or "negative buffer"). Attributes are not transferred due to potential buffer overlap, which cannot be resolved automatically.

Buffers for lines and areas are generated using the algorithms from the GEOS library.

## EXAMPLES

All examples are based on the North Carolina sample dataset.

### Buffer around input lines

    v.buffer input=roadsmajor output=roadsmajor_buffer type=line distance=100

Buffer of 100m along the "roadsmajor" lines (map subset, original center line shown in black)

### Circles around input points

    v.buffer input=hospitals output=hospitals_circled type=point distance=2000

Buffer of 2000m around the "hospitals" points (map subset, original points shown in black, new area centroids in red)

### Overlapping circles around input points with attribute transfer

    # copy map to current mapset (for easier DB linking)
    g.copy vect=hospitals,myhospitals
    v.buffer input=myhospitals output=circles type=point distance=2000
    # change original points to centroids:
    v.type in=myhospitals out=hospital_centroids type=point,centroid
    # patch circles and centroids:
    v.patch in=hospital_centroids,circles out=circles_db
    # attach attributes, either use db.copy or link to the original table:
    v.db.connect map=circles_db table=myhospitals layer=1 key=cat driver=dbf \
         database='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf'
    v.db.select circles_db

### Buffer around input areas

    v.buffer input=lakes output=lakes_buffer type=area distance=100

Buffer of 100m around the "lakes" polygons (map subset, original areas shown in black)

## REFERENCE

- GEOS Library

## SEE ALSO

r.buffer, v.parallel, v.extract, v.type, v.patch, v.db.connect

## AUTHORS

Radim Blazek
Rewritten by Rosen Matev (with support through the Google Summer of Code program 2008)
Rewritten by Markus Metz (2011, 2012)

Last changed: $Date: 2014-04-30 18:19:24 +0200 (st, 30 IV 2014) $

Main index - vector index - Full index

© 2003-2014 GRASS Development Team