Scheduled Downtime
On Friday 21 April 2023 @ 5pm MT, this website will be down for maintenance and expected to return online the morning of 24 April 2023 at the latest

(RESOLVED) Lowest height level not accurate with ECMWF data

This post was from a previous version of the WRF&MPAS-A Support Forum. New replies have been disabled and if you have follow up questions related to this post, then please start a new thread from the forum home page.


New member
Hi all!

The met_em files still have 138 levels because they are not vertically interpolated yet. If I take the GHT variable for one grid point, in one met_em file, this is the vertical levels above sea level in meters. After that I subtract the SOILHEIGHT(terrain field from source analysis) for that point in the grid, because then I am left with 138 levels which are the height above ground for that point. Am I right?

In the attached file I have printed these heights and I see that the two lowest levels is 0 m and 5 m. The lowest vertical level in ECMWF data is 10 meters, so I wonder why the lowest level in the met_em files are 5 meters in this case and not 10 m?

The reason why I wonder is that I want to plot some parameter in the met_em files against height to compare with the same parameter from a GRIB-file, just to see what the horisontal interpolation does to the data.

So, why do the heights look like they do in the attached file? I mean, nothing is done vertically yet, so should not the vertical levels be the same as in the ECMWF data? Does it have something to do with that the SOILHEIGHT in the actual point is inexact or is it something else that happens during the horisontal interpolation? Am I doing the right thing, or is it something that I have missed?

When I want to plot vertical soundings with variables in the met_em files to compare with vertical soundings from the GRIB files, do I use the vertical levels in the met_em file or do I use the vertical levels in the GRIB file? What is right here, or is both OK?




  • Vertical_heights_from_met_em_file.png
    119.9 KB · Views: 5,221
If you are using ECMWF sigma-level data, did you also use the calc_ecmwf_p program to ensure that GHT is placed on the same levels as other atmospheric data? If not, take a look at this section of our Users' Guide (scroll down to this program) to read about it:

As for your question regarding vertical soundings, the levels in the met_em files should, in theory, be the same as those provided from ECMWF. The exception would be for those fields that may need adjusting by the calc_ecmwf_p program.
Hi Kelly!

Thanks for your answer! We ARE using the calc_ecmwf_p program. In my world this program takes the surface pressure in the GRIB-file and calculates the pressure on the EDGES of the layers(half levels) with the help of the coefficients A and B. In between these layers we have the full levels, where the other parameters are defined(U, V, T, q).

Look here to see what I mean:

The formula in the above link calculates the pressure at the HALF levels and from these we get the pressure at FULL levels by taking the middle of each layer.

In the WRF manual and the link you gave me the pressure levels are calculated as:

Pijk = Ak + Bk*Psfcij

This is the FULL levels isn't it?

So this is what the program calculates the pressure at the full levels in the GRIB-files. I still don't understand why the lowest height level in my met_em files is 5 meters(as it is when I look at the GHT field and which was attached in my last post) and not 10 meters The coefficients A and B are constructed to give the lowest FULL level at 10 meters, aren't they?


I just want to let you know that I haven't forgotten about you. We have been busy preparing for the WRF/MPAS Workshop that takes place next week and have gotten a bit behind on forum questions. I will take a look soon. Thank you for your patience.
I want to check-in again to let you know that I'm still working on this. I asked for advice from someone who is more experienced with WPS, but haven't heard back. I just sent another question to a different colleague. Hopefully I'll get a reply in the next day or so. Thank you for your continued patience.
Okay, I heard back from one of my colleagues, who suggested that in the metgrid/METGRID.TBL file, you change the interpolation options for either GHT or SOILHGT so that they use the same interpolation. This should hopefully make a difference.
Ok, thanks, I will try that.

It is a bit strange though, because the lowest value in the GHT matrix and the SOILGHT matrix for a chosen x and y coordinate is the same, which it should be I suppose....?!

The SOILHEIGHT matrix is the soil height in every point and the GHT matrix is the height in every point for EVERY HEIGHT and is 3-dimensional, where the lowest level is the same as the SOILHEIGHT matrix, i.e the soilheight.

So what are the values I get when I substract SOILHGT from GHT (The file I attached in my fiorst mail)? The lowest value is zero, so it should be the ground. The next level is 5 m. In my world it is the lowest FULL level, which in ECMWF is 10 m. After that it differs 5 m for a couple of points above, but then the difference increases with height, which I presume depends on that in WRF I use Sigma-ccordinates and in ECMWF there are hybrid coordinates.

I will now try to change the METGRID.TBL to have exact the same horizontal interpolation in GHT and SOILHGT.

Hi Kelly!

It solved the problem. :D

Now the lowest level is 9.1 m instead of 5 m. This can be compared to the lowest level in ECMWF, which is 10 m. So, I am satisfied!