Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GDAL-VECTOR-BUFFER(1)		      GDAL		   GDAL-VECTOR-BUFFER(1)

NAME
     gdal-vector-buffer - Compute a buffer around geometries of a vector dataset

     Added in version 3.12.

SYNOPSIS
	Usage: gdal vector buffer [OPTIONS] <INPUT> <OUTPUT> <DISTANCE>

	Compute a buffer around geometries of a vector dataset.

	Positional arguments:
	  -i, --input <INPUT>				       Input vector datasets [required] [not available in pipelines]
	  -o, --output <OUTPUT> 			       Output vector dataset [required] [not available in pipelines]
	  --distance <DISTANCE> 			       Distance to which to extend the geometry. [required]

	Common Options:
	  -h, --help					       Display help message and exit
	  --json-usage					       Display usage as JSON document and exit
	  --config <KEY>=<VALUE>			       Configuration option [may be repeated]
	  -q, --quiet					       Quiet mode (no progress bar or warning message) [not available in pipelines]

	Options:
	  -l, --layer, --input-layer <INPUT-LAYER>	       Input layer name(s) [may be repeated] [not available in pipelines]
	  -f, --of, --format, --output-format <OUTPUT-FORMAT>  Output format ("GDALG" allowed) [not available in pipelines]
	  --co, --creation-option <KEY>=<VALUE> 	       Creation option [may be repeated] [not available in pipelines]
	  --lco, --layer-creation-option <KEY>=<VALUE>	       Layer creation option [may be repeated] [not available in pipelines]
	  --overwrite					       Whether overwriting existing output dataset is allowed [not available in pipelines]
	  --update					       Whether to open existing dataset in update mode [not available in pipelines]
	  --overwrite-layer				       Whether overwriting existing output layer is allowed [not available in pipelines]
	  --append					       Whether appending to existing layer is allowed [not available in pipelines]
							       Mutually exclusive with --upsert
	  --output-layer <OUTPUT-LAYER> 		       Output layer name [not available in pipelines]
	  --skip-errors 				       Skip errors when writing features [not available in pipelines]
	  --active-layer <ACTIVE-LAYER> 		       Set active layer (if not specified, all)
	  --active-geometry <ACTIVE-GEOMETRY>		       Geometry field name to which to restrict the processing (if not specified, all)
	  --endcap-style <ENDCAP-STYLE> 		       Endcap style.. ENDCAP-STYLE=round|flat|square (default: round)
	  --join-style <JOIN-STYLE>			       Join style.. JOIN-STYLE=round|mitre|bevel (default: round)
	  --mitre-limit <MITRE-LIMIT>			       Mitre ratio limit (only affects mitered join style). (default: 5)
	  --quadrant-segments <QUADRANT-SEGMENTS>	       Number of line segments used to approximate a quarter circle. (default: 8)
	  --side <SIDE> 				       Sets whether the computed buffer should be single-sided or not.. SIDE=both|left|right (default: both)

	Advanced Options:
	  --if, --input-format <INPUT-FORMAT>		       Input formats [may be repeated] [not available in pipelines]
	  --oo, --open-option <KEY>=<VALUE>		       Open options [may be repeated] [not available in pipelines]
	  --output-oo, --output-open-option <KEY>=<VALUE>      Output open options [may be repeated] [not available in pipelines]
	  --upsert					       Upsert features (implies 'append') [not available in pipelines]
							       Mutually exclusive with --append

DESCRIPTION
     gdal  vector  buffer computes a POLYGON or MULTIPOLYGON that represents all
     points whose distance from a geometry/geography is less than or equal to  a
     given  distance.  A  negative distance shrinks the geometry rather than ex-
     panding it. A negative distance may shrink a polygon completely,  in  which
     case POLYGON EMPTY is returned. For points and lines negative distances al-
     ways return empty results.

     See  the  PostGIS	ST_Buffer docs for additional graphical illustrations of
     the effect of the different parameters.

     The output dataset is always written as MULTIPOLYGON, even when  the  input
     contains  only  simple  POLYGON geometries.  Note that negative buffer dis-
     tances may also produce MULTIPOLYGON results.

     Using a buffer distance of 0 can sometimes repair invalid	geometries,  but
     the  recommended  approach  is  to  use gdal vector make-valid for reliable
     geometry validation and repair.

     This command can also be used as a step of gdal vector pipeline.

GDALG OUTPUT (ON-THE-FLY / STREAMED DATASET)
     This program supports serializing the command line as a JSON file using the
     GDALG output format.  The resulting file can then be  opened  as  a  vector
     dataset  using  the  GDALG:  GDAL	Streamed Algorithm driver, and apply the
     specified pipeline in a on-the-fly / streamed way.

     NOTE:
	This command requires a GDAL build against the GEOS library.

