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:
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, geo_em.do1.nc, etc.) for the different versions of the HRRR and RAP models below.
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.
sfc
files are a subset of the prs
files, so you only
need to retrieve the prs
files.
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.
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:
You can plot the grib2 data in Python using the pygrib module or xarray with cfgrib. Demo PyGrib on GitHub.
You can also view the data with ncview if you convert the GRIB2 to NetCDF using wgrib2.
ncview filename.nc
Vtable.hrrr
The Vtable in WPS tells ungrib how to index and extract
data from the grib2 file. I created a Vtable for the HRRR prs
data
you can copy and link in WPS. (Note, I made a minor edit based on some user feedback without testing it myself. If you have trouble, try using a previous commit by clicking the "History" button on GitHub).
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 because the prs
files in the HRRR archive are on pressure levels (GRIB2 level 100) and not hybrid levels (GRIB2 level 105). Also, some variables like Ice Number Concentration
are not available in the HRRR prs
file. On that note, if you are using the nat
files from NOMADS, then you would need to modify this VTable accordingly with the correct GRIB2 Level code (i.e., use 105 instead of 100). That's probably as clear as mud.
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:
If you don't have JASPER, see
Chapter 3 of the WRF User Guide for instructions to install JASPER.
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.
setenv JASPERINC /uufs/chpc.utah.edu/sys/installdir/jasper/1.900.1-atmos07102015/include
Trying to UNGRIB with HRRR-Alaska?
METGRID.TBL
The METGRID Table tells METGRID how to interpolate the meteorological fields from the UNGRIBed files on the WRF friendly grid. You may or may not need to use this custom METGRIB table (some users have said they didn't need it, but I needed it years ago).
If you find errors or have any suggestions please share 😄
namelist.wps
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.
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.