How to use H3Split.
The tool does one thing: given a list of H3 cells at some resolution, return every child cell at a finer resolution. Here are the details that are worth knowing.
Quick start
- Paste your H3 cell IDs into the top box.
- Pick the target resolution (default is 9).
- Press Extract children → or hit ⌘ + ↵.
- Copy the output, or download it as
.txtor.csv.
Input format
The parser accepts cell IDs separated by anything that isn't a hex character — newlines, commas, spaces, tabs, semicolons all work. Mixed casing is fine; H3Split lowercases everything before parsing.
Each cell ID is a 15-character hexadecimal string, e.g. 882a100d61fffff. If you have cells from a database export with extra quoting, trailing commas, or SQL-style tuples, paste them in — the parser will pull out everything that parses as a valid H3 cell.
// All of these parse the same way:
882a100d61fffff
882a100d65fffff
'882a100d61fffff', '882a100d65fffff'
882a100d61fffff, 882a100d65fffff
882a1072c7fffff
Resolution rules
The target resolution must be strictly greater than every input cell's resolution. A resolution-8 parent has children at 9, 10, 11, … up to 15. Asking for children at an equal or coarser resolution doesn't make sense and the tool will skip those cells (with an inline notice telling you which ones).
H3Split currently caps the target at resolution 12 to keep output sizes practical. A resolution-6 cell has about 117,000 children at resolution 12 — most browsers handle this fine, but output beyond that gets unwieldy.
| Parent res | → Target res | Children per parent |
|---|---|---|
| N | N + 1 | 7 |
| N | N + 2 | 49 |
| N | N + 3 | 343 |
| N | N + 4 | ~2,401 |
| N | N + 5 | ~16,807 |
(The "approximately" is because of H3's aperture-7 subdivision — the deeper you go, the more edge effects accumulate. For most work, assume 7k.)
Output formats
Plain text
The Download .txt button saves a one-cell-per-line file, in the order the parents were given. This is the format most SQL loaders and pandas.read_csv(header=None) expect.
CSV
The Download .csv button writes a two-column file: parent,child. Useful when you need to join children back to parents in SQL or a notebook.
parent,child
882a100d61fffff,892a100d607ffff
882a100d61fffff,892a100d60fffff
882a100d61fffff,892a100d617ffff
882a100d61fffff,892a100d61fffff
...
Keyboard shortcuts
| Shortcut | Action |
|---|---|
⌘ + ↵ / Ctrl + ↵ | Run extraction |
Tab | Move between fields |
Common pitfalls
Invalid cell IDs
The parser silently drops anything that isn't a 15-character hex string, but h3.isValidCell still runs on each candidate. A 15-character string of random hex probably won't be a valid H3 index — the function checks internal structure (base cell, resolution encoding, trailing bits). Skipped cells show up in the error line.
Pentagon cells
H3 has 12 pentagon cells on each resolution (artifacts of mapping a hex grid onto a sphere — the pentagons sit where regular icosahedron vertices land, mostly over the oceans). Pentagons have 5 or 6 children instead of 7. H3Split handles them correctly, so your child counts occasionally come out one or two short of the pure 7k math — that's not a bug.
Running out of memory
Browsers can comfortably hold a few hundred thousand strings in a textarea. Beyond that, use the CSV download rather than copy-pasting from the output pane. If you're starting from very coarse parents (resolution 0–3) going to very fine targets, consider running the extraction in multiple batches.
Doing this in code instead
If you're building a pipeline rather than doing a one-off, you probably want to call h3 directly. The one-liner equivalents:
JavaScript / Node
import { cellToChildren } from 'h3-js';
const children = cellToChildren('882a100d61fffff', 9);
Python
import h3
children = h3.cell_to_children('882a100d61fffff', 9)
Snowflake
SELECT H3_CELL_TO_CHILDREN('882a100d61fffff', 9);
DuckDB (with the h3 extension)
SELECT h3_cell_to_children('882a100d61fffff'::h3index, 9);
Privacy & data
Everything runs in your browser. The h3-js library is loaded once from jsdelivr; after that, no network requests leave your machine for cell data. See the privacy policy for the full details, including what Google AdSense collects for the ads on this page.