| Spatial domain | Global |
| Spatial resolution | 0.25 degrees (~20km) |
| Time domain | 2020-10-01 00:00:00 UTC to Present |
| Time resolution | 3 hours |
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 analysis dataset is an archive of the model's best estimate of past weather, optimized for spatial (map) access patterns. It is created by concatenating the shortest available step of each historical forecast to provide a dataset with dimensions time, latitude, and longitude.
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-analysis-0-25-degree-virtual", chunks=None)
ds["temperature_2m"].sel(time="2025-01-01T00")
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-analysis-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(time="2025-01-01T00")
| min | max | units | |
|---|---|---|---|
| latitude | -90 | 90 | degree_north |
| longitude | -180 | 179.75 | degree_east |
| time | 2020-10-01T00:00:00Z | Present | seconds since 1970-01-01 |
Access a variable by its name (the bold identifier, e.g. ds["categorical_freezing_rain_surface"]).
Dimensions: 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 (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC).
|
W m-2 |
downward_short_wave_radiation_flux_surface
Surface downward short-wave radiation flux (sdswrf)Average value in the last 6 hour period (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC).
|
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 (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC).
|
W m-2 |
maximum_temperature_2m
Maximum temperature (tmax)Maximum value in the last 6 hour period (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC).
|
degree_Celsius |
minimum_temperature_2m
Minimum temperature (tmin)Minimum value in the last 6 hour period (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC).
|
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 (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC).
|
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 (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC).
|
percent |
total_precipitation_surface
Total precipitation (tp)Total accumulated in the last 6 hour period (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC).
|
kg m-2 |
upward_long_wave_radiation_flux_surface
Surface upward long-wave radiation flux (sulwrf)Average value in the last 6 hour period (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC).
|
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 (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC).
|
W m-2 |
upward_short_wave_radiation_flux_surface
Surface upward short-wave radiation flux (suswrf)Average value in the last 6 hour period (00, 06, 12, 18 UTC) or 3 hour period (03, 09, 15, 21 UTC).
|
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.
GEFS starts a new model run every 6 hours and dynamical.org has created this analysis by concatenating the shortest usable forecast step of each run along the time dimension. Instantaneous variables are read from forecast hour 0 or 3, and variables that describe a preceding window (accumulations, averages and window maxima and minima) are read from forecast hour 3 or 6.
Only the control member is used.
This dataset reads the 0.25 degree pgrb2s files, which carry a subset of GEFS variables at
the model's highest available resolution.
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:
visibility_surface, percent_frozen_precipitation_surface and
geopotential_height_cloud_ceiling.pressure_reduced_to_mean_sea_level_eta_model.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 |
|---|---|
| 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.