PROGRAM-SPECIFIC OPTIONS
     --distance <DISTANCE>
	    Radius of the buffer around the input geometry.   The  unit  of  the
	    distance is in georeferenced units of the source layer.

     --endcap-style round|flat|square
	    Specifies  the  end  cap  style of the generated buffer.  Default is
	    round.
	      [image] Buffered lines with endcap-style=round,  endcap-style=flat
	      and endcap-style=square.UNINDENT

     --join-style round|mitre|bevel
	    Sets  the  join style for outside (reflex) corners between line seg-
	    ments.  Default is round.
	      [image] Buffered lines with join-style=round, join-style=mitre and
	      join-style=bevel.UNINDENT

     --input-layer <NAME>
	    Specifies one or more layer names to read and process.  By	default,
	    all  layers will be read and processed. To read and write all layers
	    but only process a subset, use --active-layer.

     --mitre-limit <MITRE-LIMIT>
	    Sets the limit on the mitre ratio used for very sharp corners.  This
	    option only applies when join-style=mitre is used.

	    Default is 5.
	      [image] Lines with a distance=2 buffer, and mitre-limit=5  on  the
	      left, and mitre-limit=1 on the right.UNINDENT

	      The  mitre  ratio  is the ratio of the distance from the corner to
	      the end of the mitred offset corner.  When two line segments  meet
	      at a sharp angle, a miter join will extend far beyond the original
	      geometry.   (and	in the extreme case will be infinitely far.)  To
	      prevent unreasonable geometry, the mitre limit allows  controlling
	      the maximum length of the join corner.  Corners with a ratio which
	      exceed the limit will be beveled.

     --output-layer <NAME>
	    Name  of  the layer to which output should be written. If not speci-
	    fied, the output layer will have the same name as the input layer.

     --quadrant-segments <QUADRANT-SEGMENTS>
	    Sets the number of line segments used to approximate an angle fillet
	    in round joins.

	    This determines the maximum error in the approximation to  the  true
	    buffer  curve.   The default value of 8 gives less than 2% max error
	    in the buffer distance.  For a max error of < 1%, use QS = 12.   For
	    a  max  error of < 0.1%, use QS = 18.  The error is always less than
	    the buffer distance (in other words, the computed  buffer  curve  is
	    always inside the true curve).
	      [image] Buffered points with quadrant-segments=4 and quadrant-seg-
	      ments=20.UNINDENT

     --side both|left|right
	    Sets  whether  the computed buffer should be single-sided or on both
	    sides (default).

	    left indicates that the buffer is generated on the left-hand side of
	    the line, and right indicates that the buffer is  generated  on  the
	    right-hand	side  of the line, determined by the order of the line's
	    vertices (i.e., the direction in which the line is drawn).

	    Single-side buffering is only applicable to LINESTRING geometry  and
	    does  not  affect POINT or POLYGON geometries, and the end cap style
	    is forced to square.
	      [image]	Buffered   lines   with    side=both,	side=left    and
	      side=right.UNINDENT

