| Spatial domain | Global |
| Spatial resolution | 0.25 degrees (~20km) |
| Time domain | Forecasts initialized 2020-10-01 00:00:00 UTC to Present |
| Time resolution | Forecasts initialized every 6 hours |
| Forecast domain | Forecast lead time 0-240 hours ahead |
| Forecast resolution | Forecast step 3 hourly |
STAC (browse) · validation report
The Global Ensemble Forecast System (GEFS) is a National Oceanic and Atmospheric Administration (NOAA) National Centers for Environmental Prediction (NCEP) weather forecast model. GEFS creates 31 separate forecasts (ensemble members) to describe the range of forecast uncertainty.
This dataset is an archive of past and present GEFS forecasts at 0.25 degree resolution, optimized for spatial (map) access patterns. Forecasts are identified by an initialization time (init_time) denoting the start time of the model run as well as by the ensemble_member, and step forward 3 hourly along the lead_time dimension out to 10 days.
Note: dynamical-catalog>=0.8.0 (or zarr>=3.2 icechunk>=2.0 gribberish>=1.5) is required.
import dynamical_catalog # dynamical-catalog>=0.8.0
ds = dynamical_catalog.open("noaa-gefs-forecast-10-day-0-25-degree-virtual", chunks=None)
ds["temperature_2m"].sel(init_time="2025-01-01T00", lead_time="24h").mean("ensemble_member")
import icechunk
import pystac
import xarray as xr
catalog = pystac.Catalog.from_file("https://stac-staging.dynamical.org/catalog.json")
collection = catalog.get_child("noaa-gefs-forecast-10-day-0-25-degree-virtual")
asset = collection.assets["icechunk-https"]
authorize = icechunk.containers_credentials({"s3://noaa-gefs-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["temperature_2m"].sel(init_time="2025-01-01T00", lead_time="24h").mean("ensemble_member")
| min | max | units | |
|---|---|---|---|
| ensemble_member | 0 | 30 | 1 |
| init_time | 2020-10-01T00:00:00Z | Present | seconds since 1970-01-01 |
| latitude | -90 | 90 | degree_north |
| lead_time | 0 | 864000 | seconds |
| longitude | -180 | 179.75 | degree_east |
Access a variable by its name (the bold identifier, e.g. ds["categorical_freezing_rain_surface"]).
Dimensions: init_time × ensemble_member × lead_time × latitude × longitude
| variable | units |
|---|---|
categorical_freezing_rain_surface
Categorical freezing rain (cfrzr)
|
1 |
categorical_ice_pellets_surface
Categorical ice pellets (cicep)
|
1 |
categorical_rain_surface
Categorical rain (crain)
|
1 |
categorical_snow_surface
Categorical snow (csnow)
|
1 |
convective_available_potential_energy_180_0mb
Convective available potential energy (cape)Energy released by a parcel lifted from the most unstable of six 30 hPa layers in the lowest 180 hPa, rather than from one parcel averaged over that depth.
|
J kg-1 |
convective_available_potential_energy_surface
Convective available potential energy (cape)
|
J kg-1 |
convective_inhibition_180_0mb
Convective inhibition (cin)Negative where there is inhibition and at or near zero where there is none.
|
J kg-1 |
convective_inhibition_surface
Convective inhibition (cin)Negative where there is inhibition and at or near zero where there is none.
|
J kg-1 |
dew_point_temperature_2m
2 metre dewpoint temperature (2d)
|
degree_Celsius |
downward_long_wave_radiation_flux_surface
Surface downward long-wave radiation flux (sdlwrf)Average value in the last 6 hour period (lead times 6, 12, 18, ... hours) or 3 hour period (lead times 3, 9, 15, ... hours).
|
W m-2 |
downward_short_wave_radiation_flux_surface
Surface downward short-wave radiation flux (sdswrf)Average value in the last 6 hour period (lead times 6, 12, 18, ... hours) or 3 hour period (lead times 3, 9, 15, ... hours).
|
W m-2 |
geopotential_height_cloud_ceiling
Geopotential height (gh)Values near 20,000m mark no cloud ceiling. Interpolation in the source mixes the no data value with real ceiling heights, so unusable values span a range rather than one value and are not converted to NaN. Mask values above 19,000m.
|
m |
ice_thickness_surface
Ice thickness (icetk)
|
m |
latent_heat_flux_surface
Latent heat flux (lhf)Average value in the last 6 hour period (lead times 6, 12, 18, ... hours) or 3 hour period (lead times 3, 9, 15, ... hours).
|
W m-2 |
maximum_temperature_2m
Maximum temperature (tmax)Maximum value in the last 6 hour period (lead times 6, 12, 18, ... hours) or 3 hour period (lead times 3, 9, 15, ... hours).
|
degree_Celsius |
minimum_temperature_2m
Minimum temperature (tmin)Minimum value in the last 6 hour period (lead times 6, 12, 18, ... hours) or 3 hour period (lead times 3, 9, 15, ... hours).
|
degree_Celsius |
percent_frozen_precipitation_surface
Percent frozen precipitation (cpofp)Negative values mark no precipitation. Interpolation in the source mixes the no data value with real percentages, so unusable values span a range rather than one value and are not converted to NaN. Mask values < -0.1.
|
percent |
precipitable_water_atmosphere
Precipitable water (pwat)
|
kg m-2 |
pressure_reduced_to_mean_sea_level
Pressure reduced to MSL (prmsl)
|
Pa |
pressure_reduced_to_mean_sea_level_eta_model
MSLP (Eta model reduction) (mslet)Reduced to mean sea level by the Eta model method, unlike pressure_reduced_to_mean_sea_level in this dataset.
|
Pa |
pressure_surface
Surface pressure (sp)
|
Pa |
relative_humidity_2m
2 metre relative humidity (2r)
|
percent |
sensible_heat_flux_surface
Sensible heat flux (shf)Average value in the last 6 hour period (lead times 6, 12, 18, ... hours) or 3 hour period (lead times 3, 9, 15, ... hours).
|
W m-2 |
snow_thickness_surface
Snow depth (sde)NaN over open water.
|
m |
snow_water_equivalent_surface
Snow depth water equivalent (sd)NaN over open water.
|
m |
soil_temperature_0_10cm
Soil temperature (sot)NaN over water.
|
degree_Celsius |
storm_relative_helicity_3000_0m
Storm relative helicity (hlcy)Uses a right-moving storm motion in both hemispheres, so southern hemisphere values are positive-mean rather than mirrored. Some source values reach magnitudes near 100,000 m2 s-2, far above the roughly 1,500 m2 s-2 physical ceiling for this quantity. Mask absolute values above 2,000.
|
m2 s-2 |
temperature_2m
2 metre temperature (2t)
|
degree_Celsius |
total_cloud_cover_atmosphere
Total cloud cover (tcc)Average value in the last 6 hour period (lead times 6, 12, 18, ... hours) or 3 hour period (lead times 3, 9, 15, ... hours).
|
percent |
total_precipitation_surface
Total precipitation (tp)Total accumulated in the last 6 hour period (lead times 6, 12, 18, ... hours) or 3 hour period (lead times 3, 9, 15, ... hours).
|
kg m-2 |
upward_long_wave_radiation_flux_surface
Surface upward long-wave radiation flux (sulwrf)Average value in the last 6 hour period (lead times 6, 12, 18, ... hours) or 3 hour period (lead times 3, 9, 15, ... hours).
|
W m-2 |
upward_long_wave_radiation_flux_top_of_atmosphere
Upward long-wave radiation flux (ulwrf)Average value in the last 6 hour period (lead times 6, 12, 18, ... hours) or 3 hour period (lead times 3, 9, 15, ... hours).
|
W m-2 |
upward_short_wave_radiation_flux_surface
Surface upward short-wave radiation flux (suswrf)Average value in the last 6 hour period (lead times 6, 12, 18, ... hours) or 3 hour period (lead times 3, 9, 15, ... hours).
|
W m-2 |
visibility_surface
Visibility (vis)Clipped at the maximum visibility this field encodes, about 24 km, where a large fraction of cells sit. The true visibility there is at least that far, not absent.
|
m |
volumetric_soil_moisture_0_10cm
Volumetric soil moisture (vsw)NaN over water. Over permanent land ice the value is a placeholder rather than soil moisture: near 1 on fully ice-covered cells and above about 0.5 where ice partly covers the cell.
|
1 |
wind_gust_surface
Wind speed (gust) (gust)
|
m s-1 |
wind_u_10m
10 metre U wind component (10u)
|
m s-1 |
wind_v_10m
10 metre V wind component (10v)
|
m s-1 |
Dataset licensed under CC BY 4.0.
NOAA NWS NCEP GEFS data processed by dynamical.org from NOAA Open Data Dissemination archives.
Or NOAA GEFS 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.
Four variables were added by the source after the archive begins and are empty before those dates:
pressure_reduced_to_mean_sea_level_eta_model.visibility_surface, percent_frozen_precipitation_surface and
geopotential_height_cloud_ceiling.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 (6 hours) |
| ensemble_member | 1 |
| lead_time | 1 (3 hours) |
| latitude | 721 (180.25°) |
| longitude | 1440 (360°) |
| uncompressed | 7.9 MiB |
Review the validation report for variable availability, missing data, known quirks, fill values, value distributions, and sample plots.