Skip to main content

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

PropertyIGEO7H3
ProjectionISEA (equal area)Gnomonic
Cell area variation0%up to ±50%
Base polyhedronIcosahedronIcosahedron
Base cells (res 0)12 pentagons122 mixed cells
AperturePure aperture 7Aperture 3+4 base, then 7
Resolution levels0–20 (21 levels)0–15 (16 levels)
Finest CLS~2.9 cm (res 20)~1 m² area (res 15)
Index size64-bit uint64-bit uint
Digit values0–6 (7 = sentinel)0–6 (7 = sentinel)
String format2-char base + octal digits15-char hex
Pentagons per resolution1212
Core libraryDGGRID (C++) / DGGALH3 (C, standalone)
Python bindingdggrid4py, pydggalh3-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

Refinement ratios across resolutions

Resolution Alignment

IGEO7 and H3 resolutions do not correspond 1:1. The table below shows approximate matches by CLS (cell diameter):

IGEO7 resCLSClosest H3 resH3 avg area
5~62 km4~86 km avg edge
7~8.9 km6~36 km²
9~1.3 km8~0.74 km²
11~181 m10~15,000 m²
13~26 m12~614 m²
Choosing a resolution

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 Z7H3
Base cell field4 bits (values 0–11)7 bits (values 0–121)
Resolution digits20 × 3 bits15 × 3 bits
Hex string16 lowercase chars15 lowercase chars
Parent operationSet last digit bits to 111Same

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

OperationH3IGEO7 (DGGRID)IGEO7 (DGGAL)
Point → cellVery fast (pure C)Fast (subprocess)Very fast (native C++)
Cell → polygonVery fastFastVery fast
Neighbour lookupVery fastGrid-basedFast
Memory footprintLight (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