Borrowing it
Nothing to install: this file belongs to boettiger-lab/data-workflows. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/boettiger-lab/data-workflows/main/.claude/skills/raster-hexing/SKILL.mdgit clone --depth 1 https://github.com/boettiger-lab/data-workflowsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/boettiger-lab/data-workflows/raster-hexing)<a href="https://agentmods.dev/skills/boettiger-lab/data-workflows/raster-hexing"><img src="https://agentmods.dev/badge/skills/boettiger-lab/data-workflows/raster-hexing/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/boettiger-lab/data-workflows/raster-hexing"><img src="https://agentmods.dev/badge/skills/boettiger-lab/data-workflows/raster-hexing.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00094 | $0.07321 |
| Opus 5.5 | $0.00038 | $0.02928 |
| Sonnet 5.5 | $0.00019 | $0.01464 |
| Haiku 4.5 | $0.00009 | $0.00732 |
Grade A, and why
raster-hexing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 8d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 275 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Raster Hexing
Raster ingest produces COG + H3 hex only — no GeoParquet, no PMTiles. Always create the WGS84 COG first, then hex from that COG on NRP S3 (never from the original source URL).
Generating a raster workflow
cng-datasets raster-workflow \
--dataset <name> --source-url <cog-url> --bucket <bucket> \
--h3-resolution 8 --parent-resolutions "0" --value-column <band_name> \
--hex-memory 32Gi --max-parallelism 61 \
--output-dir catalog/<dataset>/k8s/<name>
Differences from vector:
- Command:
raster-workflow - Completions default to 122 (one per h0 cell). For a regional source pass
--h0-cells(H3 base-cell numbers, e.g. CONUS9,19,20,21,34,36) or--h0-subset(h0 grid positions, CONUS12,14,20,50,71,78); both run 0–121, so the wrong one validates silently and builds other cells (datasets#191, #213) - Defaults:
--h3-resolution8,--parent-resolutions "0",--hex-memory 32Gi,--max-parallelism 61 --value-column— raster band name in output (defaultvalue)--nodata— value(s) to exclude (auto from metadata); comma-separate multiple fill codes--band <n>— required for a multi-band source; adds a preprocess-cog step that subsets the band (the hex step refuses an ambiguous multi-band input, datasets#214)--hex-resampling— how pixels aggregate into each cell (sum/mean/mode/fractions/max/min, defaultmean). Picking the wrong one silently corrupts the data — see "Choosing the aggregation reducer" below. As important as--value-column.- Always creates a WGS84 COG on NRP S3 first; hex reads from that COG
Multi-tile rasters (e.g. multiple UTM zones): repeat --source-url. Adds preprocess-cog step that mosaics into one WGS84 COG:
cng-datasets raster-workflow --dataset wyoming/rap-arte \
--source-url s3://.../rap_arte_zone12.tif \
--source-url s3://.../rap_arte_zone13.tif \
--bucket public-wyoming \
--target-extent "-111.1,40.9,-104.0,45.0" --band 1 --value-column arte \
--output-dir catalog/wyoming/k8s/rap-arte
Extra options: --target-extent "xmin,ymin,xmax,ymax" (EPSG:4326 clip), --target-resolution <degrees>, --band <n> (1-indexed), --output-cog-name <key>.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 8d ago Changed · +14 lines · +2 tokens per session 16592548d422
- 24d ago Changed · +43 lines 89916da088fe
- 2mo ago Changed · +29 lines c65e821c4c3b
- 2mo ago First seen · 189 lines · 92 tokens per session scan A a061f20873ae
raster-hexing is a skill published in the GitHub repository boettiger-lab/data-workflows (5 stars, last pushed 2d ago), licensed BSD-3-Clause. It adds 94 tokens to every session and 7,321 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
raster-hexing compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| raster-hexingboettiger-lab/data-workflows | Skill | 5 | 2d ago | BSD-3-Clause | A | 94 | Claude Code |
| arboretoK-Dense-AI/scientific-agent-skills | Skill | 56k | 4d ago | MIT | A | 55 | Claude Code, Codex |
| deepspot-mK-Dense-AI/scientific-agent-skills | Skill | 56k | 4d ago | MIT | A | 70 | Claude Code |
| torchdrugK-Dense-AI/scientific-agent-skills | Skill | 56k | 4d ago | MIT | A | 64 | Claude Code |
| pyhealthK-Dense-AI/scientific-agent-skills | Skill | 56k | 4d ago | MIT | A | 84 | Claude Code, Codex |
| nemo-mbridge-perf-expert-parallel-overlapNVIDIA/skills | Skill | 3.9k | yesterday | Apache-2.0 | A | 56 | Claude Code |
| ml-training-recipesOrchestra-Research/AI-Research-SKILLs | Skill | 14k | 26d ago | MIT | A | 88 | Claude Code |