Simplify geometries with the Visvalingam-Wyatt algorithm

## Project description

A Python implementation of the Visvalingam-Wyatt line simplification algorithm.

This implementation is due to Eliot Hallmark. This release simply packages it as a Python module.

## Use

>>> import visvalingamwyatt as vw
>>> points = [(1, 2), (2, 3), (3, 4), ...]
>>> vw.simplify(points)
[(1, 2), (3, 4), ...]

Test different methods and thresholds:

simplifier = vw.Simplifier(points)

# Simplify by percentage of points to keep
simplifier.simplify('ratio', 0.50)

# Simplify by giving number of points to keep
simplifier.simplify('number', 1000)

# Simplify by giving an area threshold
simplifier.simplify('threshold', 0.01)

Shorthands for working with geo data:

import visvalingamwyatt as vw

feature = {
"properties": {"foo": "bar"},
"geometry": {
"type": "Polygon",
"coordinates": [...]
}
}

# returns a copy of the geometry, simplified (keeping 90% of points)
vw.simplify_geometry(feature['geometry'], ratio=0.90)

# returns a copy of the feature, simplified (using an area threshold)
vw.simplify_feature(feature, threshold=0.90)

The command line tools vwsimplify is available to simplify GeoJSON files:

# Simplify using a ratio of points
vwsimplify --ratio 0.90 in.geojson -o simple.geojson

# Simplify using the number of points to keep
vwsimplify --number 1000 in.geojson -o simple.geojson

# Simplify using a minimum area
vwsimplify --threshold 0.001 in.geojson -o simple.geojson

Install Fiona for the additional ability to simplify any geodata layer.

MIT

## Project details

### Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

### Built Distributions

visvalingamwyatt-0.1.0-py3-none-any.whl (15.2 kB view hashes)

Uploaded Python 3

visvalingamwyatt-0.1.0-py2-none-any.whl (15.2 kB view hashes)

Uploaded Python 2