Skip to main content

Data science toolkit for the H3 geospatial grid

Project description

A data science toolkit for the H3 geospatial grid.

PyPI ReadTheDocs

This library is not a substitute for the official python h3 library - instead it provides more high-level functions on top of H3 and integrations into common dataframe libraries.

Documentation is available on https://h3ronpy.readthedocs.io/.

Features

  • H3 algorithms provided using the performant h3o library.

  • Build on Apache Arrow and pyarrow for efficient data handling.

  • Dedicated APIs for the the pandas and polars dataframe libraries. The pandas support includes geopandas.

  • Multi-threaded conversion of raster data to the H3 grid using numpy arrays.

  • Multi-threaded conversion of vector data, including geopandas GeoDataFrames and any object which supports the python __geo_interface__ protocol (shapely, geojson, …).

Most parts of this library aim to be well-performing. Benchmarking the conversion of 1000 uint64 cell values to strings using

  • a simplistic list comprehension calling h3-py h3_to_string

  • a numpy vectorized (numpy.vectorize) variant of h3-py h3_to_string

  • the cells_to_string function of this library (release build)

leads to the following result on a standard laptop:

---------------------------------------------------------------------------------------------- benchmark: 3 tests ---------------------------------------------------------------------------------------------
Name (time in us)                           Min                 Max                Mean            StdDev              Median               IQR            Outliers  OPS (Kops/s)            Rounds  Iterations
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
test_cells_to_string                    48.4710 (1.0)       75.5000 (1.0)       52.4252 (1.0)      1.5461 (1.0)       52.0330 (1.0)      0.4890 (1.0)       307;448       19.0748 (1.0)        4090           1
test_h3_to_string_python_list          290.5460 (5.99)     325.8180 (4.32)     297.5644 (5.68)     4.8769 (3.15)     296.1350 (5.69)     8.2420 (16.85)       806;4        3.3606 (0.18)       2863           1
test_h3_to_string_numpy_vectorized     352.9870 (7.28)     393.8450 (5.22)     360.1159 (6.87)     3.7195 (2.41)     359.4820 (6.91)     3.8420 (7.86)      447;131        2.7769 (0.15)       2334           1
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Legend:
  Outliers: 1 Standard Deviation from Mean; 1.5 IQR (InterQuartile Range) from 1st Quartile and 3rd Quartile.
  OPS: Operations Per Second, computed as 1 / Mean

The benchmark implementation can be found in tests/polars/test_benches.py and uses pytest-benchmark.

Limitations

Not all functionalities of the H3 grid are wrapped by this library, the current feature-set was implemented when there was a need and the time for it. As a opensource library new features can be requested in the form of github issues or contributed using pull requests.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

h3ronpy-0.21.1-cp38-abi3-win_amd64.whl (1.8 MB view details)

Uploaded CPython 3.8+ Windows x86-64

h3ronpy-0.21.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ x86-64

h3ronpy-0.21.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

h3ronpy-0.21.1-cp38-abi3-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.8+ macOS 11.0+ ARM64

h3ronpy-0.21.1-cp38-abi3-macosx_10_14_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.8+ macOS 10.14+ x86-64

File details

Details for the file h3ronpy-0.21.1-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for h3ronpy-0.21.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 613bdee812ca31d27f2750ef0d453a6257461465adc4bd891a43db70226ad6be
MD5 1e38315ab15910e65348c9b1bb3043a9
BLAKE2b-256 04c9799c0948c77ab5f8b1c1893109bc8e1f1f8e00795c84c0b66cb1e2f0bae9

See more details on using hashes here.

File details

Details for the file h3ronpy-0.21.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for h3ronpy-0.21.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f69297204daf93875882692ff0c6cd253de0da5f94835598a54d01abb5be740b
MD5 8249d6e8885d20f4417edf70aba5d13d
BLAKE2b-256 9e94da2698b54083c8062c25d12c38d0ab304e825ac3dec4cac7f5297c60968b

See more details on using hashes here.

File details

Details for the file h3ronpy-0.21.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for h3ronpy-0.21.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 109c2424685096354c1390cec3842b65ea9fe8b4afb956ce918b604b7a68ad6b
MD5 38d9d863463fe824570b6a04b87d9a08
BLAKE2b-256 a4f377b490da2aa9b52a16bbfa325ef1eb0c344d134a61d3fc7727575e88a3ce

See more details on using hashes here.

File details

Details for the file h3ronpy-0.21.1-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for h3ronpy-0.21.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6b3f15b86652c3fafdbaaaf977962317d7367176a1c1b13e688daff8c5e0c964
MD5 adef146719ef0275d0f81d178e1071e8
BLAKE2b-256 955464151fef9d7e98c89c15289071322940e43c1cc4c35b6e3d8dfdf5654c4e

See more details on using hashes here.

File details

Details for the file h3ronpy-0.21.1-cp38-abi3-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for h3ronpy-0.21.1-cp38-abi3-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c0bc8b87da6de7f83c783581fae72a41af560bbb924b7f18c103fa9e73196781
MD5 eac676450b8bfbed68e44863fe76cebe
BLAKE2b-256 78ab95bf30c4afd08219c52a14ed77707f9c415540a9b7baf0dbcfda1e92760f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page