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​