Data science toolkit for the H3 geospatial grid
Project description
A data science toolkit for the H3 geospatial grid.
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for h3ronpy-0.19.1-cp38-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b49602bbc41f7e39fa4242c823c252c7581d64a013b2ae14647604d0a971014b |
|
MD5 | ab68ddbe21d483b492db9ef9784745bf |
|
BLAKE2b-256 | f535536a70b4dc91d596d3456c447213752f2d18d7fe4f0b7e045153aac4ff84 |
Hashes for h3ronpy-0.19.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f68eee50fe31cd09aa3ab41775ace36eae0c129a2050f3065d26df8e6e1ca61 |
|
MD5 | d0224d8231536ad4703b487b37dccebd |
|
BLAKE2b-256 | b8dc939ad9e5d3dc46206569862905b1b42054bd55a1a226a15dcdfc82c6ccc6 |
Hashes for h3ronpy-0.19.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc5738d89ee5848192821ee7f881d90f26f847d2448f3e8d6837caf3ffe7398c |
|
MD5 | 049d6d67e9a01773660a10fbd7561bec |
|
BLAKE2b-256 | 959489161a009c2563190d659e6bda9b7d5460a1cddcf87143dc72865dfd5e9a |
Hashes for h3ronpy-0.19.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79fc3befd575a54c04678ef1ca794588085ead537fe6b025fef32bed87db54de |
|
MD5 | 89ce8b5533a3dcec85afb0b3997c853b |
|
BLAKE2b-256 | ca08d3cc05d35a02ca441eba356f8675b8378b7983a984d219739e64405c9510 |
Hashes for h3ronpy-0.19.1-cp38-abi3-macosx_10_14_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af6af9a26881baf34433ea8621168ad5e3bb923ba3d23628e238a09e53c3dac3 |
|
MD5 | b1df885883b0edadaf3a6ebd88c7b4c3 |
|
BLAKE2b-256 | 2279bd5f3875111f092d5137643442a665f7f2b4000b6bff0ae309d50f83987d |