Agent skill

Weather Model Data Fetching

by sickn33 in sickn33/agentic-awesome-skills

Retrieve numerical weather prediction data from public AWS S3 and HTTP archives using GRIB2 inventories, byte ranges, Herbie, provider fallbacks, and verified caching.

MITAuto-check passedBackend & APIs

Install Weather Model Data Fetching

skills CLI
$ npx skills add sickn33/agentic-awesome-skills --skill weather-model-data-fetching -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install sickn33/agentic-awesome-skills weather-model-data-fetching --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/sickn33/agentic-awesome-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/weather-model-data-fetching .claude/skills/weather-model-data-fetching && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
weather-model-data-fetching
GitHub stars
47k
Used in
1 other repo
Token cost
~3k tokens
SKILL.md length
1,410 words
Files
1
Skills in repo
1,493
Repo updated
First seen
Licence
MIT

At a glance

Retrieve numerical weather prediction data from public AWS S3 and HTTP archives using GRIB2 inventories, byte ranges, Herbie, provider fallbacks, and verified caching.

  • Works in 4 steps: Reuse the project's existing fetch/cache… → Use Herbie for a supported GRIB2 model.… → Use a provider-native point or Zarr… → …
  • Tasks that involve Caching
  • SKILL.md covers Overview, When to Use This Skill, Define the Request First and Choose the Smallest Retrieval…, plus 11 more sections
  • Calls aws

What it does

Weather Model Data Fetching is an agent skill from sickn33/agentic-awesome-skills. Retrieve numerical weather prediction data from public AWS S3 and HTTP archives using GRIB2 inventories, byte ranges, Herbie, provider fallbacks, and verified caching.

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering Caching. It works with Amazon S3. The repository describes itself as: AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,400+ agentic skills. Includes… The licence is MIT.

When your agent uses it

  • Tasks that involve Caching

Example prompts

  • “/weather-model-data-fetching”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Reuse the project's existing fetch/cache abstraction when it already handles
  2. Use Herbie for a supported GRIB2 model. It discovers AWS, NOMADS, Google,
  3. Use a provider-native point or Zarr endpoint when the task needs a tiny
  4. Use direct S3 or HTTPS object access when the key is known and no suitable

What it can do on your machine

Read from SKILL.md and the folder at commit 680176d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • aws

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • registry.opendata.aws
    • herbie.readthedocs.io
    • github.com
    • nomads.ncep.noaa.gov
    • docs.aws.amazon.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Weather Model Data Fetching loads about 3k tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 1,410 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from sickn33/agentic-awesome-skills at commit 680176d, republished under its MIT licence (© sickn33). 1,410 words, ~2,981 tokens.

