uber/h3-py

Python bindings for H3, a hierarchical hexagonal geospatial indexing system

Python

1,045

243 commits

updated Oct 19, 2026

See the code

README

H3 Logo

h3-py: Uber's H3 Hexagonal Hierarchical Geospatial Indexing System in Python

PyPI version PyPI downloads conda version version

Tests Coverage 100%

Python bindings for the H3 core library.

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.

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': '4.1.0', 'python': '4.1.1'}
geocoding
geospatial
gis
h3
hexagonal-architecture
python
uber

uber/h3-py

Python bindings for H3, a hierarchical hexagonal geospatial indexing system

Python

1,045

243 commits

updated Oct 19, 2026

See the code

README

H3 Logo

h3-py: Uber's H3 Hexagonal Hierarchical Geospatial Indexing System in Python

PyPI version PyPI downloads conda version version

Tests Coverage 100%

Python bindings for the H3 core library.

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.

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': '4.1.0', 'python': '4.1.1'}
geocoding
geospatial
gis
h3
hexagonal-architecture
python
uber

Project health

Overall

5.1/10

Maintained

10/10

Code review

8/10
OpenSSF Scorecard

PyPI

Latest release

4.5.0 · May 30, 2026

Releases this year

3

Significant stargazers

Ray Bell

156 followers · starred Jul 2024

isaachier

44 followers · starred Aug 2018

Kamil Monicz

280 followers · starred Feb 2025

Zacharias Knudsen

37 followers · starred Jul 2018