Project

General

Profile

getting geopotential onto pressure levels

Added by Tomasz Trzeciak about 12 years ago

I need to interpolate some data (from ecmwf) from 60 model levels to pressure levels, including the geopotential field (var129), which is stored on only one (surface) level in the file. The ml2pl operator works well for 3D fields, but not for this single level geopotential. Is there any other way to generate 3D geopotential with cdo?


Replies (5)

RE: getting geopotential onto pressure levels - Added by Tomasz Trzeciak about 12 years ago

To answer my own question, there is an undocumented geopotheight operator to generate geopotential height (code: 156) on model (hybrid) levels. To interpolate to pressure levels it needs to be merged into one file with at least fields 129, 152 (surface) and 130 (3D), but preferably also with 133, 246 and 247 to include moisture. Then, interpolation with ml2pl, followed by var129=9.80665*geopotheight gives me geopotential on pressure levels.

Is there any particular reason, why operators like geopotheight are not documented? I've found in total 120 undocumented cdo operators, some rather exotic, but some of more general utility, if only they were documented.

RE: getting geopotential onto pressure levels - Added by Uwe Schulzweida about 12 years ago

Most of the undocumented CDO operators are not general enough, or in a test phase, or only for internal usage.
The CDO operator geopotential is a good example for that. One limitation is, that the code numbers or the variable names of the required parameter have to follow the ECHAM convention.
I'm currently working on this operator. Code number 246 and 247 are not used/needed. The next release supports also code numbers from the WMO table.

Best regards,
Uwe

RE: getting geopotential onto pressure levels - Added by Haile Xue about 4 years ago

Dear Uwe,

I would like to obtain the geopotential from 129, 152, 130 and 133 with ERA5. At first I merged the four fields into one single file using the following command
cdo --eccode merge E5ml00_1H_2019-07-01_129 E5ml00_1H_2019-07-01_130 E5ml00_1H_2019-07-01_133 E5ml00_1H_2019-07-01_152 test.grb2

Then I use the following command to obtain the 156(geopotential)
cdo --eccode after test.grb2 test1.grb2 <<EON

TYPE=20,CODE=156
EON

This is not successful and an error information released as
Warning: Code number -1 out of range, variable ignored!
Warning: Code number -2 out of range, variable ignored!
Warning: Code number -3 out of range, variable ignored!
Warning: Code number -4 out of range, variable ignored!

cdo after (Abort): code 130 undefined, needed to compute code 156

Would please let me know how I could get the right transformation.

Best,
Haile

RE: getting geopotential onto pressure levels - Added by Uwe Schulzweida about 4 years ago

Dear Haile,

The afterburner works only with GRIB1 data from ECHAM.
You can try the undocumented operator gheight to compute the geopotential height. Your ERA5 variables are a mix of reduced reduced Gaussian grid and spectral coefficients. gheight needs the data on a regular grid. The logarithm of the surface pressure in your data can't also not used directly. Here is the operator chain for this task:

cdo  gheight -aexpr,"aps=exp(lnsp)" -setgridtype,regular -sp2gp,linear  infile outfile
Cheers Uwe

RE: getting geopotential onto pressure levels - Added by Haile Xue almost 4 years ago

Dear Uwe,
Thanks, it do work for my case
Cheers,Haile

    (1-5/5)