Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Fast linestring simplification using RDP or Visvalingam-Whyatt and a Rust binary

Project description

Line

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.5
  • Python 3.6
  • Python 3.7

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.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for simplification, version 0.4.2
Filename, size File type Python version Upload date Hashes
Filename, size simplification-0.4.2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.macosx_10_11_intel.macosx_10_11_x86_64.whl (364.7 kB) File type Wheel Python version cp27 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp27-cp27mu-manylinux1_x86_64.whl (501.8 kB) File type Wheel Python version cp27 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp27-cp27m-win32.whl (292.0 kB) File type Wheel Python version cp27 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp27-cp27m-win_amd64.whl (312.1 kB) File type Wheel Python version cp27 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.macosx_10_11_intel.macosx_10_11_x86_64.whl (360.9 kB) File type Wheel Python version cp35 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp35-cp35m-win32.whl (286.4 kB) File type Wheel Python version cp35 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp35-cp35m-win_amd64.whl (313.6 kB) File type Wheel Python version cp35 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.macosx_10_11_intel.macosx_10_11_x86_64.whl (366.1 kB) File type Wheel Python version cp36 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp36-cp36m-manylinux1_x86_64.whl (526.5 kB) File type Wheel Python version cp36 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp36-cp36m-win32.whl (292.2 kB) File type Wheel Python version cp36 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp36-cp36m-win_amd64.whl (313.9 kB) File type Wheel Python version cp36 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.macosx_10_11_intel.macosx_10_11_x86_64.whl (362.5 kB) File type Wheel Python version cp37 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp37-cp37m-manylinux1_x86_64.whl (528.5 kB) File type Wheel Python version cp37 Upload date Hashes View hashes
Filename, size simplification-0.4.2-cp37-cp37m-win_amd64.whl (313.8 kB) File type Wheel Python version cp37 Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page