STANDARD OPTIONS
     --append
	    Whether  appending	features  to existing layer(s) is allowed.  This
	    also creates the output dataset if it does not exist yet.

     --active-layer <ACTIVE-LAYER>
	    Set the active layer. When it is specified, only the layer specified
	    by its name will be subject to the processing. Other layers will  be
	    not  modified.   If this option is not specified, all layers will be
	    subject to the processing.

     --active-geometry <ACTIVE-GEOMETRY>
	    Set the active geometry field from its name. When it  is  specified,
	    only the specified geometry field will be subject to the processing.
	    Other  geometry  fields will be not modified.  If this option is not
	    specified, all geometry fields will be subject  to	the  processing.
	    This option can be combined together with --active-layer.

     --co, --creation-option <NAME>=<VALUE>
	    Many formats have one or more optional dataset creation options that
	    can  be  used to control particulars about the file created. For in-
	    stance, the GeoPackage driver supports creation options  to  control
	    the version.

	    May be repeated.

	    The  dataset  creation  options available vary by format driver, and
	    some simple formats have no creation options at all. A list  of  op-
	    tions  supported  for a format can be listed with the --formats com-
	    mand line option but the documentation for the format is the defini-
	    tive source of information on driver creation options.   See  Vector
	    drivers format specific documentation for legal creation options for
	    each format.

	    Note that dataset creation options are different from layer creation
	    options.

     --if, --input-format <format>
	    Format/driver  name to be attempted to open the input file(s). It is
	    generally not necessary to specify it, but it can be  used	to  skip
	    automatic  driver detection, when it fails to select the appropriate
	    driver.  This option can be repeated several times to  specify  sev-
	    eral  candidate  drivers.  Note that it does not force those drivers
	    to open the dataset. In particular, some drivers  have  requirements
	    on file extensions.

	    May be repeated.

     --lco, --layer-creation-option <NAME>=<VALUE>
	    Many  formats  have one or more optional layer creation options that
	    can be used to control particulars about the layer created. For  in-
	    stance,  the  GeoPackage  driver  supports layer creation options to
	    control the feature identifier or geometry column name, setting  the
	    identifier or description, etc.

	    May be repeated.

	    The layer creation options available vary by format driver, and some
	    simple  formats have no layer creation options at all. A list of op-
	    tions supported for a format can be listed with the  --formats  com-
	    mand line option but the documentation for the format is the defini-
	    tive  source  of information on driver creation options.  See Vector
	    drivers format specific documentation for legal creation options for
	    each format.

	    Note that layer creation options are different from dataset creation
	    options.

     --oo, --open-option <NAME>=<VALUE>
	    Dataset open option (format specific).

	    May be repeated.

     -f, --of, --format, --output-format <OUTPUT-FORMAT>
	    Which output vector format to use. Allowed values may  be  given  by
	    gdal --formats | grep vector | grep rw | sort

     --output-open-option, --output-oo <NAME>=<VALUE>
	    Added in version 3.12.

	    Dataset open option for output dataset (format specific).

	    May be repeated.

     --overwrite
	    Allow  program to overwrite existing target file or dataset.  Other-
	    wise, by default, gdal errors out if the target file or dataset  al-
	    ready exists.

     --overwrite-layer
	    Whether overwriting the existing output vector layer is allowed.

     --skip-errors
	    Added in version 3.12.

	    Whether  failures  to  write feature(s) should be ignored. Note that
	    this option sets the size of the transaction unit to one feature  at
	    a  time,  which  may cause severe slowdown when inserting into data-
	    bases.

     --update
	    Whether to open an existing output dataset in update mode.

     --upsert
	    Added in version 3.12.

	    Variant of --append where the OGRLayer::UpsertFeature() operation is
	    used  to  insert  or  update  features  instead  of  appending  with
	    OGRLayer::CreateFeature().

	    This  is  currently  implemented  only  in	a  few	drivers: GPKG --
	    GeoPackage vector, Elasticsearch: Geographically Encoded Objects for
	    Elasticsearch and MongoDBv3 (drivers that  implement  upsert  expose
	    the GDAL_DCAP_UPSERT capability).

	    The  upsert  operation uses the FID of the input feature, when it is
	    set (and the FID column name is not the empty string), as the key to
	    update existing features. It is crucial to make sure that the FID in
	    the source and target layers are consistent.

	    For the GPKG driver, it is also possible to  upsert  features  whose
	    FID is unset or non-significant (the --unset-fid option of gdal vec-
	    tor  edit  can  be	used to ignore the FID from the source feature),
	    when there is a UNIQUE column that is not the integer primary key.

RETURN STATUS CODE
     The program returns status code 0 in case of success, and non-zero in  case
     of  error (non-blocking errors emitted as warnings are considered as a suc-
     cessful execution).

EXAMPLES
   Example 1: Compute a buffer of one km around input geometries  (assuming  the
     CRS is in meters)
	$ gdal vector buffer --distance=1000 in.gpkg out.gpkg --overwrite

   Example  2:	Buffer a point dataset with 20 segments per quadrant (instead of
     default 8) to better approximate a circle
	$ gdal vector buffer --distance=20 --quadrant-segments=20 points.gpkg point_buffers.gpkg

   Example 3: Buffer lines to the left using join and end cap styles
	$ gdal vector buffer --distance=10 --endcap-style=flat --side=left --join-style=mitre --mitre-limit=2 lines.gpkg lines-buffer-endcap.gpkg

   Example 4: Clip and buffer a zipped line dataset as part of a pipeline
     Bash

	gdal vector pipeline \
	! read "/vsizip/lines.zip" \
	! clip --bbox 647903,6863599,648703,6864399 \
	! buffer --distance=5 \
	! write line-buffer.gpkg --overwrite
     PowerShell

	gdal vector pipeline `
	! read "/vsizip/lines.zip" `
	! clip --bbox 647903,6863599,648703,6864399 `
	! buffer --distance=5 `
	! write line-buffer.gpkg --overwrite

AUTHOR
     Even Rouault <even.rouault@spatialys.com>

COPYRIGHT
     1998-2026

				  Jun 05, 2026		   GDAL-VECTOR-BUFFER(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gdal-vector-buffer&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help