Metadata-Version: 2.1
Name: simplification
Version: 0.3.9
Summary: Fast linestring simplification using RDP or Visvalingam-Whyatt and a Rust binary
Home-page: https://github.com/urschrei/simplification
Author: Stephan Hügel
Author-email: urschrei@gmail.com
License: MIT License
Download-URL: https://github.com/urschrei/simplification/tarball/v0.3.9
Keywords: Geo,Polyline,Linestring,Ramer-Douglas-Peucker,Douglas-Peucker,Visvalingam-Whyatt
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Education
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering :: GIS
Requires-Dist: numpy (>=1.11.0)

Simplification 
==============

|Line|

Simplify a LineString using the
`Ramer–Douglas–Peucker <https://en.wikipedia.org/wiki/Ramer–Douglas–Peucker_algorithm>`_ or `Visvalingam–Whyatt <https://bost.ocks.org/mike/simplify/>`_
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
-----

.. code-block:: python

    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 <https://github.com/urschrei/rdp>`_

Is It Fast
----------

I should think so.

License
-------

`MIT <license.txt>`_

.. |Line| image:: https://cdn.rawgit.com/urschrei/rdp/6c84264fd9cdc0b8fdf974fc98e51fea4834ed05/rdp.svg


