Skip to content

A Fiona CLI plugin for buffering geometries in parallel with Shapely.

License

Notifications You must be signed in to change notification settings

Toblerity/fio-buffer

Repository files navigation

fio-buffer

https://travis-ci.org/toblerity/fio-buffer.svg?branch=master https://coveralls.io/repos/toblerity/fio-buffer/badge.svg?branch=master

A Fiona CLI plugin for buffering geometries in parallel. Powered by Shapely.

Usage

Usage: fio buffer [OPTIONS] INFILE OUTFILE

  Geometries can be dilated with a positive distance, eroded with a negative
  distance, and in some cases cleaned or repaired with a distance of 0.

  Examples
  --------

  Default settings - buffer geometries in the input CRS:

      $ fio buffer in.geojson out.geojson --distance 10

  Dynamically buffer geometries by a distance stored in the field
  'magnitude' and write as GeoJSON:

      $ fio buffer \
          in.shp \
          out.geojson \
          --driver GeoJSON \
          --distance magnitude

  Read geometries from one CRS, buffer in another, and then write to a
  third:

      $ fio buffer in.shp out.shp \
          --distance 10 \
          --buf-crs EPSG:3857 \
          --dst-crs EPSG:32618

  Control cap style, mitre limit, segment resolution, and join style:

      $ fio buffer in.geojson out.geojson \
          --distance 0.1 \
          --res 5 \
          --cap-style flat \
          --join-style mitre \
          --mitre-limit 0.1\

Options:
  --version                       Show the version and exit.
  -f, --format, --driver NAME     Output driver name.  Derived from the input
                                  datasource if not given.
  --cap-style [flat|round|square]
                                  Where geometries terminate, use this style.
                                  [default: round]
  --join-style [round|mitre|bevel]
                                  Where geometries touch, use this style.
                                  [default: round]
  --res INTEGER                   Resolution of the buffer around each vertex
                                  of the geometry.  [default: 16]
  --mitre-limit FLOAT             When using a mitre join, limit the maximum
                                  length of the join corner according to this
                                  ratio.  [default: 5.0]
  --distance FLOAT|FIELD          Buffer distance or field containing distance
                                  values.  Units match --buf-crs.  When
                                  buffering with a field, feature's with a
                                  null value are unaltered.  [required]
  --src-crs TEXT                  Specify CRS for input data.  Not needed if
                                  set in input file.
  --buf-crs TEXT                  Perform buffer operations in a different
                                  CRS. [default: --src-crs]
  --dst-crs TEXT                  Reproject geometries to a different CRS
                                  before writing.  Must be combined with
                                  --buf-crs. [default: --src-crs]
  --geom-type GEOMTYPE            Output layer's geometry type.  [default:
                                  MultiPolygon]
  --skip-failures                 Skip geometries that fail somewhere in the
                                  processing pipeline.
  --jobs CORES                    Process geometries in parallel across N
                                  cores.  Feature ID's and order are not
                                  preserved if more that 1 cores are used.
                                  [default: 1]
  --help                          Show this message and exit.

Installing

Via pip:

$ pip install fio-buffer

From source:

$ git clone https://github.com/toblerity/fio-buffer
$ cd fio-buffer
$ python setup.py install

Developing

$ git clone https://github.com/toblerity/fio-buffer
$ cd fio-buffer
$ virtualenv venv
$ source venv/bin/activate
$ pip install -e .[dev]
$ py.test tests --cov fio_buffer --cov-report term-missing

License

See LICENSE.txt.

About

A Fiona CLI plugin for buffering geometries in parallel with Shapely.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages