How to Initialize WRF with HRRR Boundary Conditions

About the HRRR

The High Resolution Rapid Refresh model, or HRRR, is a WRF based forecast modeling system nested in the Rapid Refresh model with a resolution of 3 km and output every hour. More info and current forecasts can be found on the HRRR homepage and NWS documentation. The MesoWest group at the University of Utah archives raw HRRR model output beginning with July 2016 for various research purposes. To learn more about the HRRR archive and access past HRRR data, push the red button:

HRRR Archive at the University of Utah

If you are trying to initialize your WRF simulation with HRRR model output, keep reading. As far as we know, this work was the first time HRRR analyses were used to initalize WRF boundary conditions. The sequence of tabs above describes how "even you can initialize WRF simulations with HRRR boundary conditions" (said in your favorite infomercial voice).

Advantages of using HRRR include its hourly 3 km resolution state of the atmosphere (as opposed to using NAM's 6-hourly, 12 km resolution) and its advanced data assimilation. We expect better initialization of WRF using the HRRR will improve simulations of thermally driven flows, including slope flows and lake breezes, in the Salt Lake Valley.

It would be to your benefit to review ESRL's static fields (namelists, Vtable, METGRID.TBL,, etc.) for the different versions of the HRRR and RAP models below.

HRRR Static RAP Static

External Links:

Download HRRR data for WRF Boundary Conditions

Step 1: Get HRRR analyses.

You must get the full pressure field (prs) file. You can get the current HRRR data from NOMADS.

Unfortunately, historical HRRR data isn't archived by NCEP. At the University of Utah we have an archive beginning July 15, 2016.

Please refer to the FAQ page for more information and for a link to download from the HRRR archive.

HRRR Archive FAQ

Raw HRRR data is in GRIB2 format. You will use WRF's WPS to prepare the HRRR analyses for WRF with the ungrib function.

There are several ways you can read and view GRIB2 files. You can print out the variable contents of the grib2 file by typing:

wgrib2 -v filename.grib2

You can plot the grib2 data using the pygrib module. Look at an example on github here.

You can also view the data with ncview if you convert the GRIB2 to NetCDF using wgrib2.

wgrib2 filename.grib2 -netcdf


The Vtable in WPS tells ungrib how to index and extract data from the grib2 file. I created a Vtable for the HRRR data you can copy and link in WPS.


I created this custom Vtable following the instructions in the WRF User Guide. I used the WPS utility util/g2print.exe [name-of-grib2-file] > out.txt to print out the contents and create the custom Vtable based on the output. This version is different than ESRL's' version.

At any rate, my Vtable worked, but if you find errors or additions please forward those to me .

UNGRIB Requires JASPER Library

Raw HRRR files are in GRIB2 format. In order to ungrib these files WPS requires the JASPER library. When you configure WPS it should say "Found Jasper environment variables for GRIB2 support...". Then configure WPS with a "grib2 friendly" option. In WRFv3.7 I use option 7. Linux x86_64, PGI compiler (dmpar)

If you are on the University of Utah's CHPC computers, set these environments:

setenv JASPERLIB /uufs/
setenv JASPERINC /uufs/

If you don't have JASPER, see Chapter 3 of the WRF User Guide for instructions to install JASPER.

Trying to UNGRIB with HRRR-Alaska?

There is an update to the rd_grib2.F file (WPS/ungrib/src/rd_grib2.F) that will allow you to ungrib the experimental Alaska HRRR data. You should be able to use the regular HRRR without this, but it doesn't hurt to give it a try. The reason this is necessary for Alaska HRRR grib files is that Alaska HRRR data is on a polar stereograph projection, and processing for that type of projection is included in the updated script.



The METGRID Table tells METGRID how to interpolate the meteorological fields from the UNGRIBed files on the WRF friendly grid.


If you find errors or have any suggestions please share .


Above shows the HRRR terrain height with water area colored blue. Domain 1 (d01) has a grid spacing of 3km, same as the HRRR. Domain 2 (d02) has a grid spacing of 1km.



This is my namelist.input file used to run real.exe and wrf.exe


Comparing HRRR 3km with WRF 1km

My master's thesis used the described method to initialize WRF with the HRRR to study a lake breeze event. While that project didn't explore the benefits of using HRRR as boundary conditions instead of the NAM or GFS, here is one example of differences between the HRRR and the 1 km WRF simulation.

Below compares the winds for the Salt Lake Valley subset from the HRRR analysis and the WRF model at 1 km initialized by the HRRR analysis. Notice the difference in the outline of the Great Salt Lake (blue) between HRRR and WRF. This was a custom modification described in my thesis. The observations from the TDWR is also shown. The lake breeze in the HRRR never progressed, probably due to ineffective data assimilation. The WRF simulated lake breeze was strong an early probably because of the lack of strong southerly winds. This is described in my these. Good thing my method didn't fix everything or we'd all be out of a job.

This work was used in Blaylock et al. 2017