Spatial domain | Global |
Spatial resolution | 0-240 hours: 0.25 degrees (~20km), 243-840 hours: 0.5 degrees (~40km) |
Time domain | Forecasts initialized 2020-10-01 00:00:00 UTC to Present |
Time resolution | Forecasts initialized every 24 hours. |
Forecast domain | Forecast lead time 0-840 hours (0-35 days) ahead |
Forecast resolution | Forecast step 0-240 hours: 3 hourly, 243-840 hours: 6 hourly |
⎘
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. Forecasts
are identified by an initialization time (init_time
) denoting the
start time of the model run as well as by the ensemble_member
.
Each forecast has a 3 hourly forecast step along the lead_time
dimension. This dataset contains only the 00 hour UTC initialization times
which produce the full length, 35 day forecast.
Storage for this dataset is generously provided by Source Cooperative, a Radiant Earth initiative.
min | max | units | |
---|---|---|---|
ensemble_member | 0 | 30 | realization |
init_time | 2020-10-01T00:00:00 | Present | seconds since 1970-01-01 |
latitude | -90 | 90 | degrees_north |
lead_time | 0 days 00:00:00 | 35 days 00:00:00 | seconds |
longitude | -180 | 179.75 | degrees_east |
units | dimensions | |
---|---|---|
categorical_freezing_rain_surface | 0=no; 1=yes | init_time × ensemble_member × lead_time × latitude × longitude |
categorical_ice_pellets_surface | 0=no; 1=yes | init_time × ensemble_member × lead_time × latitude × longitude |
categorical_rain_surface | 0=no; 1=yes | init_time × ensemble_member × lead_time × latitude × longitude |
categorical_snow_surface | 0=no; 1=yes | init_time × ensemble_member × lead_time × latitude × longitude |
downward_long_wave_radiation_flux_surface | W/(m^2) | init_time × ensemble_member × lead_time × latitude × longitude |
downward_short_wave_radiation_flux_surface | W/(m^2) | init_time × ensemble_member × lead_time × latitude × longitude |
expected_forecast_length | seconds | init_time |
geopotential_height_cloud_ceiling | gpm | init_time × ensemble_member × lead_time × latitude × longitude |
ingested_forecast_length | seconds | init_time × ensemble_member |
maximum_temperature_2m | C | init_time × ensemble_member × lead_time × latitude × longitude |
minimum_temperature_2m | C | init_time × ensemble_member × lead_time × latitude × longitude |
percent_frozen_precipitation_surface | % | init_time × ensemble_member × lead_time × latitude × longitude |
precipitable_water_atmosphere | kg/(m^2) | init_time × ensemble_member × lead_time × latitude × longitude |
precipitation_surface | mm/s | init_time × ensemble_member × lead_time × latitude × longitude |
pressure_reduced_to_mean_sea_level | Pa | init_time × ensemble_member × lead_time × latitude × longitude |
pressure_surface | Pa | init_time × ensemble_member × lead_time × latitude × longitude |
relative_humidity_2m | % | init_time × ensemble_member × lead_time × latitude × longitude |
temperature_2m | C | init_time × ensemble_member × lead_time × latitude × longitude |
total_cloud_cover_atmosphere | % | init_time × ensemble_member × lead_time × latitude × longitude |
valid_time | seconds since 1970-01-01 | init_time × lead_time |
wind_u_100m | m/s | init_time × ensemble_member × lead_time × latitude × longitude |
wind_u_10m | m/s | init_time × ensemble_member × lead_time × latitude × longitude |
wind_v_100m | m/s | init_time × ensemble_member × lead_time × latitude × longitude |
wind_v_10m | m/s | init_time × ensemble_member × lead_time × latitude × longitude |
Open notebook in github | Open notebook in colab |
import xarray as xr # xarray>=2025.1.2 and zarr>=3.0.4 for zarr v3 support
ds = xr.open_zarr("https://data.dynamical.org/noaa/gefs/forecast-35-day/[email protected]")
ds['temperature_2m'].sel(init_time="2025-01-01T00", latitude=0, longitude=0).max().compute()
The data values in this dataset have been rounded in their binary floating point representation to improve compression. See Klöwer et al. 2021 for more information on this approach. The exact number of rounded bits can be found in our reformatting code.
The source data is available at both 0.25-degree and 0.5-degree resolutions.
All variables—except where noted, including the 100m wind components—are derived
from a 0.25-degree grid for the first 240 hours of each forecast and from a
0.5-degree grid for the remainder. Bilinear interpolation is used to convert
0.5-degree data to a 0.25-degree grid. The original 0.5-degree values can be
retrieved by selecting every other pixel starting from offset 0 in both the
latitude and longitude dimensions (e.g. array[::2, ::2]
).