Metadata-Version: 2.1
Name: pysupercluster
Version: 0.7.7
Summary: A fast geospatial point clustering module.
Home-page: https://github.com/wemap/pysupercluster
Author: Jeremy Lainé
Author-email: jeremy@getwemap.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: ISC License (ISCL)
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Scientific/Engineering :: GIS
Requires-Python: >=3
License-File: LICENSE.txt

pysupercluster
==============

|tests|

.. |tests| image:: https://github.com/wemap/pysupercluster/workflows/tests/badge.svg
    :target: https://github.com/wemap/pysupercluster/actions

A fast Python 3 module for geospatial point clustering.

This is a port of https://github.com/mapbox/supercluster to C++, conveniently
wrapped in a Python module. Initial benchmarks show it to be an order of
magnitude (10x) faster than the original JavaScript implementation.

Installing pysupercluster
-------------------------

The easiest way to install pysupercluster is to use pip:

    pip install pysupercluster

Using pysupercluster
--------------------

.. code-block:: pycon

    >>> import numpy
    >>> import pysupercluster
    >>> points = numpy.array([
    ...     (2.3522, 48.8566),   # paris
    ...     (-0.1278, 51.5074),  # london
    ...     (-0.0077, 51.4826),  # greenwhich
    ... ])
    >>> index = pysupercluster.SuperCluster(
    ...     points,
    ...     min_zoom=0,
    ...     max_zoom=16,
    ...     radius=40,
    ...     extent=512)
    >>> clusters = index.getClusters(
    ...     top_left=(-180, 90),
    ...     bottom_right=(180, -90),
    ...     zoom=4)
    [
        {'id': 0, 'count': 1, 'expansion_zoom': None, 'latitude': 48.8566, 'longitude': 2.3522},
        {'id': 3, 'count': 2, 'expansion_zoom': 8, 'latitude': 51.49500168658321, 'longitude': -0.06774999999998421}
    ]


