GFS Archive#
Archived forecasts from NOAA’s Global Forecast System (GFS) are available via NCAR’s Research Data Archive (specifically from the primary variable set and the secondary variable set.
Currently, data from the following grib typeOfLevel filters are available:
isobaricInhPasee available pressure levels belowsurface, where variables withstepTypeofaccumoravgare prefixed in ufs2arco with those labels (e.g., instead oftpfor total precipitation, look foraccum_tp).heightAboveGround, where we append the height to any variables that do not have the height in their name (e.g.,uatlevel=80gets renamed tou80)
Available Pressure Levels#
Warning
Not all variables are available at all of these levels. Eventually, we hope to document what’s available for each variable, but until then, go for trial and error (unavailable levels will be filled with NaNs), or refer to the original data source links above.
1 |
2 |
3 |
5 |
7 |
10 |
15 |
20 |
30 |
40 |
50 |
70 |
100 |
125 |
150 |
175 |
200 |
225 |
250 |
275 |
300 |
325 |
350 |
375 |
400 |
425 |
450 |
475 |
500 |
525 |
550 |
575 |
600 |
625 |
650 |
675 |
700 |
725 |
750 |
775 |
800 |
825 |
850 |
875 |
900 |
925 |
950 |
975 |
1000 |
Available Variables#
Note
There are some variables are available during some years but not others. For now, only variables that are available during the entirety of 2015-2024 are available.
Variable |
Long Name |
Forecast Only |
|---|---|---|
|
Sunshine Duration |
False |
|
Convective precipitation (water) accumulated over forecast |
True |
|
Total Precipitation accumulated over forecast |
True |
|
Water runoff accumulated over forecast |
True |
|
2 metre Apparent temperature |
False |
|
Time-mean forecast albedo |
True |
|
Time-mean Clear sky UV-B downward solar flux |
True |
|
Time-mean Categorical freezing rain |
True |
|
Time-mean Categorical ice pellets |
True |
|
Time-mean Convective precipitation rate |
True |
|
Time-mean Categorical rain |
True |
|
Time-mean Categorical snow |
True |
|
Time-mean UV-B downward solar flux |
True |
|
Time-mean Ground heat flux |
True |
|
Time-mean Instantaneous eastward gravity wave surface stress |
True |
|
Time-mean Instantaneous northward gravity wave surface stress |
True |
|
Time-mean surface sensible heat flux |
True |
|
Time-mean Precipitation rate |
True |
|
Time-mean Surface downward long-wave radiation flux |
True |
|
Time-mean Surface downward short-wave radiation flux |
True |
|
Time-mean surface latent heat flux |
True |
|
Time-mean Surface upward long-wave radiation flux |
True |
|
Time-mean Surface upward short-wave radiation flux |
True |
|
Time-mean U-component of atmospheric surface momentum flux |
True |
|
Time-mean V-component of atmospheric surface momentum flux |
True |
|
Convective available potential energy |
False |
|
Convective inhibition |
False |
|
Plant canopy surface water |
False |
|
Percent frozen precipitation |
False |
|
2 metre dewpoint temperature |
False |
|
Field Capacity |
False |
|
Geopotential height |
False |
|
Wind speed (gust) |
False |
|
Haines Index |
False |
|
Surface lifted index |
False |
|
Best (4-layer) lifted index |
False |
|
Land-sea mask |
False |
|
MSLP (Eta model reduction) |
False |
|
Orography |
False |
|
80 metre Pressure |
False |
|
Pressure reduced to MSL |
False |
|
Specific humidity |
False |
|
80 metre Specific humidity |
False |
|
2 metre relative humidity |
False |
|
Snow depth |
False |
|
Water equivalent of accumulated snow depth (deprecated) |
False |
|
2 metre specific humidity |
False |
|
Sea ice area fraction |
False |
|
Sea ice thickness |
False |
|
Surface pressure |
False |
|
Temperature |
False |
|
100 metre Temperature |
False |
|
2 metre temperature |
False |
|
80 metre Temperature |
False |
|
Temperature at surface |
False |
|
2 metre Maximum temperature |
True |
|
2 metre Minimum temperature |
True |
|
U component of wind |
False |
|
10 metre U wind component |
False |
|
100 metre U wind component |
False |
|
80 metre U component of wind |
False |
|
V component of wind |
False |
|
10 metre V wind component |
False |
|
100 metre V wind component |
False |
|
80 metre V component of wind |
False |
|
Vertical velocity |
False |
|
Wilting Point |
False |
Temporally Accumulated Variables#
Variables that are accumulated over a specific period have been prepended with
"accum_".
To be specific, reading these fields with xarray + cfgrib
might look something like this:
import xarray as xr
ds = xr.open_dataset(
"mygribfile.grib2",
engine="cfgrib",
decode_timedelta=True,
filter_by_keys={
"typeOfLevel": "surface",
"stepType": "accum",
},
)
All variable names with this stepType are prepended with "accum_" within ufs2arco
(see e.g., "accum_tp" in the table above).
For these variables, an additional option can be provided to read different accumulation
periods.
For example, if we were reading data from forecast hour 6, we could
modify the filter_by_keys option above to read
surface variables accumulated from the forecast initialization to hour 6
by providing the stepRange option:
filter_by_keys={
"typeOfLevel": "surface",
"stepType": "accum",
"stepRange": "0-6"
}
or, for example when reading HRRR data we could read the accumulation over the previous hour as so,
filter_by_keys={
"typeOfLevel": "surface",
"stepType": "accum",
"stepRange": "5-6"
}
The default behavior for xarray+cfgrib (which ufs2arco uses internally) appears
to grab the accumulation over the full forecast period.
However, to provide a different accumulation period for the stepRange argument, add
the accum_hrs to the yaml recipe. For example with accumulated
total precipitation,
accum_hrs:
accum_tp: 1
This would grab the total precipitation averaged over the most recent forecast
hour.
So, at forecast hour 6, this is the same as providing {"stepRange":"5-6"}
when reading a single grib file.