Tuesday, October 18, 2022

Viewing HRRR Wind Forecasts in OpenCPN

Errata added May 18, 2023. 

This article was intended to point out a limitation in the HRRR data provided by Saildocs and a couple other sources in that the wind directions on the two US coasts could be off by some degrees, which we could easily account for. We do not know exactly when this was corrected but looking today we see that this correction has been made, so the HRRR data  from Saildocs is now identical to what we would get from a direct NOAA download. This is good news for many sailors as Saildocs remains the most convenient free source of weather data and we all remain very grateful to them.


HRRR (high resolution rapid refresh) is one of the premier regional wind models from NOAA. The native data are distributed through NOMADS in a grib2 format that uses a Lambert projection, which is very similar to a great circle projection. OpenCPN at present cannot read and display that format, as is the case with many echart programs and grib viewers. With that limitation in mind, Saildocs has done a service for mariners by converting the Lambert projection into a rectangular Lat-Lon projection that can be read in OpenCPN and other grib viewers.

The attached video shows the process of obtaining the HRRR grib from Saildocs, which is straight-forward, with a couple precautions to guard against large files. We propose a hybrid solution that lets OpenCPN create the email request that we then tweak a bit before sending to Saildocs.

There are two formats for the HRRR data. The standard model forecasts are computed every hour and there is a forecast made for each hour going forward, out to 18 hr. There is just over a 1.5-hr latency, meaning that a forecast computed at say 15z (z=UTC) will have the first of the 18 hourly forecasts valid at 15z, but we will not be able to download this forecast until about 1635z.

The second format is same as above, but at the synoptic times of 00, 06, 12, and 18z the forecast extends out to 48 hr. Saildocs calls the standard version HRRR and the extended version is HRRRX. The latency for this one is just over 2h (0205). Thus the 48h forecast ran at 12z will be available at about 1405.

The main point I want to stress here, however, is the native HRRR CONUS (continental US) forecasts obtained from NOMADS present the wind direction relative to the orientation of the grid, which in the Lambert projection does not line up with the North-South meridians, and this correction is not accounted for in the HRRR data from Saildocs. An overview of the corrections is shown below.

The HRRR CONUS coverage map is from luckgrib.com/models. I have overlaid the approximate orientations of the grids.

Saildocs HRRR wind directions in the East CONUS are too small and we must add these corrections depending on location.  In Cape Cod, for example, the correction is about +15º, so when you read a wind direction of 100, the actual HRRR forecasted wind is 115.  In the coastal waters of the West CONUS, we subtract these values to get the actual HRRR wind directions. In San Francisco Bay, for example, the correction is about -15º so an HRRR wind from Saildocs of 100, would  mean the intended HRRR forecast is for 085.

These shifts of roughy ± 15º along the coasts are not really so significant for a static forecast, keeping in mind that the the model data themselves and all the buoys we read the wind from are only accurate to ± 10º or so.  But this offset is something to be aware of when doing optimum weather routing computations as this shift can have a significant effect on those results.

The nominal average of about 14º to 16º right along the coast is correct for the actual grid orientation but the projection conversion process introduces some spread to this. The values pictured above should be considered ±3º or so.

We focus on OpenCPN in the video demo below, but this same correction would be called for when viewing the Saildocs HRRR gribs in any viewer. 

I should stress that the programs Expedition and LuckGrib are two that provide their own access to the native HRRR data and their presentations are correct as displayed.  

Video demo of the topics above.

Friday, October 14, 2022

Compare Wind Forecasts in qtVlm

For routing analysis and computations we have several global models we can choose from, as well as several regional models. An important step is choosing what might be the best forecast. Elsewhere we have an in-depth article and video on Evaluating a Weather Forecast, but our first step here is just comparing what the different models forecast.

We will use qtVlm for this, which is the free program we use in our Marine Weather and Electronic Chart Navigation courses. Similar analysis can be done with Expedition or with LuckGrib, and other programs as well. 

Step 1. Download the data. We use three global models available from Saildocs, accessible from within qtVlm, but in practice you may choose other products or sources.

Then select the models (blue means on, yellow means off, for all of qtVlm):

Here we choose wind and pressure from GFS, COAMPS, and ECMWF. We are after wind comparisons, but the pressure can help us understand what is taking place.   Pressing send email creates the request we send to saildocs and they send back by return mail the 3 model forecasts in grib format. We asked for the best resolution that each model offers and restrict the comparison to the time interval of the shortest one, namely COAMPS at 4 days. In each case we ask for a forecast every 3 hr.

The generated email then looks like this shown below. We could create it manually as we explain in  Modern Marine Weather, but the auto generate function is a convenient tool.

We get back three emails with the grib files as attachments, which we then drag into a folder to be used by qtVlm, which looks like this:

Now we load each of these into qtVlm, starting with slot 1. The order is up to you.

At this stage you navigate to the file in the folder above and say OK. Then do the same with slot 2 and slot 3 for the other two forecasts.

Once all are loaded, they will be listed in the title bar and you can use menu Grib/Grib Information to inspect the contents of each if desired. The wind barbs themselves might not being showing if we do not yet have them turned on.

Next we want to use menu Grib/Grib configuration (windsock toolbar) to set up the wind display to enhance the comparison.  Use these settings:

The colors have to be done one at a time. The three arrow colors are slots 1, 2, and 3. Set one; close it; set the next. The logic of these color choices will be clear shortly.... or maybe not!

Next set the isobar display using the isobar/isotherm tab.

The bottom slider controls the thickness. Midway is good.

Now we can turn on the wind and see the first comparison:

Black, red, and green are 1, 2, and 3, which can  be checked in the title bar.  We see good agreement in some places and poor agreement in others.  This is the first forecast (effectively a surface analysis) which we see from the slider being far left. Change times with the slider or use the clock icon to digitally set to a specific time.  This way you can scan through to see how the agreement stands, looking at a large area, or zoom in to look at a more local area.

For time comparisons and a more digital comparison, right click where you want to see a meteogram, and then choose "Compare models," as shown below. 

The meteograms always start at the location of the on screen display, indicated by the grib time or slider location.

Also we see now the intended motivation of the color selections. These meteograms have fixed colors so we have just forced wind barb colors, which we can change, to match the graph colors that we cannot change. Else we have 6 colors to sort out, or worse, the same colors meaning different things.

This is the forecasts for Point AA. A cursor over the point brings up the values, faked here in that only one at a time can show.  We see mixed agreement at this point over time.

This is the forecasts for Point BB, which is pretty good agreement for the first two days.

This is the forecasts for Point CC. We see the models agree and disagree over different areas and times, but this is just a demo of how this works. Generally we would be focused on a more localized area.

Referring back to the wind barbs view above we see some areas agreeing and others not. This would generally lead us to look at the isobars. But there are some nuances to getting the most out of this, in that for now we cannot directly compare isobars from different models. We have to look at each individually, and we will likely find one model more useful than others. Here are the three models with their isobars for the surface analyses at 12z (first forecast).

Slot 1, black, is the GFS.

Slot 2, red, is the ECMWF.

Slot 3, green, is the COAMPS. This is a US Navy regional model, which accounts for why it does not cover the full extent of the other two, which are global models.  The transient weak Low at point BB does not last long.

In you own boat at sea or along the coast, you will likely have an have an accurate barometer in your pocket, so you have compelling information about which of these models might be closer to the truth.

qtVlm also offers a very convenient way to download and plot all the buoy and ship reports around you which is more data to add to your own wind and pressure measurements to help pin down the best forecast.

Below is a video illustration (11:19) of the above: