spherely


Namespherely JSON
Version 0.0.1 PyPI version JSON
download
home_pageNone
SummaryManipulation and analysis of geometric objects on the sphere
upload_time2024-08-21 15:07:53
maintainerSpherely contributors
docs_urlNone
authorBenoît Bovy
requires_python>=3.10
licenseBSD 3-Clause
keywords gis geometry s2geometry shapely
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ![spherely](docs/_static/spherely_logo.svg)

![Tests](https://github.com/benbovy/spherely/actions/workflows/run-tests.yaml/badge.svg)
[![Docs](https://readthedocs.org/projects/spherely/badge/?version=latest)](https://spherely.readthedocs.io)
[![Coverage](https://codecov.io/gh/benbovy/spherely/branch/main/graph/badge.svg)](https://app.codecov.io/gh/benbovy/spherely?branch=main)

*Python library for manipulation and analysis of geometric objects on the sphere.*

Spherely is the counterpart of [Shapely](https://github.com/shapely/shapely)
(2.0+) for manipulation and analysis of spherical geometric objects. It is using
the widely deployed open-source geometry library
[s2geometry](https://github.com/google/s2geometry) via the library
[s2geography](https://github.com/paleolimbot/s2geography) which provides a
[GEOS](https://libgeos.org) compatibility layer on top of s2geometry.

This library is at an early stage of development.

## Requirements

- Python
- Numpy
- [s2geography](https://github.com/paleolimbot/s2geography)
- [s2geometry](https://github.com/google/s2geometry)

Additional requirements when building spherely from source:

- C++ compiler supporting C++17 standard
- CMake
- [scikit-build-core](https://github.com/scikit-build/scikit-build-core)

(Note: C++11 or C++14 should work too but we have no plan to maintain
compatibility with those older standards)

## Installation

There is no pre-compiled package available at the moment. See the section below
for instructions on how to setup a development environment and build / install
spherely from source.

## Setting up a development environment using conda

After cloning this repo, create a conda environment using the `ci/environment.yml`
file with the required dependencies:

```
$ conda env create -f spherely/ci/environment.yml
$ conda activate spherely-dev
```

Build and install `s2spherely`:

```
$ cd spherely
$ python -m pip install . -v --no-build-isolation
```

Note that you can specify a build directory in order to avoid rebuilding the
whole library from scratch each time after editing the code (requires
scikit-build-core v0.2.0+):

```
$ python -m pip install . -v --no-build-isolation --config-settings build-dir=build/skbuild
```

Run the tests:

```
$ pytest . -v
```

Spherely also uses [pre-commit](https://pre-commit.com/) for code
auto-formatting and linting at every commit. After installing it, you can enable
pre-commit hooks with the following command:

```
$ pre-commit install
```

(Note: you can skip the pre-commit checks with `git commit --no-verify`)

## Using the latest s2geography version

If you want to compile spherely against the latest version of s2geography, use:

 ```
 $ git clone https://github.com/paleolimbot/s2geography
 $ cmake -S s2geography -B s2geography/build -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX
 $ cmake --build s2geography/build
 $ cmake --install s2geography/build
 ```

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "spherely",
    "maintainer": "Spherely contributors",
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "gis, geometry, s2geometry, shapely",
    "author": "Beno\u00eet Bovy",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/01/30/7e7e51f57f6a069b33ec4d31e9d27a5f80665d859a61461a6f82ee9364ad/spherely-0.0.1.tar.gz",
    "platform": null,
    "description": "# ![spherely](docs/_static/spherely_logo.svg)\n\n![Tests](https://github.com/benbovy/spherely/actions/workflows/run-tests.yaml/badge.svg)\n[![Docs](https://readthedocs.org/projects/spherely/badge/?version=latest)](https://spherely.readthedocs.io)\n[![Coverage](https://codecov.io/gh/benbovy/spherely/branch/main/graph/badge.svg)](https://app.codecov.io/gh/benbovy/spherely?branch=main)\n\n*Python library for manipulation and analysis of geometric objects on the sphere.*\n\nSpherely is the counterpart of [Shapely](https://github.com/shapely/shapely)\n(2.0+) for manipulation and analysis of spherical geometric objects. It is using\nthe widely deployed open-source geometry library\n[s2geometry](https://github.com/google/s2geometry) via the library\n[s2geography](https://github.com/paleolimbot/s2geography) which provides a\n[GEOS](https://libgeos.org) compatibility layer on top of s2geometry.\n\nThis library is at an early stage of development.\n\n## Requirements\n\n- Python\n- Numpy\n- [s2geography](https://github.com/paleolimbot/s2geography)\n- [s2geometry](https://github.com/google/s2geometry)\n\nAdditional requirements when building spherely from source:\n\n- C++ compiler supporting C++17 standard\n- CMake\n- [scikit-build-core](https://github.com/scikit-build/scikit-build-core)\n\n(Note: C++11 or C++14 should work too but we have no plan to maintain\ncompatibility with those older standards)\n\n## Installation\n\nThere is no pre-compiled package available at the moment. See the section below\nfor instructions on how to setup a development environment and build / install\nspherely from source.\n\n## Setting up a development environment using conda\n\nAfter cloning this repo, create a conda environment using the `ci/environment.yml`\nfile with the required dependencies:\n\n```\n$ conda env create -f spherely/ci/environment.yml\n$ conda activate spherely-dev\n```\n\nBuild and install `s2spherely`:\n\n```\n$ cd spherely\n$ python -m pip install . -v --no-build-isolation\n```\n\nNote that you can specify a build directory in order to avoid rebuilding the\nwhole library from scratch each time after editing the code (requires\nscikit-build-core v0.2.0+):\n\n```\n$ python -m pip install . -v --no-build-isolation --config-settings build-dir=build/skbuild\n```\n\nRun the tests:\n\n```\n$ pytest . -v\n```\n\nSpherely also uses [pre-commit](https://pre-commit.com/) for code\nauto-formatting and linting at every commit. After installing it, you can enable\npre-commit hooks with the following command:\n\n```\n$ pre-commit install\n```\n\n(Note: you can skip the pre-commit checks with `git commit --no-verify`)\n\n## Using the latest s2geography version\n\nIf you want to compile spherely against the latest version of s2geography, use:\n\n ```\n $ git clone https://github.com/paleolimbot/s2geography\n $ cmake -S s2geography -B s2geography/build -DCMAKE_CXX_STANDARD=17 -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX\n $ cmake --build s2geography/build\n $ cmake --install s2geography/build\n ```\n",
    "bugtrack_url": null,
    "license": "BSD 3-Clause",
    "summary": "Manipulation and analysis of geometric objects on the sphere",
    "version": "0.0.1",
    "project_urls": {
        "Home": "https://spherely.readthedocs.io",
        "Repository": "https://github.com/benbovy/spherely"
    },
    "split_keywords": [
        "gis",
        " geometry",
        " s2geometry",
        " shapely"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c8210b51bf27ffd3a4ef9456251743703d60b384c216f2e34f21b09975c14d2b",
                "md5": "6c13ba3d33e213377d16b80224788206",
                "sha256": "60968ff03fa61c22cdd00dd3b71cbe49f2c5c98261412162437f22e71c2adc01"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1-cp310-cp310-macosx_13_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6c13ba3d33e213377d16b80224788206",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 3461702,
            "upload_time": "2024-08-21T15:07:30",
            "upload_time_iso_8601": "2024-08-21T15:07:30.091598Z",
            "url": "https://files.pythonhosted.org/packages/c8/21/0b51bf27ffd3a4ef9456251743703d60b384c216f2e34f21b09975c14d2b/spherely-0.0.1-cp310-cp310-macosx_13_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3a95118fc98eb8b1a52948bd1c2f59d140c683c4ae60e850587e4676350eccb6",
                "md5": "7711981157d9a092204aa7f339a6d788",
                "sha256": "e1432d6ea3ec4046799dd2138e19e614dd0de9b90ff9f4db5837e37c743cefdb"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1-cp310-cp310-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "7711981157d9a092204aa7f339a6d788",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 3616518,
            "upload_time": "2024-08-21T15:07:32",
            "upload_time_iso_8601": "2024-08-21T15:07:32.750898Z",
            "url": "https://files.pythonhosted.org/packages/3a/95/118fc98eb8b1a52948bd1c2f59d140c683c4ae60e850587e4676350eccb6/spherely-0.0.1-cp310-cp310-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "48f20a2272997133e3796454c7f5c91f6e96df224e664b27777745a1695f4ae4",
                "md5": "49108318a72447357e22ca5298aedbb2",
                "sha256": "d08cebb093685c47fd6c3947cc495fd2e67f73eedb37fd8f0811aa3071d6b5ab"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "49108318a72447357e22ca5298aedbb2",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.10",
            "size": 3729895,
            "upload_time": "2024-08-21T15:07:34",
            "upload_time_iso_8601": "2024-08-21T15:07:34.816626Z",
            "url": "https://files.pythonhosted.org/packages/48/f2/0a2272997133e3796454c7f5c91f6e96df224e664b27777745a1695f4ae4/spherely-0.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a741465532b434180682f2e2824956faff448b6ed478e1d5ff13318e11d7db5a",
                "md5": "7bd8c2665ec8f8ea1d8d3bcf0a51c9da",
                "sha256": "06f55a0808716f71eb51afe4111bfd7cc5bab0555308a8897d00e223bcec6227"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1-cp311-cp311-macosx_13_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7bd8c2665ec8f8ea1d8d3bcf0a51c9da",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 3462800,
            "upload_time": "2024-08-21T15:07:36",
            "upload_time_iso_8601": "2024-08-21T15:07:36.471428Z",
            "url": "https://files.pythonhosted.org/packages/a7/41/465532b434180682f2e2824956faff448b6ed478e1d5ff13318e11d7db5a/spherely-0.0.1-cp311-cp311-macosx_13_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6c98aaa4504bde414d41184cb2e338c7ccdaf73f43959156a3e45a46e44dcfe6",
                "md5": "2b35be3553bdb683ad339f82a682af54",
                "sha256": "4789a306b83dbe25eb880dbdc326eede31ac4bba2b874f1cbed43c9f1d2225d9"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1-cp311-cp311-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "2b35be3553bdb683ad339f82a682af54",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 3617727,
            "upload_time": "2024-08-21T15:07:38",
            "upload_time_iso_8601": "2024-08-21T15:07:38.158863Z",
            "url": "https://files.pythonhosted.org/packages/6c/98/aaa4504bde414d41184cb2e338c7ccdaf73f43959156a3e45a46e44dcfe6/spherely-0.0.1-cp311-cp311-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "788b72fcd3196e784c8342da260207af5469931785c806a9f889c45a6835b9a1",
                "md5": "83cd1b716cb8d25de79a913767653e5b",
                "sha256": "89df5824a9c9da234715de86c03b5e152d9da90f2a682200bf6af9b736edbe53"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "83cd1b716cb8d25de79a913767653e5b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.10",
            "size": 3730722,
            "upload_time": "2024-08-21T15:07:40",
            "upload_time_iso_8601": "2024-08-21T15:07:40.221534Z",
            "url": "https://files.pythonhosted.org/packages/78/8b/72fcd3196e784c8342da260207af5469931785c806a9f889c45a6835b9a1/spherely-0.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5701e21faf53118ca1b25c32c0aa2cc724106d843bec5e3acff3a5ba08663e12",
                "md5": "3d107cbf96802491ebc353ae20a6b14b",
                "sha256": "e859e1c54d60032b5c49ed44254009828f7c8bd9622eead7a19d7ecd5dcce4f2"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1-cp312-cp312-macosx_13_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3d107cbf96802491ebc353ae20a6b14b",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 3462878,
            "upload_time": "2024-08-21T15:07:42",
            "upload_time_iso_8601": "2024-08-21T15:07:42.293621Z",
            "url": "https://files.pythonhosted.org/packages/57/01/e21faf53118ca1b25c32c0aa2cc724106d843bec5e3acff3a5ba08663e12/spherely-0.0.1-cp312-cp312-macosx_13_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "460284f27f5d900f7db25bcf61b8563df03dfa593f47c542b231ad89313755fc",
                "md5": "d05401cdbb8b30c839bd9a7d82ffa6be",
                "sha256": "795dc9983b17395b1841cfc071bb2ef27e4209fc29a30272ccc9817954307aeb"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1-cp312-cp312-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "d05401cdbb8b30c839bd9a7d82ffa6be",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 3617165,
            "upload_time": "2024-08-21T15:07:43",
            "upload_time_iso_8601": "2024-08-21T15:07:43.822290Z",
            "url": "https://files.pythonhosted.org/packages/46/02/84f27f5d900f7db25bcf61b8563df03dfa593f47c542b231ad89313755fc/spherely-0.0.1-cp312-cp312-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3c3a800940f3cdb9de8184b9e4d17ad91d03b9f3e1d077e23d4db79144051051",
                "md5": "c111fabdd547283d58199d1a69223a49",
                "sha256": "d830d8c152fd2869b2dc406d790c2506936489873785507c6191b7eb344825cc"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c111fabdd547283d58199d1a69223a49",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.10",
            "size": 3730969,
            "upload_time": "2024-08-21T15:07:45",
            "upload_time_iso_8601": "2024-08-21T15:07:45.848180Z",
            "url": "https://files.pythonhosted.org/packages/3c/3a/800940f3cdb9de8184b9e4d17ad91d03b9f3e1d077e23d4db79144051051/spherely-0.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c08b8967ed4f75b5580835d6f8cd6db756bda2af220537313da30d55b44e309e",
                "md5": "aa476f6b2e08f6b6e76776c7464e600b",
                "sha256": "0c464855551440a7b108f42952810dd84ed71049b6f541b242adc185bc77d394"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1-cp313-cp313-macosx_13_0_x86_64.whl",
            "has_sig": false,
            "md5_digest": "aa476f6b2e08f6b6e76776c7464e600b",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 3462916,
            "upload_time": "2024-08-21T15:07:47",
            "upload_time_iso_8601": "2024-08-21T15:07:47.264180Z",
            "url": "https://files.pythonhosted.org/packages/c0/8b/8967ed4f75b5580835d6f8cd6db756bda2af220537313da30d55b44e309e/spherely-0.0.1-cp313-cp313-macosx_13_0_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7331291fb02b5250ca40b4ac5f8a1cff44e7d7b34e965e7feac125b53a378603",
                "md5": "0ff3d78d19e4ced4d023375d5e21da60",
                "sha256": "4eb7dab77fe26d3c32376ece49edd187325f4897e0e17a7e5529303b4aae4a11"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1-cp313-cp313-macosx_14_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "0ff3d78d19e4ced4d023375d5e21da60",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 3617197,
            "upload_time": "2024-08-21T15:07:49",
            "upload_time_iso_8601": "2024-08-21T15:07:49.675473Z",
            "url": "https://files.pythonhosted.org/packages/73/31/291fb02b5250ca40b4ac5f8a1cff44e7d7b34e965e7feac125b53a378603/spherely-0.0.1-cp313-cp313-macosx_14_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a90924b9f4f9f208e67024cea0bc031ede4fcf03d68655a72f318a5e2ca3b7f7",
                "md5": "cbe7ab4e084d20ab296666af719173f4",
                "sha256": "a60eb24aa40bdf9b3fc491f417adf35aeae4b7a0d763623faa7fa2d16f351f34"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "cbe7ab4e084d20ab296666af719173f4",
            "packagetype": "bdist_wheel",
            "python_version": "cp313",
            "requires_python": ">=3.10",
            "size": 3731110,
            "upload_time": "2024-08-21T15:07:51",
            "upload_time_iso_8601": "2024-08-21T15:07:51.671705Z",
            "url": "https://files.pythonhosted.org/packages/a9/09/24b9f4f9f208e67024cea0bc031ede4fcf03d68655a72f318a5e2ca3b7f7/spherely-0.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "01307e7e51f57f6a069b33ec4d31e9d27a5f80665d859a61461a6f82ee9364ad",
                "md5": "537ee9228fafc43d7228a0034d6defc1",
                "sha256": "a7804321d93b1deec4ccc0be6e1312d590c2946eb1bbcc1a93cff62ca02644fc"
            },
            "downloads": -1,
            "filename": "spherely-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "537ee9228fafc43d7228a0034d6defc1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 230778,
            "upload_time": "2024-08-21T15:07:53",
            "upload_time_iso_8601": "2024-08-21T15:07:53.072692Z",
            "url": "https://files.pythonhosted.org/packages/01/30/7e7e51f57f6a069b33ec4d31e9d27a5f80665d859a61461a6f82ee9364ad/spherely-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-21 15:07:53",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "benbovy",
    "github_project": "spherely",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "spherely"
}
        
Elapsed time: 2.83222s