h3
Uber's hierarchical hexagonal geospatial indexing system
Decision gist · record as of 2026-08-14
Yes. h3 is a mature, actively maintained library with zero known vulnerabilities, permissive licensing, and broad platform support via pre-built wheels. Install friction is moderate but well-managed. Use it if you need to bin geographic coordinates into a hierarchical hexagonal grid or perform spatial operations on location data.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >=3.10; compiled C extension requires a compatible build environment or pre-built wheel for your platform.
- Medium install friction due to compiled C bindings, but well-mitigated by pre-built wheels for Python 3.10–3.14 across macOS, Linux, and Windows.
- Active maintenance with a recent release (76 days ago) and 1029 GitHub stars.
License · maintenance · safety
permissive license (permissive) — Apache License 2.0 is permissive; you may use, modify, and distribute h3 freely in commercial and private projects, provided you include a copy of the license and note any changes you make.
last release 2026-05-30 (76 days) · last repo commit 2026-08-14 · 1,029 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 12,058,587 downloads/mo, #1,347 on PyPI
Alternatives
Verify before relying
pip install h3
import h3
lat, lng = 37.769377, -122.388903
cell = h3.latlng_to_cell(lat, lng, resolution=9)
print(cell) # '89283082e73ffff'- Whether the package supports multiple input/output API formats beyond the basic lat/lng_to_cell example shown in the description.
- Performance characteristics (latency, throughput) for typical geospatial workloads at scale.
What it is and what it does
h3 is a Python binding to Uber's H3 geospatial indexing system, a C library that converts latitude/longitude coordinates into hierarchical hexagonal grid cells. It lets you discretize geographic space into a multi-resolution hexagonal hierarchy, making it straightforward to bin locations, compute spatial neighborhoods, and perform geospatial aggregations without writing C code yourself.
The package wraps the H3 core library with a Pythonic API, offering multiple input/output formats and maintaining version alignment with the underlying C library in major and minor version numbers. It has no runtime Python dependencies, installs via pre-built wheels on modern platforms, and supports Python 3.10 through 3.14. The library is actively maintained by Uber and widely used for location-based analytics, mapping, and spatial data processing.
Use it for
- Aggregate location data into hexagonal bins for heatmaps or regional analytics dashboards.
- Find neighboring geographic cells or compute distances between locations using the H3 hierarchy.
- Discretize GPS traces or sensor readings into a consistent spatial grid for deduplication and analysis.
- Build geofencing or location-based services that need efficient spatial indexing without database overhead.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
h3 is a mature, actively maintained library with zero known vulnerabilities, permissive licensing, and broad platform support via pre-built wheels. Install friction is moderate but well-managed. Use it if you need to bin geographic coordinates into a hierarchical hexagonal grid or perform spatial operations on location data.
Install
h3 on PyPI
Before you install
Medium install friction due to compiled C bindings, but well-mitigated by pre-built wheels for Python 3.10–3.14 across macOS, Linux, and Windows. Active maintenance with a recent release (76 days ago) and 1029 GitHub stars.
Requires Python >=3.10; compiled C extension requires a compatible build environment or pre-built wheel for your platform.
License in practice
Apache License 2.0 is permissive; you may use, modify, and distribute h3 freely in commercial and private projects, provided you include a copy of the license and note any changes you make.
Quickstart
pip install h3
import h3
lat, lng = 37.769377, -122.388903
cell = h3.latlng_to_cell(lat, lng, resolution=9)
print(cell) # '89283082e73ffff'
Verify before relying
- Whether the package supports multiple input/output API formats beyond the basic lat/lng_to_cell example shown in the description.
- Performance characteristics (latency, throughput) for typical geospatial workloads at scale.
Package facts
| License | permissive license permissive |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 76 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 12,058,587 / month, #1,347 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersIntended Audience :: Science/ResearchLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOS :: MacOS XOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: CProgramming Language :: CythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Scientific/Engineering :: GIS |
Evidence: h3-4.5.0-cp310-cp310-macosx_11_0_arm64.whl; h3-4.5.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; h3-4.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; h3-4.5.0-cp310-cp310-musllinux_1_2_x86_64.whl; h3-4.5.0-cp310-cp310-win_amd64.whl; h3-4.5.0-cp311-cp311-macosx_11_0_arm64.whl; h3-4.5.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; h3-4.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; h3-4.5.0-cp311-cp311-musllinux_1_2_x86_64.whl; h3-4.5.0-cp311-cp311-win_amd64.whl; h3-4.5.0-cp311-cp311-win_arm64.whl; h3-4.5.0-cp312-cp312-macosx_11_0_arm64.whl; h3-4.5.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; h3-4.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; h3-4.5.0-cp312-cp312-musllinux_1_2_x86_64.whl; h3-4.5.0-cp312-cp312-win_amd64.whl; h3-4.5.0-cp312-cp312-win_arm64.whl; h3-4.5.0-cp313-cp313-macosx_11_0_arm64.whl; h3-4.5.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; h3-4.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “hexagonal geospatial indexing”
- h3h3 provides Python bindings to Uber's H3 geospatial indexing library,…
- h3-pysparkProvides PySpark bindings for H3, enabling hexagonal geospatial…
- rasterixRasterix provides tools for analyzing raster data within Xarray…
Give your agent the search over MCP, or paste the wish link into any chat.
More GIS packages
Shapely provides Python tools for creating, manipulating, and analyzing 2D geometric objects (points, lines, polygons) using the GEOS library, with both scalar and vectorized NumPy-based operations.
pyproj provides a Python interface to PROJ, enabling cartographic projections and coordinate system transformations for geospatial applications.
GeoPandas extends pandas DataFrames to handle geographic data, combining pandas operations with shapely geometry and spatial analysis capabilities that would otherwise require a spatial database.
Install it if you work with geographic data in Python and want to avoid setting up a spatial database or learning a separate GIS tool.
geopy is a Python client for geocoding and distance calculation that converts addresses to coordinates and vice versa using multiple web-based geocoding services, and computes geodesic and great-circle distances between geographic points.
Install it if you need geocoding or distance calculations in your application.
Pyogrio provides fast, bulk-oriented read and write access to vector spatial data formats (Shapefile, GeoPackage, GeoJSON, etc.) via GDAL/OGR bindings, typically for use with GeoPandas GeoDataFrames.
Fiona reads and writes vector GIS data (Shapefile, GeoPackage, etc.) via a Python API and command-line interface, wrapping GDAL with a focus on readable, productive code.
See also h3-pyspark · placekey · s2sphere · py-geohex3 · python-geohash · geolib · rtree · pydeck · pygeohash · timezonefinder