NOTE: The decoders
mailing list is no longer active. The list archives are made available for historical reasons.
On Wed, 10 Apr 2002, Unidata Support wrote:
------- Forwarded Message >To: support-decoders@xxxxxxxxxxxxxxxx >From: Tiziana Cherubini <tiziana@xxxxxxxxxx> >Subject: CDL for LAPS >Organization: University of Hawaii >Keywords: 200204110028.g3B0STa23345 gribtonc Hi, I'm trying to use the gribtonc decoders to convert avn model output files (grid 3, 65160 point) in netcdf, but I'm having hard time. It seems that no one of the CDLs files coming with the decoders.tar files (avn-1.25x1.25.cdl, avn-a.cdl, avn-q.cdl, avn-x.cdl) are good for them, unless I use the -q option, i.e. changing the data resolution. What should I do to convert the grib files in netcdf mantaining the 1.0x1.0 degrees resolution? Again, do you think it would be possible to use the gribtonc decoder with the LAPS CDLs files (one of them is in attachment to this mail)?
Tiziana, Since I not familar with the avn (grid 3, 65160 point) model in particular I can't give a direct answer but I will the give procedure on how to get the correct CDL. If the LAPS cdl file works by all means use it. But I would check the output using ncdump to make sure all the fields are being populated. NetCDF allocates the space before the input is actually processed so reserving variable space without using it is wasted. At this time, the status of the LAPS gribtonc code is not known. It's possible they have modified the code so Unidata's gribtonc will not workwith their cdl.
Another approach would be to use the would be to use the closest fit avncdl file from the tar files and then modify the x and y parameters or lat and lon parameters, using avn-1.25x1.25 as a template then it would look
like this at the bottom of the file. ie At top: lat = 181 ; // latitudelon = 360 ;
At bottom: lon = -30, -29, -28 .... lat = -90.0, -89.0 -88.0 ....I would run the newing created cdl from the command line to check out your
progress. % gribtonc -vl - avn-1.0x1.0.cdl test.nc < avn.input Hopes this helps, Robb...
Thank you very much for any help you could give to me. I really appreciate your work. Cheers, Tiziana. ------------------------------------- Tiziana Cherubini Department of Meteorology University of Hawaii 2525 Correa Rd. HIG 350 Honolulu, Hawaii 96822 (808) 956-4593, (808) 956-2877 fax //------------------------------------------------------------------------------ // NOAA/ERL // Forecast Systems Laboratory // Facility Division // Data Acquisition Branch // Posix Data Services Software //// This software and its documentation are in the public domain and are // furnished "as is". The United Stated government, its instrumentalities,// officers, employees, and agents make no warranty, express or implied, as to// the usefullness of the software and documentation for any purpose. They // assume no responsibility (1) for the use of the software and documentation;// or (2) to provide technical support to users. // // avn_global_complete_list.cdl // // netCDF data file definition for aviation model NPS grids // // latitude and longitude information for grid: // lon x lat = 1.0 x 1.0// //------------------------------------------------------------------------------ netcdf AvnGlobal {dimensions: record = unlimited; namelen = 132;y = 181; x = 360;numIsoLevel = 26; fixedHeight = 3; variables: // geopotential height at Isobaric Levels float GH(record, numIsoLevel, y, x); GH:record = "valtime, reftime"; GH:_Navigation_var = "nav"; GH:numIsoLevel = "isoLevel"; GH:long_name = "geopotential height"; GH:units = "meters"; GH:valid_range = -800.f, 100000.f; GH:_FillValue = -99999.f; // temperature at Isobaric Levels float T(record, numIsoLevel, y, x); T:record = "valtime, reftime"; T:_Navigation_var = "nav"; T:numIsoLevel = "isoLevel"; T:long_name = "temperature"; T:units = "kelvin"; T:valid_range = 160.f, 340.f; T:_FillValue = -99999.f; // VVEL=pressure vertical velocity float PVV(record, numIsoLevel, y, x); PVV:record = "valtime, reftime"; PVV:_Navigation_var = "nav"; PVV:numIsoLevel = "isoLevel"; PVV:long_name = "pressure vertical velocity"; PVV:units = "Pa/s"; PVV:valid_range = -10.f, 10.f; PVV:_FillValue = -99999.f; // relative humidity at isobaric levels float RH(record, numIsoLevel, y, x); RH:record = "valtime, reftime"; RH:_Navigation_var = "nav"; RH:numIsoLevel = "isoLevel"; RH:long_name = "relative humidity"; RH:units = "percent"; RH:valid_range = -5.f, 110.f; RH:_FillValue = -99999.f; // Absolute vorticity float AV(record, numIsoLevel, y, x); AV:record = "valtime, reftime"; AV:_Navigation_var = "nav"; AV:numIsoLevel = "isoLevel"; AV:long_name = "absolute vorticity"; AV:units = "/second"; AV:valid_range = -300.f, 300.f; AV:_FillValue = -99999.f; // ozone mixing ratio float O3MR(record, numIsoLevel, y, x); O3MR:record = "valtime, reftime"; O3MR:_Navigation_var = "nav"; O3MR:numIsoLevel = "isoLevel"; O3MR:long_name = "ozone mixing ratio"; O3MR:units = "kg/kg"; O3MR:_FillValue = -99999.f; // 5-wave geopotential height float WAVH5(record, y, x); WAVH5:record = "valtime, reftime"; WAVH5:_Navigation_var = "nav"; WAVH5:long_name = "5-wave geopotential height"; WAVH5:units = "GpM"; WAVH5:_FillValue = -99999.f; // UGRD=u wind component at Isobaric Levels float uW(record, numIsoLevel, y, x); uW:record = "valtime, reftime"; uW:_Navigation_var = "nav"; uW:numIsoLevel = "isoLevel"; uW:long_name = "eastward wind"; uW:units = "meters/second"; uW:valid_range = -150.f, 150.f; uW:_FillValue = -99999.f; // VGRD=v wind component at Isobaric Levels float vW(record, numIsoLevel, y, x); vW:record = "valtime, reftime"; vW:_Navigation_var = "nav"; vW:numIsoLevel = "isoLevel"; vW:long_name = "northward wind"; vW:units = "meters/second"; vW:valid_range = -150.f, 150.f; vW:_FillValue = -99999.f; // temperature 30-0 mb above ground float T_30(record, y, x); T_30:record = "valtime, reftime"; T_30:_Navigation_var = "nav"; T_30:long_name = "temperature 30-0 mb above ground"; T_30:units = "kelvin"; T_30:valid_range = 160.f, 340.f; T_30:_FillValue = -99999.f; // relative humidity 30-0 mb above ground float RH_30(record, y, x); RH_30:record = "valtime, reftime"; RH_30:_Navigation_var = "nav"; RH_30:long_name = "relative humidity 30-0 mb above ground"; RH_30:units = "percent"; RH_30:valid_range = -10.f, 110.f; RH_30:_FillValue = -99999.f; // specific humidity 30-0 mb above ground float SH_30(record, y, x); SH_30:record = "valtime, reftime"; SH_30:_Navigation_var = "nav"; SH_30:long_name = "specific humidity 30-0 mb above ground"; SH_30:units = "percent"; SH_30:valid_range = -10.f, 110.f; SH_30:_FillValue = -99999.f; // u wind component 30-0 mb above ground float uW_30(record, y, x); uW_30:record = "valtime, reftime"; uW_30:_Navigation_var = "nav"; uW_30:long_name = "eastward wind 30-0 mb above ground"; uW_30:units = "meters/second"; uW_30:valid_range = -300.f, 300.f; uW_30:_FillValue = -99999.f; // v wind component 30-0 mb above ground float vW_30(record, y, x); vW_30:record = "valtime, reftime"; vW_30:_Navigation_var = "nav"; vW_30:long_name = "northward wind 30-0 mb above ground"; vW_30:units = "meters/second"; vW_30:valid_range = -300.f, 300.f; vW_30:_FillValue = -99999.f; // temperature at fixed height above MSL float T_FH(record, fixedHeight, y, x); T_FH:record = "valtime, reftime"; T_FH:_Navigation_var = "nav"; T_FH:fixedHeight = "fixed height level"; T_FH:long_name = "temperature at fixed height above MSL"; T_FH:units = "kelvin"; T_FH:valid_range = 160.f, 340.f; T_FH:_FillValue = -99999.f; // u wind component at fixed height above MSL float uW_FH(record, fixedHeight, y, x); uW_FH:record = "valtime, reftime"; uW_FH:_Navigation_var = "nav"; uW_FH:fixedHeight = "fixed height level"; uW_FH:long_name = "eastward wind at fixed height above MSL"; uW_FH:units = "meters/second"; uW_FH:valid_range = -300.f, 300.f; uW_FH:_FillValue = -99999.f; // v wind component at fixed height above MSL float vW_FH(record, fixedHeight, y, x); vW_FH:record = "valtime, reftime"; vW_FH:_Navigation_var = "nav"; vW_FH:fixedHeight = "fixed height level"; vW_FH:long_name = "northward wind at fixed height above MSL"; vW_FH:units = "meters/second"; vW_FH:valid_range = -300.f, 300.f; vW_FH:_FillValue = -99999.f; // surface pressure float P(record, y, x); P:record = "valtime, reftime"; P:_Navigation_var = "nav"; P:long_name = "pressure at surface"; P:units = "pascals"; P:valid_range = 30000.f, 110000.f; P:_FillValue = -99999.f; // precipitable water float PW(record, y, x); PW:record = "valtime, reftime"; PW:_Navigation_var = "nav"; PW:long_name = "precipitable water"; PW:units = "kg/m2"; PW:valid_range = 0.f, 100.f; PW:_FillValue = -99999.f; // relative humidity (atmos col) float RH_AC(record, y, x); RH_AC:record = "valtime, reftime"; RH_AC:_Navigation_var = "nav"; RH_AC:long_name = "relative humidity (atmos col)"; RH_AC:units = "percent"; RH_AC:valid_range = -10.f, 110.f; RH_AC:_FillValue = -99999.f; // geopotential height at tropopause float GH_T(record, y, x); GH_T:record = "valtime, reftime"; GH_T:_Navigation_var = "nav"; GH_T:long_name = "geopotential height at tropopause"; GH_T:units = "meters"; GH_T:valid_range = -300.f, 100000.f; GH_T:_FillValue = -99999.f; // temperature at tropopause float T_T(record, y, x); T_T:record = "valtime, reftime"; T_T:_Navigation_var = "nav"; T_T:long_name = "temperature at tropopause"; T_T:units = "kelvin"; T_T:valid_range = 160.f, 340.f; T_T:_FillValue = -99999.f; // atmospheric pressure at tropopause float P_T(record, y, x); P_T:record = "valtime, reftime"; P_T:_Navigation_var = "nav"; P_T:long_name = "pressure at tropopause"; P_T:units = "pascals"; P_T:valid_range = 0.f, 150000.f; P_T:_FillValue = -99999.f; // vertical speed shear at tropopause float VSS_T(record, y, x); VSS_T:record = "valtime, reftime"; VSS_T:_Navigation_var = "nav"; VSS_T:long_name = "vertical speed shear at tropopause"; VSS_T:units = "1/s"; VSS_T:_FillValue = -99999.f; // surface lifted index float LI(record, y, x); LI:record = "valtime, reftime"; LI:_Navigation_var = "nav"; LI:long_name = "surface lifted index"; LI:units = "kelvin"; LI:_FillValue = -99999.f; // surface convective available potential energy float CAPE(record, y, x); CAPE:record = "valtime, reftime"; CAPE:_Navigation_var = "nav"; CAPE:long_name = "surface convective available potential energy"; CAPE:units = "J/kg"; CAPE:valid_range = 0.f, 20000.f; CAPE:_FillValue = -99999.f; // surface convective inhibition float CIN(record, y, x); CIN:record = "valtime, reftime"; CIN:_Navigation_var = "nav"; CIN:long_name = "surface convective inhibition"; CIN:units = "J/kg"; CIN:valid_range = 0.f, 20000.f; CIN:_FillValue = -99999.f; // Best (4-layer) lifted index [K] (Surface) float LFTX4(record, y, x); LFTX4:record = "valtime, reftime"; LFTX4:_Navigation_var = "nav"; LFTX4:long_name = "Best (4-layer) lifted index"; LFTX4:units = "K"; LFTX4:_FillValue = -99999.f; // Best (4-layer) lifted index [K] (180-0 mb above gnd) float LFTX4180(record, y, x); LFTX4180:record = "valtime, reftime"; LFTX4180:_Navigation_var = "nav"; LFTX4180:long_name = "Best (4-layer) lifted index"; LFTX4180:units = "K"; LFTX4180:_FillValue = -99999.f; // convective available potential energy float CAPE180(record, y, x); CAPE180:record = "valtime, reftime"; CAPE180:_Navigation_var = "nav"; CAPE180:long_name = "convective available potential energy 180-0 mb"; CAPE180:units = "J/kg"; CAPE180:valid_range = 0.f, 20000.f; CAPE180:_FillValue = -99999.f; // convective inhibition float CIN180(record, y, x); CIN180:record = "valtime, reftime"; CIN180:_Navigation_var = "nav"; CIN180:long_name = "convective inhibition 180-0 mb"; CIN180:units = "J/kg"; CIN180:valid_range = 0.f, 20000.f; CIN180:_FillValue = -99999.f; // geopotential height at maximum wind float GH_WMAX(record, y, x); GH_WMAX:record = "valtime, reftime"; GH_WMAX:_Navigation_var = "nav"; GH_WMAX:long_name = "geopotential height at maximum wind"; GH_WMAX:units = "meters"; GH_WMAX:valid_range = -300.f, 100000.f; GH_WMAX:_FillValue = -99999.f; // temperature at maximum wind float T_WMAX(record, y, x); T_WMAX:record = "valtime, reftime"; T_WMAX:_Navigation_var = "nav"; T_WMAX:long_name = "temperature at maximum wind"; T_WMAX:units = "kelvin"; T_WMAX:valid_range = 160.f, 340.f; T_WMAX:_FillValue = -99999.f; // atmospheric pressure at max wind float P_WMAX(record, y, x); P_WMAX:record = "valtime, reftime"; P_WMAX:_Navigation_var = "nav"; P_WMAX:long_name = "pressure at maximum wind"; P_WMAX:units = "pascals"; P_WMAX:valid_range = 0.f, 150000.f; P_WMAX:_FillValue = -99999.f; // geopotential height of surface float GH_S(record, y, x); GH_S:record = "valtime, reftime"; GH_S:_Navigation_var = "nav"; GH_S:long_name = "geopotential height of surface"; GH_S:units = "meters"; GH_S:valid_range = -500.f, 10000.f; GH_S:_FillValue = -99999.f; // atmospheric pressure at mean sea level float PMSL(record, y, x); PMSL:record = "valtime, reftime"; PMSL:_Navigation_var = "nav"; PMSL:long_name = "pressure at mean sea level"; PMSL:units = "pascals"; PMSL:valid_range = 85000.f, 110000.f; PMSL:_FillValue = -99999.f; // relative humidity at sigma 0.44-1.00 float RH_SONE(record, y, x); RH_SONE:record = "valtime, reftime"; RH_SONE:_Navigation_var = "nav"; RH_SONE:long_name = "relative humidity - sigma 0.44-1.00"; RH_SONE:units = "percent"; RH_SONE:valid_range = -10.f, 110.f; RH_SONE:_FillValue = -99999.f; // relative humidity at sigma 0.72-0.94 float RH_STWO(record, y, x); RH_STWO:record = "valtime, reftime"; RH_STWO:_Navigation_var = "nav"; RH_STWO:long_name = "relative humidity - sigma 0.72-0.94"; RH_STWO:units = "percent"; RH_STWO:valid_range = -10.f, 110.f; RH_STWO:_FillValue = -99999.f; // relative humidity at sigma 0.44-0.72 float RH_STRE(record, y, x); RH_STRE:record = "valtime, reftime"; RH_STRE:_Navigation_var = "nav"; RH_STRE:long_name = "relative humidity - sigma 0.44-0.72"; RH_STRE:units = "percent"; RH_STRE:valid_range = -10.f, 110.f; RH_STRE:_FillValue = -99999.f; // relative humidity at sigma 0.33-1.00 float RH_SFOUR(record, y, x); RH_SFOUR:record = "valtime, reftime"; RH_SFOUR:_Navigation_var = "nav"; RH_SFOUR:long_name = "relative humidity - sigma 0.33-1.00"; RH_SFOUR:units = "percent"; RH_SFOUR:valid_range = -10.f, 110.f; RH_SFOUR:_FillValue = -99999.f; // potential temperature, sigma=0.9950 float PT_SIG(record, y, x); PT_SIG:record = "valtime, reftime"; PT_SIG:_Navigation_var = "nav"; PT_SIG:long_name = "potential temperature at sigma=0.9950"; PT_SIG:units = "kelvin"; PT_SIG:valid_range = 160.f, 340.f; PT_SIG:_FillValue = -99999.f; // temperature, sigma=0.9950 float T_SIG(record, y, x); T_SIG:record = "valtime, reftime"; T_SIG:_Navigation_var = "nav"; T_SIG:long_name = "temperature at sigma=0.9950"; T_SIG:units = "kelvin"; T_SIG:valid_range = 160.f, 340.f; T_SIG:_FillValue = -99999.f; // pressure vertical velocity, sigma=0.9950 float PVV_SIG(record, y, x); PVV_SIG:record = "valtime, reftime"; PVV_SIG:_Navigation_var = "nav"; PVV_SIG:long_name = "pressure vertical velocity, sigma=0.9950"; PVV_SIG:units = "Pa/s"; PVV_SIG:valid_range = -10.f, 10.f; PVV_SIG:_FillValue = -99999.f; // relative humidity, sigma=0.9950 float RH_SIG(record, y, x); RH_SIG:record = "valtime, reftime"; RH_SIG:_Navigation_var = "nav"; RH_SIG:long_name = "relative humidity, sigma=0.9950"; RH_SIG:units = "percent"; RH_SIG:valid_range = -10.f, 110.f; RH_SIG:_FillValue = -99999.f; // TOZNE - Total ozone [Dobson] float TOZNE(record, y, x); TOZNE:record = "valtime, reftime"; TOZNE:_Navigation_var = "nav"; TOZNE:long_name = "total ozone"; TOZNE:units = "dobson"; TOZNE:_FillValue = -99999.f; // u wind component at tropopause float uW_T(record, y, x); uW_T:record = "valtime, reftime"; uW_T:_Navigation_var = "nav"; uW_T:long_name = "eastward wind at tropopause"; uW_T:units = "meters/second"; uW_T:valid_range = -300.f, 300.f; uW_T:_FillValue = -99999.f; // u wind component at max wind float uW_WMAX(record, y, x); uW_WMAX:record = "valtime, reftime"; uW_WMAX:_Navigation_var = "nav"; uW_WMAX:long_name = "eastward wind at maximum wind"; uW_WMAX:units = "meters/second"; uW_WMAX:valid_range = -300.f, 300.f; uW_WMAX:_FillValue = -99999.f; // eastward wind at sigma=0.9950 float uW_SIG(record, y, x); uW_SIG:record = "valtime, reftime"; uW_SIG:_Navigation_var = "nav"; uW_SIG:long_name = "eastward wind at sigma=0.9950"; uW_SIG:units = "meters/second"; uW_SIG:valid_range = -300.f, 300.f; uW_SIG:_FillValue = -99999.f; // v wind component at tropopause float vW_T(record, y, x); vW_T:record = "valtime, reftime"; vW_T:_Navigation_var = "nav"; vW_T:long_name = "northward wind at tropopause"; vW_T:units = "meters/second"; vW_T:valid_range = -300.f, 300.f; vW_T:_FillValue = -99999.f; // v wind component at maximum float vW_WMAX(record, y, x); vW_WMAX:record = "valtime, reftime"; vW_WMAX:_Navigation_var = "nav"; vW_WMAX:long_name = "northward wind at maximum wind"; vW_WMAX:units = "meters/second"; vW_WMAX:valid_range = -300.f, 300.f; vW_WMAX:_FillValue = -99999.f; // northward wind at sigma=0.9950 float vW_SIG(record, y, x); vW_SIG:record = "valtime, reftime"; vW_SIG:_Navigation_var = "nav"; vW_SIG:long_name = "northward wind at sigma=0.9950"; vW_SIG:units = "meters/second"; vW_SIG:valid_range = -300.f, 300.f; vW_SIG:_FillValue = -99999.f; // sensible heat flux at surface float SHTFL(record, y, x); SHTFL:record = "valtime, reftime"; SHTFL:_Navigation_var = "nav"; SHTFL:long_name = "sensible heat flux at surface"; SHTFL:units = "W/m2"; SHTFL:_FillValue = -99999.f; // latent heat flux at surface float LHTFL(record, y, x); LHTFL:record = "valtime, reftime"; LHTFL:_Navigation_var = "nav"; LHTFL:long_name = "latent heat flux at surface"; LHTFL:units = "W/m2"; LHTFL:_FillValue = -99999.f; // temperature at surface float T_S(record, y, x); T_S:record = "valtime, reftime"; T_S:_Navigation_var = "nav"; T_S:long_name = "temperature at surface"; T_S:units = "kelvin"; T_S:valid_range = 160.f, 340.f; T_S:_FillValue = -99999.f; // volumetric soil moisture 0-10cm down from surface float USOILW(record, y, x); USOILW:record = "valtime, reftime"; USOILW:_Navigation_var = "nav"; USOILW:long_name = "volumetric soil moisture 0-10cm down from surface"; USOILW:units = "fraction"; USOILW:_FillValue = -99999.f; // volumetric soil moisture 10-200cm down from surface float LSOILW(record, y, x); LSOILW:record = "valtime, reftime"; LSOILW:_Navigation_var = "nav"; LSOILW:long_name = "volumetric soil moisture 10-200cm down from surface"; LSOILW:units = "fraction"; LSOILW:_FillValue = -99999.f; // temperature 0-10 cm down from surface float T_10D(record, y, x); T_10D:record = "valtime, reftime"; T_10D:_Navigation_var = "nav"; T_10D:long_name = "temperature 0-10 cm down from surface"; T_10D:units = "kelvin"; T_10D:valid_range = 160.f, 340.f; T_10D:_FillValue = -99999.f; // temperature 10-200 cm down from surface float T_200D(record, y, x); T_200D:record = "valtime, reftime"; T_200D:_Navigation_var = "nav"; T_200D:long_name = "temperature 10-200 cm down from surface"; T_200D:units = "kelvin"; T_200D:valid_range = 160.f, 340.f; T_200D:_FillValue = -99999.f; // accumulated snow float ACCS(record, y, x); ACCS:record = "valtime, reftime"; ACCS:_Navigation_var = "nav"; ACCS:long_name = "accumulated snow"; ACCS:units = "kg/m2"; ACCS:_FillValue = -99999.f; // downward long wave flux at surface float DLWF_S(record, y, x); DLWF_S:record = "valtime, reftime"; DLWF_S:_Navigation_var = "nav"; DLWF_S:long_name = "downward long wave flux at surface"; DLWF_S:units = "W/m2"; DLWF_S:_FillValue = -99999.f; // upward long wave flux at surface float ULWF_S(record, y, x); ULWF_S:record = "valtime, reftime"; ULWF_S:_Navigation_var = "nav"; ULWF_S:long_name = "upward long wave flux at surface"; ULWF_S:units = "W/m2"; ULWF_S:_FillValue = -99999.f; // upward long wave flux at nom. top float ULWF_NT(record, y, x); ULWF_NT:record = "valtime, reftime"; ULWF_NT:_Navigation_var = "nav"; ULWF_NT:long_name = "upward long wave flux at nom. top"; ULWF_NT:units = "W/m2"; ULWF_NT:_FillValue = -99999.f; // upward short wave flux at nom. top float USWF_NT(record, y, x); USWF_NT:record = "valtime, reftime"; USWF_NT:_Navigation_var = "nav"; USWF_NT:long_name = "upward short wave flux at nom. top"; USWF_NT:units = "W/m2"; USWF_NT:_FillValue = -99999.f; // upward short wave flux at surface float USWF_S(record, y, x); USWF_S:record = "valtime, reftime"; USWF_S:_Navigation_var = "nav"; USWF_S:long_name = "upward short wave flux at surface"; USWF_S:units = "W/m2"; USWF_S:_FillValue = -99999.f; // downward short wave flux at surface float DSWF_S(record, y, x); DSWF_S:record = "valtime, reftime"; DSWF_S:_Navigation_var = "nav"; DSWF_S:long_name = "downward short wave flux at surface"; DSWF_S:units = "W/m2"; DSWF_S:_FillValue = -99999.f; // total cloud cover - high cloud layer float TCC_HCLD(record, y, x); TCC_HCLD:record = "valtime, reftime"; TCC_HCLD:_Navigation_var = "nav"; TCC_HCLD:long_name = "total cloud cover - high cloud layer"; TCC_HCLD:units = "percent"; TCC_HCLD:_FillValue = -99999.f; // pressure at top of high cloud layer float P_THCLD(record, y, x); P_THCLD:record = "valtime, reftime"; P_THCLD:_Navigation_var = "nav"; P_THCLD:long_name = "pressure at top of high cloud layer"; P_THCLD:units = "pascals"; P_THCLD:valid_range = 0.f, 150000.f; P_THCLD:_FillValue = -99999.f; // pressure at bottom of high cloud layer float P_BHCLD(record, y, x); P_BHCLD:record = "valtime, reftime"; P_BHCLD:_Navigation_var = "nav"; P_BHCLD:long_name = "pressure at bottom of high cloud layer"; P_BHCLD:units = "pascals"; P_BHCLD:valid_range = 0.f, 150000.f; P_BHCLD:_FillValue = -99999.f; // temperature at top of high cloud layer float T_THCLD(record, y, x); T_THCLD:record = "valtime, reftime"; T_THCLD:_Navigation_var = "nav"; T_THCLD:long_name = "temperature at top of high cloud layer"; T_THCLD:units = "kelvin"; T_THCLD:valid_range = 160.f, 340.f; T_THCLD:_FillValue = -99999.f; // total cloud cover - medium cloud layer float TCC_MCLD(record, y, x); TCC_MCLD:record = "valtime, reftime"; TCC_MCLD:_Navigation_var = "nav"; TCC_MCLD:long_name = "total cloud cover - medium cloud layer"; TCC_MCLD:units = "percent"; TCC_MCLD:_FillValue = -99999.f; // pressure at top of medium cloud layer float P_TMCLD(record, y, x); P_TMCLD:record = "valtime, reftime"; P_TMCLD:_Navigation_var = "nav"; P_TMCLD:long_name = "pressure at top of medium cloud layer"; P_TMCLD:units = "pascals"; P_TMCLD:valid_range = 0.f, 150000.f; P_TMCLD:_FillValue = -99999.f; // pressure at bottom of medium cloud layer float P_BMCLD(record, y, x); P_BMCLD:record = "valtime, reftime"; P_BMCLD:_Navigation_var = "nav"; P_BMCLD:long_name = "pressure at bottom of medium cloud layer"; P_BMCLD:units = "pascals"; P_BMCLD:valid_range = 0.f, 150000.f; P_BMCLD:_FillValue = -99999.f; // temperature at top of medium cloud layer float T_TMCLD(record, y, x); T_TMCLD:record = "valtime, reftime"; T_TMCLD:_Navigation_var = "nav"; T_TMCLD:long_name = "temperature at top of medium cloud layer"; T_TMCLD:units = "kelvin"; T_TMCLD:valid_range = 160.f, 340.f; T_TMCLD:_FillValue = -99999.f; // total cloud cover - low cloud layer float TCC_LCLD(record, y, x); TCC_LCLD:record = "valtime, reftime"; TCC_LCLD:_Navigation_var = "nav"; TCC_LCLD:long_name = "total cloud cover - low cloud layer"; TCC_LCLD:units = "percent"; TCC_LCLD:_FillValue = -99999.f; // pressure at top of low cloud layer float P_TLCLD(record, y, x); P_TLCLD:record = "valtime, reftime"; P_TLCLD:_Navigation_var = "nav"; P_TLCLD:long_name = "pressure at top of low cloud layer"; P_TLCLD:units = "pascals"; P_TLCLD:valid_range = 0.f, 150000.f; P_TLCLD:_FillValue = -99999.f; // pressure at bottom of low cloud layer float P_BLCLD(record, y, x); P_BLCLD:record = "valtime, reftime"; P_BLCLD:_Navigation_var = "nav"; P_BLCLD:long_name = "pressure at bottom of low cloud layer"; P_BLCLD:units = "pascals"; P_BLCLD:valid_range = 0.f, 150000.f; P_BLCLD:_FillValue = -99999.f; // temperature at top of low cloud layer float T_TLCLD(record, y, x); T_TLCLD:record = "valtime, reftime"; T_TLCLD:_Navigation_var = "nav"; T_TLCLD:long_name = "temperature at top of low cloud layer"; T_TLCLD:units = "kelvin"; T_TLCLD:valid_range = 160.f, 340.f; T_TLCLD:_FillValue = -99999.f; // precipitation rate float PRATE(record, y, x); PRATE:record = "valtime, reftime"; PRATE:_Navigation_var = "nav"; PRATE:long_name = "precipitation rate"; PRATE:units = "kg/m2/s"; PRATE:_FillValue = -99999.f; // convective precipitation rate float CPRAT(record, y, x); CPRAT:record = "valtime, reftime"; CPRAT:_Navigation_var = "nav"; CPRAT:long_name = "convective precipitation rate"; CPRAT:units = "kg/m2/s"; CPRAT:_FillValue = -99999.f; // ground heat flux float GHF(record, y, x); GHF:record = "valtime, reftime"; GHF:_Navigation_var = "nav"; GHF:long_name = "ground heat flux"; GHF:units = "W/m2"; GHF:_FillValue = -99999.f; // land cover float LAND(record, y, x); LAND:record = "valtime, reftime"; LAND:_Navigation_var = "nav"; LAND:long_name = "land cover (1=land, 0=sea)"; LAND:units = "fraction"; LAND:valid_range = 0.f, 1.f; LAND:_FillValue = -99999.f; // ice concentration float ICEC(record, y, x); ICEC:record = "valtime, reftime"; ICEC:_Navigation_var = "nav"; ICEC:long_name = "ice concentration (1=ice, 0=no ice)"; ICEC:units = "fraction"; ICEC:valid_range = 0.f, 1.f; ICEC:_FillValue = -99999.f; // temperature 2m above the ground float T_2M(record, y, x); T_2M:record = "valtime, reftime"; T_2M:_Navigation_var = "nav"; T_2M:long_name = "temperature 2m above the ground"; T_2M:units = "kelvin"; T_2M:valid_range = 160.f, 340.f; T_2M:_FillValue = -99999.f; // specific humidity 2m above ground float SH_2M(record, y, x); SH_2M:record = "valtime, reftime"; SH_2M:_Navigation_var = "nav"; SH_2M:long_name = "specific humidity 2m above ground"; SH_2M:units = "kg/kg"; SH_2M:_FillValue = -99999.f; // maximum temperature 2m above the ground float TMAX_2M(record, y, x); TMAX_2M:record = "valtime, reftime"; TMAX_2M:_Navigation_var = "nav"; TMAX_2M:long_name = "maximum temperature 2m above the ground"; TMAX_2M:units = "kelvin"; TMAX_2M:valid_range = 160.f, 340.f; TMAX_2M:_FillValue = -99999.f; // minimum temperature 2m above the ground float TMIN_2M(record, y, x); TMIN_2M:record = "valtime, reftime"; TMIN_2M:_Navigation_var = "nav"; TMIN_2M:long_name = "minimum temperature 2m above the ground"; TMIN_2M:units = "kelvin"; TMIN_2M:valid_range = 160.f, 340.f; TMIN_2M:_FillValue = -99999.f; // water runoff float WATR(record, y, x); WATR:record = "valtime, reftime"; WATR:_Navigation_var = "nav"; WATR:long_name = "water runoff"; WATR:units = "kg/m2"; WATR:_FillValue = -99999.f; // potential evaporation rate float PEVPR(record, y, x); PEVPR:record = "valtime, reftime"; PEVPR:_Navigation_var = "nav"; PEVPR:long_name = "potential evaporation rate"; PEVPR:units = "W/m2"; PEVPR:_FillValue = -99999.f; // cloud work function float CWF(record, y, x); CWF:record = "valtime, reftime"; CWF:_Navigation_var = "nav"; CWF:long_name = "cloud work function"; CWF:units = "J/kg"; CWF:_FillValue = -99999.f; // planetary boundary layer height float PBLH(record, y, x); PBLH:record = "valtime, reftime"; PBLH:_Navigation_var = "nav"; PBLH:long_name = "planetary boundary layer height"; PBLH:units = "meters"; PBLH:_FillValue = -99999.f; // albedo at the surface float ALBDO(record, y, x); ALBDO:record = "valtime, reftime"; ALBDO:_Navigation_var = "nav"; ALBDO:long_name = "albedo at the surface"; ALBDO:units = "percent"; ALBDO:_FillValue = -99999.f; // total cloud cover - atmos col float TCC_HAC(record, y, x); TCC_HAC:record = "valtime, reftime"; TCC_HAC:_Navigation_var = "nav"; TCC_HAC:long_name = "total cloud cover - atmos col"; TCC_HAC:units = "percent"; TCC_HAC:_FillValue = -99999.f; // total cloud cover - convective cloud float TCC_CON(record, y, x); TCC_CON:record = "valtime, reftime"; TCC_CON:_Navigation_var = "nav"; TCC_CON:long_name = "total cloud cover - convective cloud"; TCC_CON:units = "percent"; TCC_CON:_FillValue = -99999.f; // pressure at top of convective cloud float P_TLCON(record, y, x); P_TLCON:record = "valtime, reftime"; P_TLCON:_Navigation_var = "nav"; P_TLCON:long_name = "pressure at top of convective cloud"; P_TLCON:units = "pascals"; P_TLCON:valid_range = 0.f, 150000.f; P_TLCON:_FillValue = -99999.f; // pressure at bottom of convective cloud float P_BLCON(record, y, x); P_BLCON:record = "valtime, reftime"; P_BLCON:_Navigation_var = "nav"; P_BLCON:long_name = "pressure at bottom of convective cloud"; P_BLCON:units = "pascals"; P_BLCON:valid_range = 0.f, 150000.f; P_BLCON:_FillValue = -99999.f; // total cloud cover - boundary cloud layer float TCC_BND(record, y, x); TCC_BND:record = "valtime, reftime"; TCC_BND:_Navigation_var = "nav"; TCC_BND:long_name = "total cloud cover - boundary cloud layer"; TCC_BND:units = "percent"; TCC_BND:_FillValue = -99999.f; // total precipitation at surface float APCP(record, y, x); APCP:record = "valtime, reftime"; APCP:_Navigation_var = "nav"; APCP:long_name = "total precipitation"; APCP:units = "kg/m2"; APCP:valid_range = 0.f, 1000.f; APCP:_FillValue = -99999.f; // convective precipitation float ACPCP(record, y, x); ACPCP:record = "valtime, reftime"; ACPCP:_Navigation_var = "nav"; ACPCP:long_name = "convective precipitation"; ACPCP:units = "kg/m2"; ACPCP:valid_range = 0.f, 1000.f; ACPCP:_FillValue = -99999.f; // categorical rain at the surface float CRAIN(record, y, x); CRAIN:record = "valtime, reftime"; CRAIN:_Navigation_var = "nav"; CRAIN:long_name = "categorical rain at the surface (1=yes, 0=no)"; CRAIN:units = "flag"; CRAIN:_FillValue = -99999.f; // categorical freezing rain float CFR(record, y, x); CFR:record = "valtime, reftime"; CFR:_Navigation_var = "nav"; CFR:long_name = "categorical freezing rain at the surface (1=yes, 0=no)"; CFR:units = "flag"; CFR:_FillValue = -99999.f; // categorical ice pellets float CIP(record, y, x); CIP:record = "valtime, reftime"; CIP:_Navigation_var = "nav"; CIP:long_name = "categorical ice pellets at the surface (1=yes, 0=no)"; CIP:units = "flag"; CIP:_FillValue = -99999.f; // categorical snow float CS(record, y, x); CS:record = "valtime, reftime"; CS:_Navigation_var = "nav"; CS:long_name = "categorical snow at the surface (1=yes, 0=no)"; CS:units = "flag"; CS:_FillValue = -99999.f; // relative humidity 2m above ground float RH_2M(record, y, x); RH_2M:record = "valtime, reftime"; RH_2M:_Navigation_var = "nav"; RH_2M:long_name = "relative humidity 2m above ground"; RH_2M:units = "percent"; RH_2M:valid_range = -10.f, 110.f; RH_2M:_FillValue = -99999.f; // zonal momentum flux at the surface float ZMF_S(record, y, x); ZMF_S:record = "valtime, reftime"; ZMF_S:_Navigation_var = "nav"; ZMF_S:long_name = "zonal momentum flux at the surface"; ZMF_S:units = "N/m2"; ZMF_S:_FillValue = -99999.f; // eastward wind at 10m above ground float uW_10M(record, y, x); uW_10M:record = "valtime, reftime"; uW_10M:_Navigation_var = "nav"; uW_10M:long_name = "eastward wind at 10m above ground"; uW_10M:units = "meters/second"; uW_10M:valid_range = -300.f, 300.f; uW_10M:_FillValue = -99999.f; // zonal gravity wave stress float ZGWS(record, y, x); ZGWS:record = "valtime, reftime"; ZGWS:_Navigation_var = "nav"; ZGWS:long_name = "zonal gravity wave stress"; ZGWS:units = "N/m2"; ZGWS:_FillValue = -99999.f; // meridional momentum flux float MMF(record, y, x); MMF:record = "valtime, reftime"; MMF:_Navigation_var = "nav"; MMF:long_name = "meridional momentum flux"; MMF:units = "N/m2"; MMF:_FillValue = -99999.f; // northward wind at 10m above ground float vW_10M(record, y, x); vW_10M:record = "valtime, reftime"; vW_10M:_Navigation_var = "nav"; vW_10M:long_name = "northward wind at 10m above ground"; vW_10M:units = "meters/second"; vW_10M:valid_range = -300.f, 300.f; vW_10M:_FillValue = -99999.f; // meridional gravity wave stress float MGWS(record, y, x); MGWS:record = "valtime, reftime"; MGWS:_Navigation_var = "nav"; MGWS:long_name = "meridional gravity wave stress"; MGWS:units = "N/m2"; MGWS:_FillValue = -99999.f; // geopotential height anomaly float GHA(record, numIsoLevel, y, x); GHA:record = "valtime, reftime"; GHA:_Navigation_var = "nav"; GHA:numIsoLevel = "isoLevel"; GHA:long_name = "geopotential height anomaly"; GHA:units = "gpm"; GHA:_FillValue = -99999.f; // 5-wave geopotential height anomaly float WAV5(record, y, x); WAV5:record = "valtime, reftime"; WAV5:_Navigation_var = "nav"; WAV5:long_name = "5-wave geopotential height anomaly - 500 mb"; WAV5:units = "gpm"; WAV5:_FillValue = -99999.f; // time the data is valid at double valtime(record); valtime:long_name = "valid time"; valtime:units = "seconds since (1970-1-1 00:00:00.0)"; // reference time of the model double reftime(record); reftime:long_name = "reference time"; reftime:units = "seconds since (1970-1-1 00:00:00.0)"; // vertical levels double isoLevel(numIsoLevel); isoLevel:long_name = "isobaric levels"; isoLevel:units = "millibars"; double fixedHeightLevels(fixedHeight); fixedHeightLevels:long_name = "fixed height levels"; fixedHeightLevels:units = "meters"; // nice name for originating center char origin(namelen); // nice name for model char model(namelen); // nice name for grid char grid(namelen); //---------------------------------------------------------------------- // navigation information //---------------------------------------------------------------------- // projection typechar nav(namelen);nav:long_name = "projection type"; // version number of cdl definition int version; :history = "created by FSL Data Systems"; :title = "Global 26 layer spectral Aviation Model"; :query = "GDAM.NMC.AVN126.65160PointGlobalLatLon.*"; :age = 21600;data:version = 1; origin = "NOAA/ERL Forecast Systems Laboratory, Boulder CO"; model = "126 wave triangular, 26 layer spectral aviation run"; grid = "global"; nav = "Latitude/Longitude"; isoLevel = 1000.0, 975.0, 950.0, 925.0, 900.0, 850.0, 800.0, 750.0, 700.0, 650.0, 600.0, 550.0, 500.0, 450.0, 400.0, 350.0, 300.0, 250.0, 200.0, 150.0, 100.0, 70.0, 50.0, 30.0, 20.0, 10.0; fixedHeightLevels = 1829.0, 2743.0, 3658.0; } ------- End of Forwarded Message
============================================================================== Robb Kambic Unidata Program Center Software Engineer III Univ. Corp for Atmospheric Research rkambic@xxxxxxxxxxxxxxxx WWW: http://www.unidata.ucar.edu/ ==============================================================================
decoders
archives: