pygeodesic


Namepygeodesic JSON
Version 0.1.8 PyPI version JSON
download
home_pagehttps://github.com/mhogg/pygeodesic
SummaryPython library for calculating geodesic distance on triangular based surface meshes
upload_time2023-01-26 22:47:00
maintainer
docs_urlNone
authorMichael Hogg
requires_python
licenseMIT license
keywords geodesic distance path triangle mesh python cython
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pygeodesic

Python library to compute geodesic distance over a triangular based surface mesh.

A Cython wrapper of the C++ code by [Kirsanov](https://code.google.com/archive/p/geodesic/), which is an implementation of the exact geodesic algorithm for triangular mesh first described by Mitchell, Mount and Papadimitriou in 1987.

`pygeodesic` is similar to other libraries on PyPi (such as [gdist](https://pypi.org/project/gdist/) and [tvb-gdist](https://pypi.org/project/tvb-gdist/)), but:
* provides a wrapper of the GeodesicAlgorithmExact class
* exposes geodesic path (not just geodesic distance)
* licensed under MIT license similar to the orginal Kirsanov C++ code, rather than GPL

A good alternative to `pygeodesic` is [potpourri3d](https://pypi.org/project/potpourri3d/), which uses the *heat method* and *vector heat method* to compute geodesic distance over surfaces and point clouds. However, this library does not currently output the geodesic path on the surface.

## Requirements

A C++ compiler is required if you are not installing one of the precompiled wheels. Although `pygeodesic` is a Cython wrapper, Cython is not required as the cythonized C++ file is also provided.

[VTK](https://pypi.org/project/vtk/) is used for visualisation in the example notebooks.


## Installation

Install from PyPi:
```
pip install pygeodesic
```

Installation from source (from within folder containing `setup.py`):
```
python setup.py install
```

## Usage

Loading pygeodesic:
```python
import pygeodesic.geodesic as geodesic
```

To read the mesh files provided with the original C++ code:
```python
filename = r'data/flat_triangular_mesh.txt'
result = geodesic.read_mesh_from_file(filename)
if result:
    points, faces = result
```

To calculate the geodesic distance and path between two points (the *source* and the *target*) on the mesh:
```python
# Initialise the PyGeodesicAlgorithmExact class instance
geoalg = geodesic.PyGeodesicAlgorithmExact(points, faces)

# Define the source and target point ids with respect to the points array
sourceIndex = 25
targetIndex = 97

# Compute the geodesic distance and the path
distance, path = geoalg.geodesicDistance(sourceIndex, targetIndex)
```

To calculate the geodesic distances from a single point (the source point) to all other points on the mesh:
```python
source_indices = np.array([25])
target_indices = None
distances, best_source = geoalg.geodesicDistances(source_indices, target_indices)
```

To calculate the geodesic distances from two source points to 3 target points:
```python
source_indices = np.array([25,100]) 
target_indices = np.array([0,10,50])
distances, best_source = geoalg.geodesicDistances(source_indices, target_indices)
```

For more detail, a Jupyter notebook is provided in the examples folder to show how to use `pygeodesic` to compute geodesic distances and paths.

## Example using the Stanford Bunny

A Jupyter notebook is provided showing how to use `pygeodesic` to calculate the geodesic distance and path using the Stanford Bunny as an example.

<img src="https://github.com/mhogg/pygeodesic/blob/main/images/stanford_bunny_geodesic_path.png?raw=true" height="400"/>




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/mhogg/pygeodesic",
    "name": "pygeodesic",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "geodesic,distance,path,triangle,mesh,python,cython",
    "author": "Michael Hogg",
    "author_email": "michael.christopher.hogg@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/cc/ec/51a0ca644d19eb40fe85cd7e4f9b9d7b4c1bd590acc8a0b0a8bd22a16fbd/pygeodesic-0.1.8.tar.gz",
    "platform": null,
    "description": "# pygeodesic\n\nPython library to compute geodesic distance over a triangular based surface mesh.\n\nA Cython wrapper of the C++ code by [Kirsanov](https://code.google.com/archive/p/geodesic/), which is an implementation of the exact geodesic algorithm for triangular mesh first described by Mitchell, Mount and Papadimitriou in 1987.\n\n`pygeodesic` is similar to other libraries on PyPi (such as [gdist](https://pypi.org/project/gdist/) and [tvb-gdist](https://pypi.org/project/tvb-gdist/)), but:\n* provides a wrapper of the GeodesicAlgorithmExact class\n* exposes geodesic path (not just geodesic distance)\n* licensed under MIT license similar to the orginal Kirsanov C++ code, rather than GPL\n\nA good alternative to `pygeodesic` is [potpourri3d](https://pypi.org/project/potpourri3d/), which uses the *heat method* and *vector heat method* to compute geodesic distance over surfaces and point clouds. However, this library does not currently output the geodesic path on the surface.\n\n## Requirements\n\nA C++ compiler is required if you are not installing one of the precompiled wheels. Although `pygeodesic` is a Cython wrapper, Cython is not required as the cythonized C++ file is also provided.\n\n[VTK](https://pypi.org/project/vtk/) is used for visualisation in the example notebooks.\n\n\n## Installation\n\nInstall from PyPi:\n```\npip install pygeodesic\n```\n\nInstallation from source (from within folder containing `setup.py`):\n```\npython setup.py install\n```\n\n## Usage\n\nLoading pygeodesic:\n```python\nimport pygeodesic.geodesic as geodesic\n```\n\nTo read the mesh files provided with the original C++ code:\n```python\nfilename = r'data/flat_triangular_mesh.txt'\nresult = geodesic.read_mesh_from_file(filename)\nif result:\n    points, faces = result\n```\n\nTo calculate the geodesic distance and path between two points (the *source* and the *target*) on the mesh:\n```python\n# Initialise the PyGeodesicAlgorithmExact class instance\ngeoalg = geodesic.PyGeodesicAlgorithmExact(points, faces)\n\n# Define the source and target point ids with respect to the points array\nsourceIndex = 25\ntargetIndex = 97\n\n# Compute the geodesic distance and the path\ndistance, path = geoalg.geodesicDistance(sourceIndex, targetIndex)\n```\n\nTo calculate the geodesic distances from a single point (the source point) to all other points on the mesh:\n```python\nsource_indices = np.array([25])\ntarget_indices = None\ndistances, best_source = geoalg.geodesicDistances(source_indices, target_indices)\n```\n\nTo calculate the geodesic distances from two source points to 3 target points:\n```python\nsource_indices = np.array([25,100]) \ntarget_indices = np.array([0,10,50])\ndistances, best_source = geoalg.geodesicDistances(source_indices, target_indices)\n```\n\nFor more detail, a Jupyter notebook is provided in the examples folder to show how to use `pygeodesic` to compute geodesic distances and paths.\n\n## Example using the Stanford Bunny\n\nA Jupyter notebook is provided showing how to use `pygeodesic` to calculate the geodesic distance and path using the Stanford Bunny as an example.\n\n<img src=\"https://github.com/mhogg/pygeodesic/blob/main/images/stanford_bunny_geodesic_path.png?raw=true\" height=\"400\"/>\n\n\n\n",
    "bugtrack_url": null,
    "license": "MIT license",
    "summary": "Python library for calculating geodesic distance on triangular based surface meshes",
    "version": "0.1.8",
    "split_keywords": [
        "geodesic",
        "distance",
        "path",
        "triangle",
        "mesh",
        "python",
        "cython"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e83c33a8fdd7b448516cc5a88a06cb22e6cc25c61e5e668a1e1d6e8045cd975a",
                "md5": "242c061880c6d9a9ba7318ed6069b63b",
                "sha256": "6a4547210d523eea6760fedb003b1ed8774ea45760f1daef61d49a37b1ec9a66"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "242c061880c6d9a9ba7318ed6069b63b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 348895,
            "upload_time": "2023-01-26T22:46:32",
            "upload_time_iso_8601": "2023-01-26T22:46:32.254550Z",
            "url": "https://files.pythonhosted.org/packages/e8/3c/33a8fdd7b448516cc5a88a06cb22e6cc25c61e5e668a1e1d6e8045cd975a/pygeodesic-0.1.8-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "943fda167d3351a9082a6d4f51254a16f47b8456821a853b91032cc81e720299",
                "md5": "799b8bb2d439dabc169f508f7c405305",
                "sha256": "922d244d032a2862890a6615dc0579356f9f2f65730fe2270c44cac4d6e2640d"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "799b8bb2d439dabc169f508f7c405305",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 253199,
            "upload_time": "2023-01-26T22:46:33",
            "upload_time_iso_8601": "2023-01-26T22:46:33.919841Z",
            "url": "https://files.pythonhosted.org/packages/94/3f/da167d3351a9082a6d4f51254a16f47b8456821a853b91032cc81e720299/pygeodesic-0.1.8-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9a395a147b4552884ceeea55756301772b934ce1346ff6948c2076c66433b2f4",
                "md5": "95ec146075dfc46533d1b0537c360572",
                "sha256": "779039bcbd284aea243bdf07ecf1bb3c7e55ca3442ebca62a005f14ed3a7e3b3"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "95ec146075dfc46533d1b0537c360572",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 977301,
            "upload_time": "2023-01-26T22:46:35",
            "upload_time_iso_8601": "2023-01-26T22:46:35.441873Z",
            "url": "https://files.pythonhosted.org/packages/9a/39/5a147b4552884ceeea55756301772b934ce1346ff6948c2076c66433b2f4/pygeodesic-0.1.8-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cb870aaf98cae8ad052b706ad6fd89d2aec029814e0313bc8c31bcb3219a6453",
                "md5": "a2a8b1b863a0bd261c844b1d39a7227e",
                "sha256": "97d0aaf2f3291978e5657781d6c593faf0ae031d71a130be143354c6e2ddbd2d"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "a2a8b1b863a0bd261c844b1d39a7227e",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 1327035,
            "upload_time": "2023-01-26T22:46:36",
            "upload_time_iso_8601": "2023-01-26T22:46:36.683596Z",
            "url": "https://files.pythonhosted.org/packages/cb/87/0aaf98cae8ad052b706ad6fd89d2aec029814e0313bc8c31bcb3219a6453/pygeodesic-0.1.8-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0f8a01df851291e314cdff8ce241c2fadc964380e61667627de08df8a8f0c7e8",
                "md5": "57e468de9c8bc9144f0c4e577285c057",
                "sha256": "0b08c7f6b121c693e08b20cc8f849cc2ef8f6f14d1885b218cf12a828576e804"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "57e468de9c8bc9144f0c4e577285c057",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 350475,
            "upload_time": "2023-01-26T22:46:37",
            "upload_time_iso_8601": "2023-01-26T22:46:37.791498Z",
            "url": "https://files.pythonhosted.org/packages/0f/8a/01df851291e314cdff8ce241c2fadc964380e61667627de08df8a8f0c7e8/pygeodesic-0.1.8-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "01e08f95bdc9cda22ed86d85ad3bd88f0d40143b4d6621ca95bf5acd39647c00",
                "md5": "ca81a8dde22e4b22ad5acaedc81ed472",
                "sha256": "3535c309e316db9eb32533a2da3535b9c23e91f33747bd917c61b3a1b15f1c98"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ca81a8dde22e4b22ad5acaedc81ed472",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 254465,
            "upload_time": "2023-01-26T22:46:39",
            "upload_time_iso_8601": "2023-01-26T22:46:39.479536Z",
            "url": "https://files.pythonhosted.org/packages/01/e0/8f95bdc9cda22ed86d85ad3bd88f0d40143b4d6621ca95bf5acd39647c00/pygeodesic-0.1.8-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1a326973b963c3105dc96311ea331900f55626b2001f648e10e2503f004b4dff",
                "md5": "ca1bbbe60f78e0a5f1f3055ded67d8f9",
                "sha256": "b670b6c2d086bd58d09effccb6aa3bbdfcd6e15f81d087b7181f2340d810b4c1"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ca1bbbe60f78e0a5f1f3055ded67d8f9",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1008884,
            "upload_time": "2023-01-26T22:46:40",
            "upload_time_iso_8601": "2023-01-26T22:46:40.811417Z",
            "url": "https://files.pythonhosted.org/packages/1a/32/6973b963c3105dc96311ea331900f55626b2001f648e10e2503f004b4dff/pygeodesic-0.1.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "6c5c8a02b01de0592fcd138f969c9a9b4881959b400e69178f27048aff9e0f82",
                "md5": "3bbc441f77cf7bdd9846fd525fb5c0aa",
                "sha256": "ed761a63c2b26075c6fd78053100f585f83241e4cb72bc07916fd5e71c5caa1f"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "3bbc441f77cf7bdd9846fd525fb5c0aa",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 1328221,
            "upload_time": "2023-01-26T22:46:42",
            "upload_time_iso_8601": "2023-01-26T22:46:42.088438Z",
            "url": "https://files.pythonhosted.org/packages/6c/5c/8a02b01de0592fcd138f969c9a9b4881959b400e69178f27048aff9e0f82/pygeodesic-0.1.8-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b992784d79500591779c9da8f1325ec906cfd2a9c40c8565812ad38d6b8eb3b5",
                "md5": "53d0ebed5999f4c9a9611adf92c24145",
                "sha256": "cd68fc0245436cf27908ee7002ae35e9725db6abc6cbc56d5107ff3fdad0a3ce"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp37-cp37m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "53d0ebed5999f4c9a9611adf92c24145",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 150187,
            "upload_time": "2023-01-26T22:46:43",
            "upload_time_iso_8601": "2023-01-26T22:46:43.382113Z",
            "url": "https://files.pythonhosted.org/packages/b9/92/784d79500591779c9da8f1325ec906cfd2a9c40c8565812ad38d6b8eb3b5/pygeodesic-0.1.8-cp37-cp37m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d0bc15c2f0976c0df475c82df82b1232d15ecddd4a4b181dd26a3a47f309324f",
                "md5": "38900e00847865ecbc06901f0db9419e",
                "sha256": "b51b327b2221a8ac83a1047bcd27b6152d028b276d953b41987e790dae8dac90"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "38900e00847865ecbc06901f0db9419e",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 837575,
            "upload_time": "2023-01-26T22:46:44",
            "upload_time_iso_8601": "2023-01-26T22:46:44.645905Z",
            "url": "https://files.pythonhosted.org/packages/d0/bc/15c2f0976c0df475c82df82b1232d15ecddd4a4b181dd26a3a47f309324f/pygeodesic-0.1.8-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ae518dd582ae1c5293a4ac85b4fe7f3263be05898261d89ed2460bfa683f668d",
                "md5": "51fe8406de25d76d726a5e49dc8146bb",
                "sha256": "f15fc8999dcb705b5701131d0d3b499f92645a8fec0b1c5ef241978afd088e47"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp37-cp37m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "51fe8406de25d76d726a5e49dc8146bb",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 1223306,
            "upload_time": "2023-01-26T22:46:45",
            "upload_time_iso_8601": "2023-01-26T22:46:45.828782Z",
            "url": "https://files.pythonhosted.org/packages/ae/51/8dd582ae1c5293a4ac85b4fe7f3263be05898261d89ed2460bfa683f668d/pygeodesic-0.1.8-cp37-cp37m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "42e8d60fcede1d865f254f54cc2ac29a2c84a8cf572db30170ce21690c311077",
                "md5": "64815e0e2176abc3cbd98ffd06fcc08e",
                "sha256": "4f7f29dae1e293cef873e7240472dc7fc1868809599548c5d72a866e9db50a61"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp38-cp38-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "64815e0e2176abc3cbd98ffd06fcc08e",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 351011,
            "upload_time": "2023-01-26T22:46:47",
            "upload_time_iso_8601": "2023-01-26T22:46:47.534041Z",
            "url": "https://files.pythonhosted.org/packages/42/e8/d60fcede1d865f254f54cc2ac29a2c84a8cf572db30170ce21690c311077/pygeodesic-0.1.8-cp38-cp38-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "05263166e2a385e8e6502f3da49c205c577b25ae4db3df03b5de30397ac56531",
                "md5": "b670e37b0a7aeb7eac90f4e9bfd8c68e",
                "sha256": "1bf5ed520af5066962857c032d5abaf061b1fca815cfbdc4e43d6117508ae931"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b670e37b0a7aeb7eac90f4e9bfd8c68e",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 254736,
            "upload_time": "2023-01-26T22:46:48",
            "upload_time_iso_8601": "2023-01-26T22:46:48.951984Z",
            "url": "https://files.pythonhosted.org/packages/05/26/3166e2a385e8e6502f3da49c205c577b25ae4db3df03b5de30397ac56531/pygeodesic-0.1.8-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c963cea765a3f04d539414417ae73b0a53dba544113092388f68f6a62c609707",
                "md5": "7e23c12e2d7df5f59123e63eaba9eced",
                "sha256": "03155d45116d0595e5fcd1f1357a2d8a90f2dbf91589c63228311730ff96e9c8"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7e23c12e2d7df5f59123e63eaba9eced",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 983794,
            "upload_time": "2023-01-26T22:46:50",
            "upload_time_iso_8601": "2023-01-26T22:46:50.199298Z",
            "url": "https://files.pythonhosted.org/packages/c9/63/cea765a3f04d539414417ae73b0a53dba544113092388f68f6a62c609707/pygeodesic-0.1.8-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "95d111de8b928183bff4f7469463dcc7d004a51c097452cf4ca40146ddf220b6",
                "md5": "be8457c7e07ac08a24b8feff99251921",
                "sha256": "9e626db32bbb29f94130fb9a13d7c095120bfb47c0b372d4f112831ed7797351"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "be8457c7e07ac08a24b8feff99251921",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 1327942,
            "upload_time": "2023-01-26T22:46:51",
            "upload_time_iso_8601": "2023-01-26T22:46:51.990485Z",
            "url": "https://files.pythonhosted.org/packages/95/d1/11de8b928183bff4f7469463dcc7d004a51c097452cf4ca40146ddf220b6/pygeodesic-0.1.8-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "133de8911ab38236f91ebaacbd1dbe621e083d193fb30ac275345adb26dbc0be",
                "md5": "becde5fe5968f7dffe39c62b585912e0",
                "sha256": "56abd963fada34656e19794f5bce0b1f9c475bf508e6f9a040a4e14fb198d05e"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "becde5fe5968f7dffe39c62b585912e0",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 348722,
            "upload_time": "2023-01-26T22:46:53",
            "upload_time_iso_8601": "2023-01-26T22:46:53.208034Z",
            "url": "https://files.pythonhosted.org/packages/13/3d/e8911ab38236f91ebaacbd1dbe621e083d193fb30ac275345adb26dbc0be/pygeodesic-0.1.8-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2cbd5e37538099e0be710bc71b7ca865e3abf62be346d6154b8590ccfae634a3",
                "md5": "338f4ff0e1c836a3ab70f4661f4ac94b",
                "sha256": "4bb3852dea0ac33fc759d8d7b59968a11e97873381e996f4cbdee58c94c3f9b1"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "338f4ff0e1c836a3ab70f4661f4ac94b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 253768,
            "upload_time": "2023-01-26T22:46:55",
            "upload_time_iso_8601": "2023-01-26T22:46:55.067467Z",
            "url": "https://files.pythonhosted.org/packages/2c/bd/5e37538099e0be710bc71b7ca865e3abf62be346d6154b8590ccfae634a3/pygeodesic-0.1.8-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5b599c4e9d0c019a4ecbe776766a153624cae7889356e57dfef990e9ea749c44",
                "md5": "6c0b7a19f77217e52dfa00d8a1bef719",
                "sha256": "1423f99081dc946cf7de81c80f922a9d77ecdb69315c0101e698912e8892e2c0"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "6c0b7a19f77217e52dfa00d8a1bef719",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 973777,
            "upload_time": "2023-01-26T22:46:56",
            "upload_time_iso_8601": "2023-01-26T22:46:56.825337Z",
            "url": "https://files.pythonhosted.org/packages/5b/59/9c4e9d0c019a4ecbe776766a153624cae7889356e57dfef990e9ea749c44/pygeodesic-0.1.8-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d6e2c96ced1faec25c677f0c6a661dcb526879be9d121416b168e085ee206e15",
                "md5": "ac5e049e0422108573e5156a2a42bd55",
                "sha256": "2b12f776d2d08dd7427347d5dbbc0e58128f4207016cf641cb26e0532e17cc0a"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "ac5e049e0422108573e5156a2a42bd55",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 1327655,
            "upload_time": "2023-01-26T22:46:58",
            "upload_time_iso_8601": "2023-01-26T22:46:58.718456Z",
            "url": "https://files.pythonhosted.org/packages/d6/e2/c96ced1faec25c677f0c6a661dcb526879be9d121416b168e085ee206e15/pygeodesic-0.1.8-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ccec51a0ca644d19eb40fe85cd7e4f9b9d7b4c1bd590acc8a0b0a8bd22a16fbd",
                "md5": "5fb81d193e4f3be5c61fad3807f61b41",
                "sha256": "56b73149ad15fdb88cab905486c178cb3a918f59fa2eb65705a19e22644573b8"
            },
            "downloads": -1,
            "filename": "pygeodesic-0.1.8.tar.gz",
            "has_sig": false,
            "md5_digest": "5fb81d193e4f3be5c61fad3807f61b41",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 35414,
            "upload_time": "2023-01-26T22:47:00",
            "upload_time_iso_8601": "2023-01-26T22:47:00.323368Z",
            "url": "https://files.pythonhosted.org/packages/cc/ec/51a0ca644d19eb40fe85cd7e4f9b9d7b4c1bd590acc8a0b0a8bd22a16fbd/pygeodesic-0.1.8.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-01-26 22:47:00",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "mhogg",
    "github_project": "pygeodesic",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pygeodesic"
}
        
Elapsed time: 0.03742s