HRRR Archive#
Archived forecasts from NOAA’s High Resolution Rapid Refresh (HRRR) are available via AWS.
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)
Note that 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.
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.
50 |
75 |
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 |
|---|---|
|
Water equivalent of accumulated snow depth (deprecated) accumulated over forecast |
|
Total Precipitation accumulated over forecast |
|
Boundary layer height |
|
Convective available potential energy |
|
Categorical freezing rain |
|
Categorical ice pellets |
|
Convective inhibition |
|
Percent frozen precipitation |
|
Categorical rain |
|
Categorical snow |
|
2 metre dewpoint temperature |
|
Geopotential height |
|
Wind speed (gust) |
|
Land-sea mask |
|
Time-maximum 10 metre wind speed |
|
MSLP (MAPS System Reduction) |
|
Orography |
|
Precipitation rate |
|
Pressure reduced to MSL |
|
Specific humidity |
|
Maximum/Composite radar reflectivity |
|
1000 metre Derived radar reflectivity |
|
4000 metre Derived radar reflectivity |
|
Snow depth |
|
Surface downward short-wave radiation flux |
|
Water equivalent of accumulated snow depth (deprecated) |
|
2 metre specific humidity |
|
Sea ice area fraction |
|
Snow cover |
|
Surface pressure |
|
Temperature |
|
2 metre temperature |
|
Total Cloud Cover |
|
Temperature at surface |
|
U component of wind |
|
10 metre U wind component |
|
80 metre U component of wind |
|
V component of wind |
|
10 metre V wind component |
|
80 metre V component of wind |
|
Vertically-integrated liquid |
|
Vegetation Type |
|
Visibility |
|
Vertical velocity |
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.