| ID |
noaa-rrfs-forecast-sub-hourly-virtual
|
| Spatial domain | Continental United States |
| Spatial resolution | 3 km |
| Time domain | Forecasts initialized 2026-08-13 00:00:00 UTC to Present |
| Time resolution | Forecasts initialized every hour |
| Forecast domain | Forecast lead time 15 minutes to 18 hours ahead |
| Forecast resolution | 15 minute |
STAC (browse) · validation report
The Rapid Refresh Forecast System (RRFS) is a National Oceanic and Atmospheric Administration (NOAA) National Centers for Environmental Prediction (NCEP) convection-allowing weather forecast model with a 3 km grid, built on the Unified Forecast System. The RRFS ensemble (RRFS ENS) adds five perturbed members to this deterministic forecast, and REFS combines both with HRRR into ensemble products.
NOAA RRFS is pre-operational, so expect changes to the model data and to the structure of this dataset.
This dataset is an archive of past and present RRFS forecasts, optimized for spatial (map) access patterns. Forecasts are identified by an initialization time (init_time) denoting the start time of the model run, and step forward every 15 minutes along the lead_time dimension.
This dataset uses the native RRFS Lambert Conformal Conic projection, with spatial indexing along the x and y dimensions. The example notebook shows how to use the embedded spatial reference to select geographic areas of interest.
Note: dynamical-catalog>=1.0.1 and gribberish>=1.8.4 (or zarr>=3.2 icechunk>=2.0 gribberish>=1.8.4) are required.
| RRFS and REFS forecasts, virtual (Github) | |
| RRFS and REFS forecasts, virtual (Colab) |
import dynamical_catalog # dynamical-catalog>=1.0.1
ds = dynamical_catalog.open("noaa-rrfs-forecast-sub-hourly-virtual", chunks=None)
ds["composite_reflectivity"].sel(init_time="2026-09-16T12", lead_time="2h15min")
import dynamical_catalog # dynamical-catalog>=1.0.1
ds = dynamical_catalog.open("noaa-rrfs-forecast-sub-hourly-virtual", chunks=None)
ds["composite_reflectivity"].sel(init_time="2026-09-16T12", lead_time="2h15min")
import icechunk
import pystac
import xarray as xr
catalog = pystac.Catalog.from_file("https://stac.dynamical.org/catalog.json")
collection = catalog.get_child("noaa-rrfs-forecast-sub-hourly-virtual")
asset = collection.assets["icechunk-https"]
authorize = icechunk.containers_credentials({"s3://noaa-rrfs-ops-pds/": icechunk.s3_anonymous_credentials()})
repo = icechunk.Repository.open(
icechunk.http_storage(asset.href),
authorize_virtual_chunk_access=authorize,
)
session = repo.readonly_session("main")
ds = xr.open_zarr(session.store, chunks=None)
ds["composite_reflectivity"].sel(init_time="2026-09-16T12", lead_time="2h15min")
import icechunk
import pystac
import xarray as xr
catalog = pystac.Catalog.from_file("https://stac.dynamical.org/catalog.json")
collection = catalog.get_child("noaa-rrfs-forecast-sub-hourly-virtual")
asset = collection.assets["icechunk-https"]
authorize = icechunk.containers_credentials({"s3://noaa-rrfs-ops-pds/": icechunk.s3_anonymous_credentials()})
repo = icechunk.Repository.open(
icechunk.http_storage(asset.href),
authorize_virtual_chunk_access=authorize,
)
session = repo.readonly_session("main")
ds = xr.open_zarr(session.store, chunks=None)
ds["composite_reflectivity"].sel(init_time="2026-09-16T12", lead_time="2h15min")
| min | max | units | |
|---|---|---|---|
| init_time | 2026-08-13T00:00:00Z | Present | seconds since 1970-01-01 |
| lead_time | 900 | 64800 | seconds |
| x | -2697520.143 | 2696479.857 | m |
| y | -1587306.153 | 1586693.847 | m |
Access a variable by its name (the bold identifier, e.g. ds["categorical_freezing_rain_surface"]).
Dimensions: init_time × lead_time × y × x
| variable | units |
|---|---|
categorical_freezing_rain_surface
Categorical freezing rain (cfrzr)0=no; 1=yes
|
1 |
categorical_ice_pellets_surface
Categorical ice pellets (cicep)0=no; 1=yes
|
1 |
categorical_rain_surface
Categorical rain (crain)0=no; 1=yes
|
1 |
categorical_snow_surface
Categorical snow (csnow)0=no; 1=yes
|
1 |
composite_reflectivity
Maximum/Composite radar reflectivity (refc)No echo is stored as -20 dBZ.
|
dBZ |
derived_radar_reflectivity_1000m
Derived radar reflectivity (refd)-20 dBZ is the source's no-echo floor: those cells mean no echo was detected, not a measured value.
|
dBZ |
derived_radar_reflectivity_4000m
Derived radar reflectivity (refd)-20 dBZ is the source's no-echo floor: those cells mean no echo was detected, not a measured value.
|
dBZ |
dew_point_temperature_2m
2 metre dewpoint temperature (2d)
|
degree_Celsius |
echo_top
Echo top (retop)NaN where no radar echo was detected.
|
m |
freezing_rain_run_total_surface
Freezing Rain (frzr)Accumulated from the forecast initialization time to this step.
|
kg m-2 |
frozen_precipitation_run_total_surface
Graupel (snow pellets) precipitation (tgrp)Accumulated from the forecast initialization time to this step.
|
kg m-2 |
geopotential_height_cloud_base
Geopotential height (gh)NaN where no cloud was detected.
|
m |
geopotential_height_cloud_ceiling
Geopotential height (gh)NaN where no cloud ceiling was detected.
|
m |
geopotential_height_cloud_top
Geopotential height (gh)NaN where no cloud top was detected.
|
m |
geopotential_height_surface
Geopotential height (gh)
|
m |
instantaneous_downward_long_wave_radiation_flux_surface
Surface downward long-wave radiation flux (sdlwrf)
|
W m-2 |
instantaneous_downward_short_wave_radiation_flux_surface
Surface downward short-wave radiation flux (sdswrf)
|
W m-2 |
instantaneous_upward_long_wave_radiation_flux_surface
Surface upward long-wave radiation flux (sulwrf)
|
W m-2 |
instantaneous_upward_short_wave_radiation_flux_surface
Surface upward short-wave radiation flux (suswrf)
|
W m-2 |
percent_frozen_precipitation_surface
Percent frozen precipitation (cpofp)NaN where precipitation is absent or too light to diagnose a frozen fraction.
|
percent |
precipitation_rate_surface
Precipitation rate (prate)
|
kg m-2 s-1 |
pressure_reduced_to_mean_sea_level
Pressure reduced to MSL (prmsl)
|
Pa |
pressure_surface
Surface pressure (sp)
|
Pa |
specific_humidity_2m
Specific humidity (q)
|
1 |
temperature_2m
2 metre temperature (2t)
|
degree_Celsius |
total_precipitation_run_total_surface
Total precipitation (tp)Accumulated from the forecast initialization time to this step.
|
kg m-2 |
total_snow_precipitation_run_total_surface
Total snow precipitation (tsnowp)Accumulated from the forecast initialization time to this step.
|
kg m-2 |
total_snowfall_run_total_surface
Total snowfall (asnow)Accumulated from the forecast initialization time to this step.
|
m |
updraft_helicity_5000_2000m
Updraft Helicity (uphl)
|
m2 s-2 |
vertically_integrated_liquid_atmosphere
Vertically-integrated liquid (veril)
|
kg m-2 |
visibility_surface
Visibility (vis)
|
m |
visible_beam_downward_solar_flux_surface
Visible Beam Downward Solar Flux (vbdsf)Downward direct-beam solar flux in the ultraviolet and visible bands at the surface.
|
W m-2 |
visible_diffuse_downward_solar_flux_surface
Visible Diffuse Downward Solar Flux (vddsf)Downward diffuse solar flux in the ultraviolet and visible bands at the surface.
|
W m-2 |
wind_gust_surface
Wind speed (gust) (gust)
|
m s-1 |
wind_u_10m
10 metre U wind component (10u)Velocity along the model grid's x dimension, not eastward velocity.
|
m s-1 |
wind_u_80m
80 metre U wind component (80u)Velocity along the model grid's x dimension, not eastward velocity.
|
m s-1 |
wind_v_10m
10 metre V wind component (10v)Velocity along the model grid's y dimension, not northward velocity.
|
m s-1 |
wind_v_80m
80 metre V wind component (80v)Velocity along the model grid's y dimension, not northward velocity.
|
m s-1 |
Dataset licensed under CC BY 4.0.
NOAA NWS NCEP RRFS data processed by dynamical.org from NOAA Open Data Dissemination archives.
Or NOAA RRFS from dynamical.org.
The source grib files this archive is constructed from are provided by NOAA Open Data Dissemination (NODD) and accessed from the AWS Open Data Registry.
Storage for this dataset is generously provided by AWS Open Data.
This dataset is stored in Zarr format, which splits each variable into a grid of chunks — the smallest unit read from storage. When possible, aligning your reads with this dataset's chunk grid can significantly improve data access speed.
The element count and coordinate span of this dataset:
| dimension | chunk |
|---|---|
| init_time | 1 (1 hour) |
| lead_time | 1 (15 minutes) |
| y | 1059 (3177 km) |
| x | 1799 (5397 km) |
| uncompressed | 14.5 MiB |
Review the validation report for variable availability, missing data, known quirks, fill values, value distributions, and sample plots.