h3-py: Uber's H3 Hexagonal Hierarchical Geospatial Indexing System in Python
ANNOUNCEMENT: v4.0.0 beta released!
Install the latest beta version with pip install h3 --pre
or with
pip install 'h3==4.0.0b2'
.
Feedback is welcome via
Issues,
Discussions,
and
Slack.
Python bindings for the H3 core library.
- Documentation: uber.github.io/h3-py
- GitHub repo: github.com/uber/h3-py
Installation
From PyPI:
pip install h3
From conda:
conda config --add channels conda-forge
conda install h3-py
Usage
>>> import h3
>>> lat, lng = 37.769377, -122.388903
>>> resolution = 9
>>> h3.latlng_to_cell(lat, lng, resolution)
'89283082e73ffff'
APIs
We provide multiple APIs in h3-py
.
- All APIs have the same set of functions; see the API reference.
- The APIs differ only in their input/output formats; see the API comparison page.
Example gallery
Browse a collection of example notebooks, and if you have examples or visualizations of your own, please feel free to contribute!
We also have an introductory walkthrough of the API.
Versioning
h3-py
wraps the H3 core library,
which is written in C.
The C and Python projects each employ
semantic versioning,
where versions take the form X.Y.Z
.
The h3-py
version string is guaranteed to match the C library string
in both major and minor numbers (X.Y
), but may differ on the
patch (Z
) number.
This convention provides users with information on breaking changes and
feature additions, while providing downstream bindings (like this one!)
with the versioning freedom to fix bugs.
Use h3.versions()
to see the version numbers for both
h3-py
and the C library. For example,
>>> import h3
>>> h3.versions()
{'c': '3.6.3', 'python': '3.6.1'}