{ "info": { "author": "Ran Bi", "author_email": "biran0079@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# crdp\n[![PyPI version](https://badge.fury.io/py/crdp.svg)](https://badge.fury.io/py/crdp)\n\nCython implementation of Ramer-Douglas-Peucker algorithm.\n\n## Usage\n```\npip install crdp\n```\n\n```python\nIn [1]: from crdp import rdp\n\nIn [2]: rdp([[1,1],[2,3],[3,3],[4,4]], 0.8)\nOut[2]: [[1, 1], [4, 4]]\n\nIn [3]: rdp([[1,1],[2,3],[3,3],[4,4]], 0.7)\nOut[3]: [[1, 1], [2, 3], [4, 4]]\n```\n\n## Performance\n10k random points can be processed in a few milliseconds. \nOver 100x faster than python native implementation.\n\n```\n$ python3 benchmark.py\nrdp 100 points, epsilon=0, duration 28.990745544433594 ms\ncrdp 100 points, epsilon=0, duration 0.0 ms\nrdp 100 points, epsilon=0.01, duration 35.98904609680176 ms\ncrdp 100 points, epsilon=0.01, duration 0.0 ms\nrdp 100 points, epsilon=0.1, duration 35.98833084106445 ms\ncrdp 100 points, epsilon=0.1, duration 0.0 ms\nrdp 100 points, epsilon=0.5, duration 21.99268341064453 ms\ncrdp 100 points, epsilon=0.5, duration 0.0 ms\nrdp 100 points, epsilon=1, duration 3.9980411529541016 ms\ncrdp 100 points, epsilon=1, duration 0.0 ms\nrdp 1000 points, epsilon=0, duration 489.84360694885254 ms\ncrdp 1000 points, epsilon=0, duration 1.0001659393310547 ms\nrdp 1000 points, epsilon=0.01, duration 513.8356685638428 ms\ncrdp 1000 points, epsilon=0.01, duration 0.0 ms\nrdp 1000 points, epsilon=0.1, duration 470.84927558898926 ms\ncrdp 1000 points, epsilon=0.1, duration 0.9999275207519531 ms\nrdp 1000 points, epsilon=0.5, duration 497.84135818481445 ms\ncrdp 1000 points, epsilon=0.5, duration 0.0 ms\nrdp 1000 points, epsilon=1, duration 42.986392974853516 ms\ncrdp 1000 points, epsilon=1, duration 0.9999275207519531 ms\nrdp 10000 points, epsilon=0, duration 7042.751789093018 ms\ncrdp 10000 points, epsilon=0, duration 5.997896194458008 ms\nrdp 10000 points, epsilon=0.01, duration 6574.901103973389 ms\ncrdp 10000 points, epsilon=0.01, duration 4.998445510864258 ms\nrdp 10000 points, epsilon=0.1, duration 6856.811046600342 ms\ncrdp 10000 points, epsilon=0.1, duration 4.998683929443359 ms\nrdp 10000 points, epsilon=0.5, duration 6256.002902984619 ms\ncrdp 10000 points, epsilon=0.5, duration 3.998994827270508 ms\nrdp 10000 points, epsilon=1, duration 407.8691005706787 ms\ncrdp 10000 points, epsilon=1, duration 1.9996166229248047 ms\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/biran0079/crdp", "keywords": "rdp ramer douglas peucker line simplification cython", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "crdp", "package_url": "https://pypi.org/project/crdp/", "platform": "", "project_url": "https://pypi.org/project/crdp/", "project_urls": { "Homepage": "https://github.com/biran0079/crdp" }, "release_url": "https://pypi.org/project/crdp/0.0.2/", "requires_dist": null, "requires_python": "", "summary": "A fast Ramer-Douglas-Peucker algorithm implementation.", "version": "0.0.2" }, "last_serial": 5533619, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "32154dff04ecdabae9ff713c0f301b2c", "sha256": "b53869ffad7a957cceead8f5b81c4da9da554c316dccfe294aba3c7e8bf43d2f" }, "downloads": -1, "filename": "crdp-0.0.1-cp37-cp37m-win32.whl", "has_sig": false, "md5_digest": "32154dff04ecdabae9ff713c0f301b2c", "packagetype": "bdist_wheel", "python_version": "cp37", "requires_python": null, "size": 20618, "upload_time": "2019-07-15T05:48:20", "url": "https://files.pythonhosted.org/packages/d8/68/e56dfc65c50bed504954f4dfdd785443dd9ec34aa4610054c1b30671441a/crdp-0.0.1-cp37-cp37m-win32.whl" }, { "comment_text": "", "digests": { "md5": "2eab9aca84e6bbacc980e24395e07ffc", "sha256": "8a0f96c00a2891a1610270be49892f5ec4bc49a1e155204893f646f9bad17e65" }, "downloads": -1, "filename": "crdp-0.0.1.tar.gz", "has_sig": false, "md5_digest": "2eab9aca84e6bbacc980e24395e07ffc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 29262, "upload_time": "2019-07-15T05:48:22", "url": "https://files.pythonhosted.org/packages/74/5f/ce1da22d210a80765b0af783e9fb2f84d21a0460aa51da7ab9d1ef429a40/crdp-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "57527a934741ca17b9479653a0bfd7ce", "sha256": "01cb5b60276e3de8fabfe4110d40fdeb478567d005a54c7afe584c0a7ebb58a5" }, "downloads": -1, "filename": "crdp-0.0.2.tar.gz", "has_sig": false, "md5_digest": "57527a934741ca17b9479653a0bfd7ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32145, "upload_time": "2019-07-15T07:34:14", "url": "https://files.pythonhosted.org/packages/af/f4/4ed35a87ece5321a59b0ee4f9a41686b8e31929f34efe6ffea669667c8b2/crdp-0.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "57527a934741ca17b9479653a0bfd7ce", "sha256": "01cb5b60276e3de8fabfe4110d40fdeb478567d005a54c7afe584c0a7ebb58a5" }, "downloads": -1, "filename": "crdp-0.0.2.tar.gz", "has_sig": false, "md5_digest": "57527a934741ca17b9479653a0bfd7ce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32145, "upload_time": "2019-07-15T07:34:14", "url": "https://files.pythonhosted.org/packages/af/f4/4ed35a87ece5321a59b0ee4f9a41686b8e31929f34efe6ffea669667c8b2/crdp-0.0.2.tar.gz" } ] }