Fast linestring simplification using RDP or Visvalingam-Whyatt and a Rust binary
Project description
Simplify a LineString using the Ramer–Douglas–Peucker or Visvalingam–Whyatt algorithms
Installation
pip install simplification
Please use a recent (>= 8.1.2) version of pip
Supported Python Versions
- Python 2.7
- Python 3.4
- Python 3.5
- Python 3.6
Supported Platforms
- Linux (manylinux1-compatible)
- OS X
- Windows 32-bit / 64-bit
Usage
import numpy as np from simplification.cutil import simplify_coords, simplify_coordsvw coords = [ [0.0, 0.0], [5.0, 4.0], [11.0, 5.5], [17.3, 3.2], [27.8, 0.1] ] # For RDP, Try an epsilon of 1.0 to start with. Other sensible values include 0.01, 0.001 simplified = simplify_coords(coords, 1.0) # simplified is [[0.0, 0.0], [5.0, 4.0], [11.0, 5.5], [27.8, 0.1]] # Using Visvalingam-Whyatt # we can also pass numpy arrays, in which case numpy arrays are returned coords_vw = np.array([ [5.0, 2.0], [3.0, 8.0], [6.0, 20.0], [7.0, 25.0], [10.0, 10.0] ]) simplified_vw = simplify_coords_vw(coords, 30.0) # simplified_vw is [[5.0, 2.0], [7.0, 25.0], [10.0, 10.0]]
How it Works
FFI and a Rust binary
Is It Fast
I should think so.
Project details
Release history Release notifications
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.