NBM forecast guidance
Available since v0.20.0 as noaa:nbm. The National Blend of Models is NOAA's
statistically blended, bias-corrected forecast guidance, issued hourly and
built from many models rather than run as one. Its GRIB2 core output lives in
the anonymous noaa-nbm-grib2-pds S3 bucket as
blend.YYYYMMDD/HH/core/blend.tHHz.core.fFFF.<region>.grib2, one whole file
per run, forecast hour, and region, each beside a .grib2.idx sidecar. No AWS
credentials or SDK are needed. The adapter shares its run selection with
HRRR; read that page's explanation of runs, cycles, and valid
times first.
Runs, cycles, and valid times
NBM runs every hour; cycle (required) names the run's UTC hour, 0 to 23.
The query window selects runs by initialization time, inclusive, and
spans at most one day; a bare date as both bounds is that whole day and
selects its cycle run. A window containing no cycle initialization is
rejected before any request.
Times are UTC
Timestamps without a timezone are treated as UTC, including queries built
directly in Python; explicit offsets are converted to UTC. Both bounds are
inclusive. A date alone as the end means the last instant of that UTC day,
so a window from 2024-05-07 to 2024-05-07 is that whole day; give the
end a time to stop earlier. See time and place.
forecast_hour (required) is an integer, a list, or a comma-separated string
from 1 to 264; there is no hour 0. Which hours a run publishes depends on the
cycle, so the adapter does not encode the schedule: an hour the run lacks is
reported by name after the listing. Observed for the CONUS files of
2024-05-06:
| Cycles | Hours |
|---|---|
| 00, 12 UTC | Hourly to 36, then every 3 hours to 192 |
| 06, 18 UTC | Hourly to 36, every 3 hours to 192, then every 6 hours to 264 |
| 01, 13 UTC | Hourly to 173 |
| 07, 19 UTC | Hourly to 152 |
| Every other cycle | Hourly to 36 or 37, every 3 hours to about 190, then every 6 hours to about 262, ending on a synoptic valid time |
Asset times record each file's valid time, initialization plus forecast hour.
Regions and sizes
region |
Grid | Size (2024-05-06 20Z, f001) |
|---|---|---|
co (default) |
2.5 km Lambert conformal CONUS, 2345 × 1597 points | 171 MB |
ak |
Alaska | 52 MB |
hi |
Hawaii | 6 MB |
pr |
Puerto Rico | about 3 MB |
gu |
Guam | 0.6 MB |
The qmd percentile files and the text bulletins are out of scope. A CONUS
hour holds 300 messages, so whole-file downloads add up fast: prefer
messages. variables, text, and geographic constraints are rejected because
the server cannot subset the files.
Fetching selected messages
messages fetches only the GRIB2 messages you name, as byte ranges of the
object, exactly as the HRRR guide
describes. NBM index lines carry a further text for ensemble statistics and
probability thresholds, so TMP:2 m above ground names the value alone and
TMP:2 m above ground:1 hour fcst:ens std dev names its spread. Selectors
observed in the 2024-05-06 20Z CONUS f001 file:
| Field | messages |
|---|---|
| 2 m temperature | TMP:2 m above ground |
| 2 m dewpoint | DPT:2 m above ground |
| 1-hour precipitation | APCP:surface:0-1 hour acc fcst |
uv run usdata fetch noaa:nbm \
--start 2024-05-06T20:00Z --end 2024-05-06T20:00Z \
-p cycle=20 -p forecast_hour=1,2,3 -p messages="TMP:2 m above ground" --dry-run
Each 2 m temperature message is about 1.5 MB of the 171 MB file. The fetched file is the messages concatenated, which is itself a valid GRIB2 file, and its lockfile entry pins the byte ranges and the object's ETag (ADR 0028).
Reading fields
The grib extra opens a file with FetchedAsset.open_grib2(select=...) as an
xarray Dataset; a file fetched with messages is already a selection and
opens without select. The CONUS grid is Lambert conformal, so the reader
attaches two-dimensional latitude and longitude coordinates of shape
(1597, 2345); longitudes use the 0–360 convention. The 2 m temperature opens
as 2t in kelvin. See the reader reference for the
extra's platform support.
Archive coverage
The bucket's day prefixes begin on 2020-05-18, but the core/ layout this
adapter reads begins with the 12 UTC run of 2020-09-29; earlier runs hold a
grib2/ layout of master files that is not reachable here. Windows before
that run are rejected before any request. The
NODD registry entry documents
public cloud access, and the
NBM product page describes the blend.
See the service research notes for dated upstream probes.
Metadata sources
Every value in the catalog entry's resolution, cadence, citation, terms, variables, and limits comes from one of these pages. A field the agency does not publish is left empty rather than estimated.
- Resolution: the 2345 × 1597 Lambert grid at 2.54 km, read from a fetched CONUS message with ecCodes on 2026-09-16, and the NBM product page.
- Updates, citation, and terms: the NODD registry entry and the NOAA Open Data Dissemination statement it quotes.
- Forecast-hour schedule: bounded listings of every cycle of
blend.20240506/on 2026-09-16, tabulated above. - Variables: the
messagestable above. A file holds hundreds of fields, so the entry lists only the ones this guide and the example use. - Longest query window:
MAX_WINDOWinusdata.providers.noaa.hrrr, which this adapter shares throughModelRuns. - Latency is empty: NODD states no lag between a run's initialization and its appearance.
Reference
noaa:nbm · Released · Included since usdata 0.20. National Blend of Models.
At a glance
- Files: GRIB2
- Selection: Regional core files, whole or by named GRIB2 message, chosen by run initialization window, cycle hour, forecast hours, and region
- Required inputs: Both timestamps, cycle, and forecast_hour
- Open locally:
usdata[grib]· Reader guide - On usdata.dev: NBM forecast guidance, with a walkthrough
Parameters
Pass these as --param name=value to the CLI, as params: entries in a manifest, or as keyword arguments to build_query.
| Parameter | Meaning |
|---|---|
cycle |
Required UTC initialization hour of the run, 0 to 23. |
forecast_hour |
Required forecast hour(s): an integer, list, or comma-separated string, 1 to 264; hourly to 36, then every 3 hours, then every 6, on a schedule that varies by cycle. |
messages |
Optional GRIB2 messages to fetch instead of the whole file, spelled as the object's wgrib2 .idx sidecar spells them: 'SHORTNAME:level text', such as 'TMP:2 m above ground', with an optional ':step text'; one value, a list, or a comma-separated string. Short names are upper case and both fields match exactly. |
region |
Grid: co (default, 2.5 km CONUS), ak (Alaska), hi (Hawaii), pr (Puerto Rico), or gu (Guam). |
Variables
| Variable | Units | Meaning |
|---|---|---|
2t |
K | 2 m temperature |
2d |
K | 2 m dewpoint temperature |
tp |
kg/m2 | Total precipitation accumulated over the step |
Catalog facts
- Availability: since 0.20
- Domain: Weather models
- Spatial resolution: 2.5 km Lambert conformal CONUS grid, 2345 x 1597 points; separate Alaska, Hawaii, Puerto Rico, and Guam grids
- Temporal resolution: Hourly runs; forecast hours hourly to 36, then every 3 hours to about 190, then every 6 hours to 264, on a schedule that varies by cycle
- Updates: Hourly
- Longest query window: 1 day
- Terms of use: https://www.noaa.gov/information-technology/open-data-dissemination
- Citation: NOAA National Blend of Models (NBM) was accessed on [date] from https://registry.opendata.aws/noaa-nbm
- Catalog date range: 2020-09-29 to open-ended
- Coverage varies by station, product, and date; the range above does not guarantee observations.
- Upstream documentation
- License: US Government Work (public domain)
- Transport:
s3 - Adapter:
usdata.providers.noaa.nbm:Nbm