Download SKILL.mdSave it as .claude/skills/weather-model-data-fetching/SKILL.md (or your agent's skills folder).
name
weather-model-data-fetching
description
Retrieve numerical weather prediction data from public AWS S3 and HTTP archives using GRIB2 inventories, byte ranges, Herbie, provider fallbacks, and verified caching.
category
data
risk
safe
source
self
source_type
self
date_added
2026-09-18
author
ShianMike
tags
weather, grib2, aws-s3, herbie, noaa, nwp
tools
claude, cursor, gemini, codex

Weather Model Data Fetching

Overview

Fetch numerical weather prediction data without treating a multi-gigabyte GRIB2 file as one indivisible download. Prefer an existing project adapter or Herbie; use direct object-store byte ranges only when the supported path cannot express the request.

This skill covers transport, inventory selection, caching, and verification. It does not interpret the forecast or decide whether a model is meteorologically appropriate.

When to Use This Skill

  • A task needs GFS, GEFS, HRRR, RAP, NAM, IFS, or similar model output.
  • Data lives in a public AWS S3 bucket, NOMADS, or a public cloud mirror.
  • The input is GRIB2 and only selected variables or levels are needed.
  • A point, sounding, time series, map, or batch job needs a reliable fetch path.
  • A download is missing, partial, unexpectedly large, slow, or hard to resume.

Do not activate this skill for ordinary weather-forecast questions that do not require model files.

Define the Request First

Resolve these values before downloading:

  • model and product;
  • initialization cycle in UTC;
  • forecast hour and therefore valid time (valid = initialization + lead);
  • ensemble member when applicable;
  • variables, vertical levels, and surface fields;
  • point, region, or full-grid output;
  • cache location and when the downloaded data may be deleted.

Confirm that the cycle is complete, the forecast hour exists for that cycle, and the requested location is inside the model domain. A recent 404 often means the cycle is not published yet; step back to a completed cycle instead of retrying indefinitely.

Choose the Smallest Retrieval Route

  1. Reuse the project's existing fetch/cache abstraction when it already handles the model.
  2. Use Herbie for a supported GRIB2 model. It discovers AWS, NOMADS, Google, Azure, and other configured sources and understands their key layouts.
  3. Use a provider-native point or Zarr endpoint when the task needs a tiny spatial slice from many times or members.
  4. Use direct S3 or HTTPS object access when the key is known and no suitable adapter exists.

Do not recursively list a large public bucket to discover one run. Build the documented prefix for the model, cycle, product, forecast hour, and member, then probe that exact object and its inventory.

Use an explicit provider priority and record the provider that succeeded. A fallback must refer to the same model run, product, member, and forecast hour; never silently substitute a different forecast.

Subset GRIB2 by Inventory

GRIB2 files contain consecutive messages. A companion inventory such as .idx, .grib2.idx, or .grb2.inv records each message's starting byte.

  1. Fetch the small inventory first.
  2. Inspect its actual rows before writing a regex.
  3. Select exact variables, levels, and forecast-step records.
  4. Set each selected message's end byte to one less than the next message's start; request the final selected message through EOF when no end is known.
  5. Coalesce adjacent selected messages into one range.
  6. Issue one Range: bytes=START-END request per range. S3 does not support multiple ranges in one GetObject request.
  7. Require 206 Partial Content and a matching Content-Range. If a server answers 200, do not append the whole object as though it were a fragment.
  8. Pin the object's length and identity (ETag and/or Last-Modified) while downloading. Discard fragments if the object changes.
  9. Assemble into a temporary file, verify it with a GRIB decoder, then rename atomically into the cache.

A GRIB message contains one field over its grid. Message-range subsetting saves variables and levels, not geography. A point request still downloads the full grid for every selected message unless the provider offers a point, regional, Zarr, or other chunked endpoint.

Herbie Example

Use the current search argument; searchString is deprecated. Start from the inventory, fail on an empty match, and keep the download directory explicit.

python
from pathlib import Path

from herbie import Herbie

PRESSURE_FIELDS = (
    r":(?:HGT|TMP|RH|SPFH|UGRD|VGRD):\d+(?:\.\d+)? mb:"
)


def fetch_hrrr_pressure_run(initialization, forecast_hour, cache_dir):
    cache_dir = Path(cache_dir)
    h = Herbie(
        initialization,
        model="hrrr",
        product="prs",
        fxx=forecast_hour,
        priority=["aws", "nomads", "google", "azure"],
        save_dir=cache_dir,
        verbose=False,
    )

    selected = h.inventory(PRESSURE_FIELDS)
    if selected.empty:
        raise RuntimeError("inventory matched no pressure-level fields")

    downloaded = h.download(PRESSURE_FIELDS, errors="raise")
    path = Path(downloaded) if downloaded is not None else None
    if path is None or not path.is_file() or path.stat().st_size == 0:
        raise RuntimeError("GRIB2 subset was not materialized")

    return path, {
        "model": h.model,
        "product": h.product,
        "initialization": h.date.isoformat(),
        "forecast_hour": h.fxx,
        "valid_time": h.valid_date.isoformat(),
        "provider": h.grib_source,
        "remote_object": str(h.grib),
        "messages": len(selected),
    }

For xarray output, call h.xarray(search, ...) and handle either one xarray.Dataset or a list of incompatible GRIB hypercubes. Merge only groups whose coordinates and dimensions are compatible, and close every dataset when finished.

Public AWS S3 Diagnostics

NOAA Open Data buckets allow unsigned reads. --no-sign-request prevents the AWS CLI from loading credentials; it does not disable TLS verification.

bash
aws s3 ls --no-sign-request s3://noaa-hrrr-bdp-pds/hrrr.YYYYMMDD/conus/

aws s3api get-object --no-sign-request \
  --bucket noaa-hrrr-bdp-pds \
  --key "hrrr.YYYYMMDD/conus/hrrr.tHHz.wrfprsfFF.grib2" \
  --range "bytes=START-END" fragment.grib2

Use these commands to inspect a documented public object or reproduce one known range. For normal multi-message assembly, reuse Herbie or the project's tested downloader instead of scripting binary concatenation in shell.

Complete Sounding Contract

A pressure-level file alone may not contain a usable surface row. Before building a vertical profile, require:

  • all published isobaric levels for geopotential height, temperature, a moisture variable (dew point, relative humidity, or specific humidity), and U/V wind;
  • surface pressure and terrain or surface height;
  • 2 m temperature and moisture;
  • 10 m U/V wind.

Some providers split pressure and surface fields into separate products. Fetch and join the companion product from the same run, or reject the request with a list of missing fields. Do not fabricate a ground row or silently reduce the profile to a short mandatory-level list.

After decoding, sort pressure monotonically, remove duplicate levels, normalize units and longitude conventions, and run the consuming project's profile QC.

Show full SKILL.md (585 more words)Show less

Point and Batch Extraction

  • On one-dimensional latitude/longitude grids, labeled nearest selection may be sufficient.
  • On projected or curvilinear grids with two-dimensional coordinates, use the project's model-aware nearest-cell routine; verify the selected latitude, longitude, and distance.
  • For many points from one model hour, fetch and decode once, then reuse it.
  • For many hours, members, or regional slices, compare the GRIB route with a chunked Zarr or provider-native endpoint before scaling up.

Reliability, Cache, and Cleanup

  • Cache by provider, object key, object identity, and field selection. A filename alone is not enough provenance.
  • Retry timeouts, 408, 429, and transient 5xx responses with bounded exponential backoff and jitter; honor Retry-After.
  • Do not retry permission errors, malformed inventories, or impossible model coordinates as transient failures.
  • Bound concurrency. More range workers can increase throttling and make cancellation slower.
  • Keep partial files separate from valid cache entries and resume only when the remote object identity still matches.
  • For a one-shot render or export, isolate data in a request-specific temporary directory and remove it in finally after the derived artifact is durable.
  • For an interactive viewer, retain data until the final consumer closes. Never delete a shared user cache as request cleanup.

Measure discovery, inventory, transfer, decode, point extraction, and rendering separately. A slow end-to-end request is not evidence that GRIB decoding is the bottleneck.

Verification Checklist

  • The resolved initialization time, forecast hour, valid time, product, and member match the request.
  • The selected inventory is nonempty and contains every required field/level.
  • The response status, byte ranges, lengths, and object identity are consistent.
  • The final file is nonempty and opens with the intended GRIB decoder.
  • Decoded variables, units, level count, grid coordinates, and valid time are plausible and explicit.
  • A point result reports the actual selected grid coordinate.
  • Cancellation leaves no file that can be mistaken for a complete cache hit.
  • Cleanup preserves the requested final artifact and removes only data owned by that request.

Security & Safety Notes

  • Fetch only public datasets or resources the user is authorized to access.
  • Do not put cloud credentials in code, URLs, logs, examples, or skill files.
  • Keep certificate verification enabled; never solve TLS errors with --no-verify-ssl.
  • Validate inventory-derived ranges against the remote object length before allocating buffers or writing files.
  • Bound requested cycles, members, forecast hours, concurrency, disk usage, and retries before a large batch.
  • Follow provider usage policies and preserve required dataset attribution.

Common Pitfalls

  • No data for the newest run: The cycle is still publishing. Use the newest completed cycle and report the fallback.
  • Subset is as large as the full file: The inventory was missing, the regex was too broad, or the server ignored Range.
  • xarray returns a list: The selected messages form multiple incompatible hypercubes. Process them separately or merge only compatible groups.
  • Point extraction is still expensive: GRIB message ranges are not spatial chunks. Use a point/regional service or Zarr when available.
  • A cached file opens but has missing fields: Validate the inventory contract and object identity before accepting a cache hit.

Limitations

  • Provider key layouts, retention windows, model schedules, and Herbie templates can change; verify them against current provider documentation.
  • Variable subsetting requires a usable remote inventory. Without one, download the full object or use a different provider.
  • This skill does not validate forecast skill, scientific suitability, or proprietary-provider credentials and quotas.

Additional Resources

© sickn33, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/weather-model-data-fetching of sickn33/agentic-awesome-skills.

Open the folder on GitHubat commit 680176d

Used in 1 other repository

We found 5 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in sickn33/agentic-awesome-skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Weather Model Data Fetching next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Weather Model Data Fetching compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Weather Model Data Fetching this skillsickn33/agentic-awesome-skills47k1 repos~3kAutomated safety check: PassMIT
Stripe Projectsfossasia/eventyay1.7k5 repos~2kAutomated safety check: NotesApache-2.0
FoundatioFoundatioFx/Foundatio2.1k—~3.9kAutomated safety check: PassApache-2.0
Wp Block Themesgambitph/Stackable3513 repos~985Automated safety check: PassGPL-3.0
Wp Performancegambitph/Stackable3513 repos~1.5kAutomated safety check: PassGPL-3.0
Effect Portable Patternsmillionco/expect3.6k—~3.7kAutomated safety check: PassCustom licence

Similar skills

  • Stripe Projects

    fossasia/eventyay

    A skill your agent uses when the user wants to provision infrastructure or third-party services using Stripe Projects.

    1.7k GitHub starsUsed in 5 repos~2k tokens
    Backend & APIsAuto-check: notes
  • Foundatio

    FoundatioFx/Foundatio

    A skill your agent uses when working with Foundatio infrastructure abstractions for .NET -- caching, queuing, messaging, file storage, distributed locking, or background jobs.

    2.1k GitHub stars~3.9k tokensUpdated today
    Backend & APIsAuto-check passed
  • Wp Block Themes

    gambitph/Stackable

    A skill your agent uses when developing WordPress block themes: theme.json (global settings/styles), templates and template parts, patterns, style variations, and Site Editor troubleshooting (style…

    351 GitHub starsUsed in 3 repos~985 tokens
    Backend & APIsAuto-check passed
  • Wp Performance

    gambitph/Stackable

    A skill your agent uses when investigating or improving WordPress performance (backend-only agent): profiling and measurement (WP-CLI profile/doctor, Server-Timing, Query Monitor via REST headers)…

    351 GitHub starsUsed in 3 repos~1.5k tokens
    Backend & APIsAuto-check passed
  • Effect Portable Patterns

    millionco/expect

    Portable Effect patterns for robust promise execution. An agent skill from millionco/expect.

    3.6k GitHub stars~3.7k tokensUpdated 5 mo ago
    Backend & APIsAuto-check passed
  • FastAPI-Redis SDK Development

    redis/fastapi-redis-sdk

    Official

    Guides development on the fastapi-redis-sdk library itself - its connection lifecycle, dependency-injected caching, and async/sync bridging.

    404 GitHub stars~2.5k tokensUpdated 8 days ago
    Backend & APIsAuto-check: notes

More from sickn33/agentic-awesome-skills

All 1,493 skills in this repo
  • Liuguang Banlan UI

    sickn33/agentic-awesome-skills

    Implements an interface in one of two named color modes, iridescent white or colorful black, from a parameterized starter that reports measured color intensity.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • User Thoughts Memory

    sickn33/agentic-awesome-skills

    Saves a user's project decisions, rules and preferences into a project-local mdbase so later sessions and other agents can recover the intent.

    47k GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check passed
  • Using LWC Memory and Graphs

    sickn33/agentic-awesome-skills

    Keeps project decisions, research and verified results available across coding-agent sessions through LWC memory, a document Wiki graph and a CodeGraph code index.

    47k GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Find Complementary Founders

    sickn33/agentic-awesome-skills

    Guides an agent through assessing its own owner for cofounder fit, publishing an approved profile, and ranking complementary profiles other agents published for their owners.

    47k GitHub starsUsed in 1 repo~4.8k tokens
    Auto-check passed
  • Whatsapp Cloud API

    sickn33/agentic-awesome-skills

    Integracao com WhatsApp Business Cloud API (Meta). An agent skill from sickn33/agentic-awesome-skills.

    47k GitHub starsUsed in 2 repos~4.5k tokens
    Auto-check passed
  • Cline Pilot

    sickn33/agentic-awesome-skills

    Acts as a proxy for the Cline CLI, dispatching coding tasks one at a time, monitoring runs by hard evidence, relaying decisions to you and learning per-project preferences.

    47k GitHub starsUsed in 1 repo~4.6k tokens
    Auto-check passed

Works with

Categories

Questions about Weather Model Data Fetching

What does Weather Model Data Fetching do?

Retrieve numerical weather prediction data from public AWS S3 and HTTP archives using GRIB2 inventories, byte ranges, Herbie, provider fallbacks, and verified caching. Weather Model Data Fetching is an agent skill from sickn33/agentic-awesome-skills. Retrieve numerical weather prediction data from public AWS S3 and HTTP archives using GRIB2 inventories, byte ranges, Herbie, provider fallbacks, and verified caching.

When should I use Weather Model Data Fetching?

Weather Model Data Fetching fits situations like: tasks that involve Caching.

How do I install Weather Model Data Fetching in Claude Code?

Run `npx skills add sickn33/agentic-awesome-skills --skill weather-model-data-fetching -a claude-code`. Or copy the skill folder (skills/weather-model-data-fetching in sickn33/agentic-awesome-skills) into .claude/skills/weather-model-data-fetching in your project. Claude Code loads it when a task matches its description.

How do I install Weather Model Data Fetching in Codex?

Run `npx skills add sickn33/agentic-awesome-skills --skill weather-model-data-fetching -a codex`. Or copy the skill folder (skills/weather-model-data-fetching in sickn33/agentic-awesome-skills) into .agents/skills/weather-model-data-fetching in your project. Codex loads it when a task matches its description.

Can I use Weather Model Data Fetching in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add sickn33/agentic-awesome-skills --skill weather-model-data-fetching -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/weather-model-data-fetching, .gemini/skills/weather-model-data-fetching, .github/skills/weather-model-data-fetching and .opencode/skills/weather-model-data-fetching in your project.

What does Weather Model Data Fetching need to run?

Going by SKILL.md and its folder, Weather Model Data Fetching needs the command-line tools its instructions call (aws). Our summary lists: Python 3.

Does Weather Model Data Fetching access the network?

SKILL.md names 5 domains. As links in the text: registry.opendata.aws, herbie.readthedocs.io, github.com, nomads.ncep.noaa.gov and docs.aws.amazon.com. This is read from the text; nothing was executed.

Is Weather Model Data Fetching safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Weather Model Data Fetching use?

Weather Model Data Fetching is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Weather Model Data Fetching use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Weather Model Data Fetching?

Skills that share tags, products or a category with Weather Model Data Fetching: Stripe Projects (fossasia/eventyay, 1.7k stars), Foundatio (FoundatioFx/Foundatio, 2.1k stars), Wp Block Themes (gambitph/Stackable, 351 stars) and Wp Performance (gambitph/Stackable, 351 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Weather Model Data Fetching?

sickn33 (a GitHub user) maintains it in sickn33/agentic-awesome-skills, which has 47,379 GitHub stars. The repository holds 1,493 skills in this directory. The repository was last updated on October 9, 2026.

Source: sickn33/agentic-awesome-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.