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
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.
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.17.3-cp38-abi3-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 899f7140b8f6e3dd81673d71b1bbfb3b0a20ce2f867c5978da3f06761d75ca47 |
|
MD5 | c8666949aa556d10259f560a8e5517e2 |
|
BLAKE2b-256 | 74ce3341e729582b26268df75bbf086755f09fef1ac52395716f8abc79d91a4a |
Hashes for h3ronpy-0.17.3-cp38-abi3-manylinux_2_28_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b048b5de13acb4a716caabadd2e9403bf5ea81cd68eb579920023436579d5b6c |
|
MD5 | c488cfc3487be7d7045c0ca3c68b2f96 |
|
BLAKE2b-256 | 26b2f0408b297a1bec72284b87917f8531a6abdef1879258430632fe0bb097a9 |
Hashes for h3ronpy-0.17.3-cp38-abi3-macosx_10_7_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a2761737fd9649ed3b798bae3bd9f32ac48260f34686c3af0601f70c67538b5 |
|
MD5 | 88ecc50db4756c63afd25acd0dd347d8 |
|
BLAKE2b-256 | 277ec3ebb4da30fa130951678cbfb785c12bcb6a5528fd10db635ab66b3bdb1b |