IGEO7 vs H3
H3 and IGEO7 share the same broad design philosophy — hierarchical hexagonal indexing on an icosahedron with 64-bit integer indexes. They diverge at two fundamental points: projection and base cell structure. These differences have cascading practical consequences.
Side-by-Side Comparison
| Property | IGEO7 | H3 |
|---|---|---|
| Projection | ISEA (equal area) | Gnomonic |
| Cell area variation | 0% | up to ±50% |
| Base polyhedron | Icosahedron | Icosahedron |
| Base cells (res 0) | 12 pentagons | 122 mixed cells |
| Aperture | Pure aperture 7 | Aperture 3+4 base, then 7 |
| Resolution levels | 0–20 (21 levels) | 0–15 (16 levels) |
| Finest CLS | ~2.9 cm (res 20) | ~1 m² area (res 15) |
| Index size | 64-bit uint | 64-bit uint |
| Digit values | 0–6 (7 = sentinel) | 0–6 (7 = sentinel) |
| String format | 2-char base + octal digits | 15-char hex |
| Pentagons per resolution | 12 | 12 |
| Core library | DGGRID (C++) / DGGAL | H3 (C, standalone) |
| Python binding | dggrid4py, pydggal | h3-py |
Projection: The Key Difference
Both systems map the globe onto an icosahedron, but use different projections from sphere to face:
H3 — Gnomonic projection
- Great circles become straight lines on each face
- Fast point-in-face computation
- Area distortion: cells near face edges are up to 50% smaller than face-centre cells
- Consequence: cell counts are not proportional to area
IGEO7 — ISEA projection
- Area is exactly preserved everywhere on each face
- Requires authalic latitude conversion (geodetic ↔ authalic)
- Zero area distortion: every cell at a given resolution has identical area
- Consequence: cell counts are directly proportional to area
For any use case involving density, rates, or coverage fractions, this difference is not cosmetic — it is the difference between biased and unbiased spatial statistics.
Base Cell Structure
H3 resolution 0 has 122 cells, produced by first subdividing each icosahedral face with aperture 3 (producing triangles), then with aperture 4 (producing 4 cells per triangle = 80 hexagons), plus 12 pentagons at vertices = 122.
IGEO7 resolution 0 has 12 cells — the 12 icosahedron vertices, all pentagons. This simpler starting point means:
- 5 extra resolution levels (0–20 vs 0–15)
- Purely hierarchical: every resolution is aperture 7 from the start
- No mixed-aperture bookkeeping

Resolution Alignment
IGEO7 and H3 resolutions do not correspond 1:1. The table below shows approximate matches by CLS (cell diameter):
| IGEO7 res | CLS | Closest H3 res | H3 avg area |
|---|---|---|---|
| 5 | ~62 km | 4 | ~86 km avg edge |
| 7 | ~8.9 km | 6 | ~36 km² |
| 9 | ~1.3 km | 8 | ~0.74 km² |
| 11 | ~181 m | 10 | ~15,000 m² |
| 13 | ~26 m | 12 | ~614 m² |
Use the Resolution Table to pick IGEO7 resolution by target CLS. For H3 users migrating workflows, matching by approximate cell diameter gives the best equivalence.
Index Format
Both use 64-bit integers with the same 3-bit-per-digit structure and the same sentinel value (7 = beyond resolution). The differences:
| IGEO7 Z7 | H3 | |
|---|---|---|
| Base cell field | 4 bits (values 0–11) | 7 bits (values 0–121) |
| Resolution digits | 20 × 3 bits | 15 × 3 bits |
| Hex string | 16 lowercase chars | 15 lowercase chars |
| Parent operation | Set last digit bits to 111 | Same |
Migration from H3 to IGEO7 does not require changes to your index storage schema — both fit in a BIGINT / uint64 column. The string format changes slightly (2-char base cell prefix vs H3's embedded resolution nibble).
Performance
| Operation | H3 | IGEO7 (DGGRID) | IGEO7 (DGGAL) |
|---|---|---|---|
| Point → cell | Very fast (pure C) | Fast (subprocess) | Very fast (native C++) |
| Cell → polygon | Very fast | Fast | Very fast |
| Neighbour lookup | Very fast | Grid-based | Fast |
| Memory footprint | Light (standalone lib) | Moderate (subprocess) | Light |
H3's standalone C library is hard to beat for raw throughput in point-indexing workloads. DGGAL (pip install dggal) closes this gap for IGEO7 by providing a native C++ implementation without subprocess overhead.
When to Choose IGEO7
Choose IGEO7 when:
- Your analysis involves density, rates, or area fractions — equal area eliminates bias
- You need more than 16 resolution levels — IGEO7 goes to 20
- You are building OGC API DGGS-compliant services
- You need centimetre-scale precision (resolutions 18–20)
- Scientific reproducibility across regions is required
Choose H3 when:
- You need maximum point-indexing throughput with minimal dependencies
- Your analysis is topology-only (nearest neighbours, containment) and area accuracy is irrelevant
- You are working within an existing H3 ecosystem (Deck.gl, Uber tooling)
Further Reading
- Equal Area — why the projection difference matters
- ISEA Projection — technical details
- Resolution Table — all IGEO7 resolutions with CLS values
- Kmoch et al. (2025). IGEO7. AGILE GIScience Series. doi:10.5194/agile-giss-6-32-2025