[ncl-talk] reading in ERA-20C grib file with data on model/hybrid levels
Dennis Shea
shea at ucar.edu
Tue Mar 12 13:53:14 MDT 2019
Yes. NCL does *not* recognize the hybrid coefficients. *IMHO: It is a bug.*
*wgrib2* does 'see' the 92 interface coefficients.
*%>* *wgrib2* *-hybrid* e20c_an_temp_r360x180_ml_199410.grib | less
The following are the (*hyai, hybi*) values:
1:0:*Hybrid levels=92 *1=( 0.000000, 2.000040) 2=( 3.980832, 7.387186)
3=(12.908319,21.413612) 4=(33.952858,51.746601) 5=(76.167656,108.715561)
6=(150.986023,204.637451) 7=(271.356506,352.824493)
8=(450.685791,566.519226) 9=(701.813354,857.945801)
10=(1036.166504,1237.585449) 11=(1463.163940,1713.709595)
12=(1989.874390,2292.155518) 13=(2620.898438,2976.302246)
14=(3358.425781,3767.196045) 15=(4202.416504,4663.776367)
16=(5150.859863,5663.156250) 17=(6199.839355,6759.727051)
18=(7341.469727,7942.926270) 19=(8564.624023,9208.305664)
20=(9873.560547,10558.881836) 21=(11262.484375,11982.662109)
22=(12713.897461,13453.225586) 23=(14192.009766,14922.685547)
24=(15638.053711,16329.560547) 25=(16990.623047,17613.281250)
26=(18191.029297,18716.968750) 27=(19184.544922,19587.513672)
28=(19919.796875,20175.394531) 29=(20348.916016,20434.158203)
30=(20426.218750,20319.011719) 31=(20107.031250,19785.357422)
32=(19348.775391,18798.822266) 33=(18141.296875,17385.595703)
34=(16544.585938,15633.566406) 35=(14665.645508,13653.219727)
36=(12608.383789,11543.166992) 37=(10471.310547,9405.222656)
38=(8356.252930,7335.164551) 39=(6353.920898,5422.802734)
40=(4550.215820,3743.464355) 41=(3010.146973,2356.202637)
42=(1784.854614,1297.656128) 43=(895.193542,576.314148)
44=(336.772369,162.043427) 45=(54.208336, 6.575628) 46=( 0.003160,
0.000000) 47=( 0.000000, 0.000000) 48=( 0.000000, 0.000000) 49=( 0.000000,
0.000000) 50=( 0.000000, 0.000000) 51=( 0.000000, 0.000000) 52=( 0.000000,
0.000000) 53=( 0.000000, 0.000000) 54=( 0.000000, 0.000000) 55=( 0.000000,
0.000000) 56=( 0.000000, 0.000000) 57=( 0.000000, 0.000000) 58=( 0.000000,
0.000000) 59=( 0.000000, 0.000000) 60=( 0.000000, 0.000000) 61=( 0.000000,
0.000000) 62=( 0.000000, 0.000000) 63=( 0.000000, 0.000000) 64=( 0.000000,
0.000014) 65=( 0.000055, 0.000131) 66=( 0.000279, 0.000548) 67=( 0.001000,
0.001701) 68=( 0.002765, 0.004267) 69=( 0.006322, 0.009035) 70=( 0.012508,
0.016860) 71=( 0.022189, 0.028610) 72=( 0.036227, 0.045146) 73=( 0.055474,
0.067316) 74=( 0.080777, 0.095964) 75=( 0.112979, 0.131935) 76=( 0.152934,
0.176091) 77=( 0.201520, 0.229315) 78=( 0.259554, 0.291993) 79=( 0.326329,
0.362203) 80=( 0.399205, 0.436906) 81=( 0.475016, 0.513280) 82=( 0.551458,
0.589317) 83=( 0.626559, 0.662934) 84=( 0.698224, 0.732224) 85=( 0.764679,
0.795385) 86=( 0.824185, 0.850950) 87=( 0.875518, 0.897767) 88=( 0.917651,
0.935157) 89=( 0.950274, 0.963007) 90=( 0.973466, 0.982238) 91=( 0.989153,
0.994204) 92=( 0.997630, 1.000000)
The mid-layer coefficients (91) are calculated as the mid-points and are
calculated.
====
Still, something seems odd. My local CDO version
*%> cdo -V*
*Climate Data Operators version 1.7.2 *(http://mpimet.mpg.de/cdo)
*%>cdo* -f nc copy e20c_an_temp_r360x180_ml_199410.grib
e20c_temp_199410.nc
*cdo copy: Open failed on >e20c_an_temp_r360x180_ml_199410.grib<Unsupported
file type*
====
CDO Versions *1.9.3 *and* 1.9.4* *do recognize* the hybrid coefficients
*. *
====
The issue with GRIB is that it is a moving target.
D
On Tue, Mar 12, 2019 at 7:29 AM De Vries Andries <
andries.devries at env.ethz.ch> wrote:
> Hi Dennis,
>
> Thank you very much. The newer version of NCL helps indeed, hadn't thought
> of that simple solution. However, still I miss a few coordinate variables
> that I can read in the netcdf file, but not in the original grib file; the
> hyam and hybm variabels. Please, see the print statement of the netcdf file
> below. Any idea why and what can help?
>
> Cheers,
> Andries
>
> Variable: b2
> Type: file
> filename: e20c_an_temp_r360x180_ml_199410
> path: ../ERA20C-MOD/NC/e20c_an_temp_r360x180_ml_199410.nc
> file global attributes:
> CDI : Climate Data Interface version 1.9.5 (http://mpimet.mpg.de/cdi
> )
> Conventions : CF-1.6
> history : Thu Feb 14 11:02:46 2019: cdo -f nc copy
> /atmosdyn/devriesa/DATA/ERA20C/e20c_an_temp_r360x180_ml_199410.grib
> /atmosdyn/devriesa/DATA/ERA20C-MOD/NC/e20c_an_temp_r360x180_ml_199410.nc
> institution : European Centre for Medium-Range Weather Forecasts
> CDO : Climate Data Operators version 1.9.5 (http://mpimet.mpg.de/cdo
> )
> dimensions:
> time = 124 // unlimited
> lon = 360
> lat = 181
> lev = 91
> nhyi = 92
> nhym = 91
> variables:
> double time ( time )
> standard_name : time
> units : hours since 1994-10-1 00:00:00
> calendar : proleptic_gregorian
> axis : T
>
> double lon ( lon )
> standard_name : longitude
> long_name : longitude
> units : degrees_east
> axis : X
>
> double lat ( lat )
> standard_name : latitude
> long_name : latitude
> units : degrees_north
> axis : Y
>
> double lev ( lev )
> standard_name : hybrid_sigma_pressure
> long_name : hybrid level at layer midpoints
> formula : hyam hybm (mlev=hyam+hybm*aps)
> formula_terms : ap: hyam b: hybm ps: aps
> units : level
> positive : down
>
> double hyai ( nhyi )
> long_name : hybrid A coefficient at layer interfaces
> units : Pa
>
> double hybi ( nhyi )
> long_name : hybrid B coefficient at layer interfaces
> units : 1
>
> double hyam ( nhym )
> long_name : hybrid A coefficient at layer midpoints
> units : Pa
>
> double hybm ( nhym )
> long_name : hybrid B coefficient at layer midpoints
> units : 1
>
> float t ( time, lev, lat, lon )
> standard_name : air_temperature
> long_name : Temperature
> units : K
> param : 0.0.0
>
> ________________________________________
> From: Dennis Shea [shea at ucar.edu]
> Sent: 12 March 2019 13:09
> To: De Vries Andries
> Cc: ncl-talk at ucar.edu
> Subject: Re: [ncl-talk] reading in ERA-20C grib file with data on
> model/hybrid levels
>
> I am using NCL 6.5.0. I have no problem reading the grib file.
>
> %> ncl
>
> NCAR Command Language Version 6.5.0
>
> ncl 0> f = addfile("e20c_an_temp_r360x180_ml_199410.grib","r")
> ncl 1> print(f)
> ncl 2> t = f->TMP_P0_L105_GLL0
> printVarSummary(t)
> ncl 3> printVarSummary(t)
>
> Variable: t
> Type: float
> Total Size: 2941061760 bytes
> 735265440 values
> Number of Dimensions: 4
> Dimensions and sizes: [initial_time0_hours | 124] x [lv_HYBL0 | 91] x
> [lat_0 | 181] x [lon_0 | 360]
> Coordinates:
> initial_time0_hours: [1707120..1707858]
> lv_HYBL0: [ 1..91]
> lat_0: [90..-90]
> lon_0: [ 0..359]
> Number Of Attributes: 11
> center : European Center for Medium-Range Weather Forecasts
> production_status : Operational products
> long_name : Temperature
> units : K
> _FillValue : 1e+20
> grid_type : Latitude/longitude
> parameter_discipline_and_category : Meteorological products,
> Temperature
> parameter_template_discipline_category_number : ( 0, 0, 0, 0 )
> level_type : Hybrid level
> forecast_time : 0
> forecast_time_units : hours
>
> ncl 4> printMinMax(t,0)
> (0) Temperature (K) : min=170.211 max=313.993
>
> On Tue, Mar 12, 2019 at 5:30 AM De Vries Andries <
> andries.devries at env.ethz.ch<mailto:andries.devries at env.ethz.ch>> wrote:
> Dear NCL Team & Users,
>
> I have an issue with reading in ERA-20C grib files from ECMWF that contain
> data on model levels. No matter if it is data on a regular (1x1 degree
> grid) or a gaussian grid (N80), I can not read the variables within the
> file, see for example the first print statements below.
>
> When I convert the grib file to netcdf format, using the tool cdo {cdo -f
> nc copy {infile} {outfile}}, there is no problem; I can read in the netcdf
> file and variables without any problem, see the second print statement
> below. Ideally, however, I would like to use NCL to read in the grib files
> without converting them first to netcdf format. Any idea how to achieve
> this?
>
> Two side comments (1) I can read in ERA-20C grib files with data on
> pressure levels, surface, or isentropic levels without any problem problem;
> there is no need to convert them to netcdf format, and (2) Also, I can read
> in ERA-Interim grib files with data on model levels without any problems
> that are downloaded in the same manner & format as the ERA-20C data.
>
> @NCL TEAM; I copied an example ERA-20C file in grib and netcdf format with
> temperature on model levels for the year 199410 to ftp.cgd.ucar.edu<
> http://ftp.cgd.ucar.edu>
>
> Kind regards,
> Andries
>
>
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------
> READING IN ERA-20C GRIB FILE WITH DATA ON MODEL LEVELS; CANNOT READ
> VARIABLES
>
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Copyright (C) 1995-2015 - All Rights Reserved
> University Corporation for Atmospheric Research
> NCAR Command Language Version 6.3.0
> The use of this software is governed by a License Agreement.
> See http://www.ncl.ucar.edu/ for more details.
> ncl 0> a=addfile("e20c_an_temp_r360x180_ml_199410.grib","r")
>
> ncl 1> print(a)
>
> print(a)
>
> Variable: a
> Type: file
> filename: (null)
> path: e20c_an_temp_r360x180_ml_199410.grib
> file global attributes:
> dimensions:
> variables:
>
>
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------
> READING IN ERA-20C NETCDF FILE WITH DATA ON MODEL LEVELS; READS VARIABLES
>
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Copyright (C) 1995-2015 - All Rights Reserved
> University Corporation for Atmospheric Research
> NCAR Command Language Version 6.3.0
> The use of this software is governed by a License Agreement.
> See http://www.ncl.ucar.edu/ for more details.
>
> ncl 0> a=addfile("e20c_an_temp_r360x180_ml_199410.nc<
> http://e20c_an_temp_r360x180_ml_199410.nc>","r")
>
> ncl 1> print(a)
>
> Variable: a
> Type: file
> filename: e20c_an_temp_r360x180_ml_199410
> path: e20c_an_temp_r360x180_ml_199410.nc<
> http://e20c_an_temp_r360x180_ml_199410.nc>
> file global attributes:
> CDI : Climate Data Interface version 1.9.5 (http://mpimet.mpg.de/cdi
> )
> Conventions : CF-1.6
> history : Thu Feb 14 11:02:46 2019: cdo -f nc copy
> /atmosdyn/devriesa/DATA/ERA20C/e20c_an_temp_r360x180_ml_199410.grib
> /atmosdyn/devriesa/DATA/ERA20C-MOD/NC/e20c_an_temp_r360x180_ml_199410.nc<
> http://e20c_an_temp_r360x180_ml_199410.nc>
> institution : European Centre for Medium-Range Weather Forecasts
> CDO : Climate Data Operators version 1.9.5 (http://mpimet.mpg.de/cdo
> )
> dimensions:
> time = 124 // unlimited
> lon = 360
> lat = 181
> lev = 91
> nhyi = 92
> nhym = 91
> variables:
> double time ( time )
> standard_name : time
> units : hours since 1994-10-1 00:00:00
> calendar : proleptic_gregorian
> axis : T
>
> double lon ( lon )
> standard_name : longitude
> long_name : longitude
> units : degrees_east
> axis : X
>
> double lat ( lat )
> standard_name : latitude
> long_name : latitude
> units : degrees_north
> axis : Y
>
> double lev ( lev )
> standard_name : hybrid_sigma_pressure
> long_name : hybrid level at layer midpoints
> formula : hyam hybm (mlev=hyam+hybm*aps)
> formula_terms : ap: hyam b: hybm ps: aps
> units : level
> positive : down
>
> double hyai ( nhyi )
> long_name : hybrid A coefficient at layer interfaces
> units : Pa
>
> double hybi ( nhyi )
> long_name : hybrid B coefficient at layer interfaces
> units : 1
>
> double hyam ( nhym )
> long_name : hybrid A coefficient at layer midpoints
> units : Pa
>
> double hybm ( nhym )
> long_name : hybrid B coefficient at layer midpoints
> units : 1
>
> float t ( time, lev, lat, lon )
> standard_name : air_temperature
> long_name : Temperature
> units : K
> param : 0.0.0
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at ucar.edu<mailto:ncl-talk at ucar.edu>
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20190312/9e2e2c83/attachment.html>
More information about the ncl-talk
mailing list