[ncl-talk] Confusion on GFS files in GRIB2
dr.hieronymus at posteo.net
dr.hieronymus at posteo.net
Tue Mar 9 12:15:54 MST 2021
Hello,
Thanks for your advices.
I am using ncl 6.4.0 on Ubuntu 18.04.5 LTS.
First of all I realized that the GFS file extension has to be .grb2.
Otherwise ncl cannot read the file.
I get the following output by using the command: ncl_filedump
gfs.t00z.pgrb2.0p25.f000.grb2
I'm still confused since I get the error/warning regarding the grid.
Moreover, there is no variable named TMP_P0_L103_GLL0.
What is broken?
Thanks in advance.
Copyright (C) 1995-2017 - All Rights Reserved
University Corporation for Atmospheric Research
NCAR Command Language Version 6.4.0
The use of this software is governed by a License Agreement.
See http://www.ncl.ucar.edu/ for more details.
fatal:GdsCEGrid: Invalid grid detected
fatal:NclGRIB2: Couldn't handle dimension information returned by grid
decoding
fatal:NclGRIB2: Deleting reference to parameter because of decoding
error
fatal:GdsCEGrid: Invalid grid detected
fatal:NclGRIB2: Couldn't handle dimension information returned by grid
decoding
fatal:NclGRIB2: Deleting reference to parameter because of decoding
error
fatal:GdsCEGrid: Invalid grid detected
...
...
...
fatal:GdsCEGrid: Invalid grid detected
fatal:NclGRIB2: Couldn't handle dimension information returned by grid
decoding
fatal:NclGRIB2: Deleting reference to parameter because of decoding
error
fatal:GdsCEGrid: Invalid grid detected
fatal:NclGRIB2: Couldn't handle dimension information returned by grid
decoding
fatal:NclGRIB2: Deleting reference to parameter because of decoding
error
Variable: f
Type: file
filename: gfs.t00z.pgrb2.0p25.f000
path: gfs.t00z.pgrb2.0p25.f000.grb2
file global attributes:
dimensions:
lv_ISBL0 = 34
lv_AMSL1 = 3
lv_HTGL2 = 3
lv_PVL3 = 2
lv_HTGL4 = 2
lv_ISBL5 = 31
lv_SIGL6 = 4
lv_ISBL7 = 22
lv_HTGL8 = 7
lv_ISBL9 = 21
lv_ISBL10 = 29
lv_SPDL11 = 2
lv_ISBL12 = 24
lv_DBLL13 = 4
variables:
float lv_DBLL13_l1 ( lv_DBLL13 )
long_name : Depth below land surface
units : m
float lv_DBLL13_l0 ( lv_DBLL13 )
long_name : Depth below land surface
units : m
float lv_ISBL12 ( lv_ISBL12 )
long_name : Isobaric surface
units : Pa
float lv_SPDL11_l1 ( lv_SPDL11 )
long_name : Level at specified pressure difference from ground
to level
units : Pa
float lv_SPDL11_l0 ( lv_SPDL11 )
long_name : Level at specified pressure difference from ground
to level
units : Pa
float lv_ISBL10 ( lv_ISBL10 )
long_name : Isobaric surface
units : Pa
float lv_ISBL9 ( lv_ISBL9 )
long_name : Isobaric surface
units : Pa
float lv_HTGL8 ( lv_HTGL8 )
long_name : Specified height level above ground
units : m
float lv_ISBL7 ( lv_ISBL7 )
long_name : Isobaric surface
units : Pa
float lv_SIGL6_l1 ( lv_SIGL6 )
long_name : Sigma level (sigma value)
units : none
float lv_SIGL6_l0 ( lv_SIGL6 )
long_name : Sigma level (sigma value)
units : none
float lv_ISBL5 ( lv_ISBL5 )
long_name : Isobaric surface
units : Pa
float lv_HTGL4 ( lv_HTGL4 )
long_name : Specified height level above ground
units : m
float lv_PVL3 ( lv_PVL3 )
long_name : Potential vorticity
units : K m2 kg-1 s-1
float lv_HTGL2 ( lv_HTGL2 )
long_name : Specified height level above ground
units : m
float lv_AMSL1 ( lv_AMSL1 )
long_name : Specific altitude above mean sea level
units : m
float lv_ISBL0 ( lv_ISBL0 )
long_name : Isobaric surface
units : Pa
Am 09.03.2021 05:10 schrieb Lyndz:
> Hello,
>
> In addition to Sir Dennis' reply.
>
> *[1] *If you want to plot the surface temperature, use the
> *TMP_P0_L103_GLL0*
>
>
> *Variable: temp*
>
> *Type: float*
>
> *Total Size: 4152960 bytes*
>
> * 1038240 values*
>
> *Number of Dimensions: 2*
>
> *Dimensions and sizes: [lat_0 | 721] x [lon_0 | 1440]*
>
> *Coordinates: *
>
> * lat_0: [90..-90]*
>
> * lon_0: [ 0..359.75]*
>
> *Number Of Attributes: 14*
>
> * initial_time : 11/10/2020 (00:00)*
>
> * forecast_time_units : hours*
>
> * forecast_time : 3*
>
> * level_type : Specified height level above ground (m)*
>
> * parameter_template_discipline_category_number : ( 0, 0, 0, 0 )*
>
> * parameter_discipline_and_category : Meteorological products,
> Temperature*
>
> * grid_type : Latitude/longitude*
>
> * units : K*
>
> * long_name : Temperature*
>
> * production_status : Operational products*
>
> * center : US National Weather Service - NCEP (WMC)*
>
> * lv_HTGL2 : 2*
>
> * _FillValue : 1e+20*
>
> * level : 0*
>
>
>
> *[2] *Check this simple explanation from David Brown's reply in one of
> the
> posts here:
>
>
> https://mailman.ucar.edu/pipermail/ncl-talk/2015-December/004772.html
>
>
>
> *[3] *Have a look at NCL's sample scripts for plotting GRIB2 files
> here:
>
>
> http://www.ncl.ucar.edu/Training/Workshops/UMaine/Scripts/Plymouth/
>
>
>
>
> Sincerely,
>
>
> Lyndz
>
>
>
> On Tue, Mar 9, 2021 at 5:19 AM Dennis Shea <shea at ucar.edu> wrote:
>
>> [1] Please: Always include the version of NCL you are using.
>>
>> %> ncl -V
>>
>> The most recent version is 6.6.2
>>
>> [2] Before processing, you can examine a GRIB file's contents via:
>>
>> %> *ncl_filedump* gfs.t00z.pgrb2.0p25.f001.grb | less
>>
>> Do you see a variable named "TMP_P0_L102_GLL0" ?
>>
>> [3]
>>
>> grib_file = "gfs.t00z.pgrb2.0p25.f001" + ".grb"
>> fin = addfile(grib_file, "r")
>> varnames = getfilevarnames(fin)
>> print(varnames)
>>
>> The output you included shows only vertical dimension variables: lv_*
>> (0) lv_DBLL14_l1
>> (1) lv_DBLL14_l0
>> (2) lv_ISBL13
>> ......SNIP ......
>> (15) lv_HTGL2
>> (16) lv_AMSL1
>> (17) lv_ISBL0
>>
>>
>> Then, NCL tells you that the variable *TMP_P0_L102_GLL0* *is not in
>> the
>> grib file *
>>
>>
>>
>> On Mon, Mar 8, 2021 at 1:35 PM dr.hieronymus--- via ncl-talk <
>> ncl-talk at mailman.ucar.edu> wrote:
>>
>>> Hi,
>>>
>>> Regarding the GFS files, I have written to NCEP. Thanks, that was a
>>> good
>>> idea.
>>>
>>> When using following code:
>>>
>>> ;;; load ncl scripts/files
>>> load "/usr/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>>> load "/usr/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
>>> load "/usr/lib/ncarg/nclscripts/csm/contributed.ncl"
>>>
>>> begin
>>>
>>> ;;; read data from grib file
>>> grib_file = "gfs.t00z.pgrb2.0p25.f001"
>>> fin = addfile(grib_file, "r")
>>> varnames = getfilevarnames(fin)
>>>
>>> print(varnames)
>>> printVarSummary(fin->TMP_P0_L102_GLL0)
>>>
>>> ;;; get variables: level, variable, longitude, latitude
>>> ;t2m = fin->TMP_P0_L102_GLL0(:,:)
>>> ;lon = fin->lon
>>> ;lat = fin->lat
>>>
>>> ;;; convert to degrees
>>> ;t2m = t2m-273.15
>>>
>>> end
>>>
>>> I get the following error message:
>>>
>>> warning:NclGRIB2: APCP_P8_L1 contains records that NCL cannot
>>> currently
>>> differentiate. One or more records will be ignored.
>>> warning:NclGRIB2: ACPCP_P8_L1 contains records that NCL cannot
>>> currently
>>> differentiate. One or more records will be ignored.
>>> fatal:GdsCEGrid: Invalid grid detected
>>> fatal:NclGRIB2: Couldn't handle dimension information returned by
>>> grid
>>> decoding
>>> fatal:NclGRIB2: Deleting reference to parameter because of decoding
>>> error
>>> fatal:GdsCEGrid: Invalid grid detected
>>> fatal:NclGRIB2: Couldn't handle dimension information returned by
>>> grid
>>> decoding
>>> fatal:NclGRIB2: Deleting reference to parameter because of decoding
>>> error
>>> ...
>>> ...
>>> ...
>>> fatal:GdsCEGrid: Invalid grid detected
>>> fatal:NclGRIB2: Couldn't handle dimension information returned by
>>> grid
>>> decoding
>>> fatal:NclGRIB2: Deleting reference to parameter because of decoding
>>> error
>>> fatal:GdsCEGrid: Invalid grid detected
>>> fatal:NclGRIB2: Couldn't handle dimension information returned by
>>> grid
>>> decoding
>>> fatal:NclGRIB2: Deleting reference to parameter because of decoding
>>> error
>>>
>>>
>>> Variable: varnames
>>> Type: string
>>> Total Size: 144 bytes
>>> 18 values
>>> Number of Dimensions: 1
>>> Dimensions and sizes: [18]
>>> Coordinates:
>>> (0) lv_DBLL14_l1
>>> (1) lv_DBLL14_l0
>>> (2) lv_ISBL13
>>> (3) lv_ISBL12
>>> (4) lv_SPDL11_l1
>>> (5) lv_SPDL11_l0
>>> (6) lv_ISBL10
>>> (7) lv_ISBL9
>>> (8) lv_HTGL8
>>> (9) lv_ISBL7
>>> (10) lv_SIGL6_l1
>>> (11) lv_SIGL6_l0
>>> (12) lv_ISBL5
>>> (13) lv_HTGL4
>>> (14) lv_PVL3
>>> (15) lv_HTGL2
>>> (16) lv_AMSL1
>>> (17) lv_ISBL0
>>> fatal:["Execute.c":6397]:variable (TMP_P0_L102_GLL0) is not in file
>>> (fin)
>>> fatal:["Execute.c":8640]:Execute: Error occurred at or near line 14
>>> in
>>> file temperature_tmp.ncl
>>>
>>> Do I understand correctly that ncl has detected an invalid grid? Why?
>>>
>>> Thanks.
>>>
>>>
>>>
>>> Am 08.03.2021 16:44 schrieb Lyndz:
>>> > Hi,
>>> >
>>> > I'm not sure if this is an ncl question. You should have directed your
>>> > questions to the ncep help page (
>>> > https://www.ncep.noaa.gov/mail_dataquestions/)
>>> >
>>> > *[1] *As far as I know, the .anl files are analyses files and were
>>> > already
>>> > assimilated with observations.
>>> >
>>> > *[2]* If you want to use the forecast, then use the files with the
>>> > following format (
>>> >
>>> https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.20210308/12/
>>> ):
>>> >
>>> > gfs.t12z.pgrb2.0p25.f000
>>> > <
>>> https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.20210308/12/gfs.t12z.pgrb2.0p25.f000
>>> >
>>> >
>>> > gfs.t12z.pgrb2.0p25.f001
>>> > <
>>> https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/gfs.20210308/12/gfs.t12z.pgrb2.0p25.f001
>>> >
>>> >
>>> > etc..
>>> >
>>> > No need to download the other files!
>>> >
>>> > ncl_filedump gfs.t12z.pgrb2.0p25.f000.grb will give you the contents
>>> > of the file.
>>> >
>>> > If you want temperature, then look for the keyword "Temperature". This
>>> > will give u information about the variables such as below:
>>> >
>>> > float TMP_P0_L102_GLL0 ( lv_AMSL1, lat_0, lon_0 )
>>> >
>>> > center : US National Weather Service - NCEP (WMC)
>>> >
>>> > 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 : Specific altitude above mean sea level (m)
>>> >
>>> > forecast_time : 72
>>> >
>>> > forecast_time_units : hours
>>> >
>>> > initial_time : 03/08/2021 (00:00)
>>> >
>>> > The variable name is the same for other GFS files, regardless of
>>> > resolution.
>>> >
>>> > *[3]* For documentation, check this:
>>> >
>>> https://www.emc.ncep.noaa.gov/emc/pages/numerical_forecast_systems/gfs/documentation.php
>>> >
>>> > *[4] *The files are archived in rda.ucar.edu. For the 25km GFS, for
>>> > example, see this link:
>>> >
>>> > https://rda.ucar.edu/datasets/ds084.1/#!docs
>>> >
>>> >
>>> >
>>> > Hope this helps.
>>> >
>>> > --Lyndz
>>> >
>>> >
>>> >
>>> > On Mon, Mar 8, 2021 at 8:05 PM dr.hieronymus--- via ncl-talk <
>>> > ncl-talk at mailman.ucar.edu> wrote:
>>> >
>>> >> Hello,
>>> >>
>>> >> I am trying to dig through GFS files in GRIB2 format on NCEP's FTP
>>> >> server (https://www.nco.ncep.noaa.gov/pmb/products/gfs/).
>>> >>
>>> >> Unfortunately, it is not very easy to get a proper overview.
>>> >> Therefore,
>>> >> my first question is whether there is documentation somewhere that
>>> >> describes the different formats/variants in detail.
>>> >>
>>> >> What one quickly notice and easy understand is that the GFS files are
>>> >> available in different resolutions (0.25°, 0.50°, 1.00°) and each GFS
>>> >> file is described by an index file. The GFS files with 0.25°
>>> >> resolution
>>> >> have an hourly granularity and the GFS files with 0.50° and 1.00°
>>> >> resolution have a three-hourly granularity.
>>> >>
>>> >> Then, there are the .anl and .f000 GFS files. I don't understand the
>>> >> difference between .anl and .f000. Is .f000 not a forecast?
>>> >> Furthermore,
>>> >> I noticed that the index files are different regarding .f000 and
>>> >> .f001-384 (0.25°) and .f000 and .f003-384 (0.50°, 1.00°).
>>> >>
>>> >> What also confuses me are the different GFS files, namely pgrb2,
>>> >> pgrb2b,
>>> >> pgrb2full and sfluxgrbfFFF. What are the differences exactly?
>>> >> According
>>> >> to the corresponding index files, the same physical variables are
>>> >> available in all different GFS files. Do these variables always have
>>> >> the
>>> >> same values in all GFS files? Doesn't it matter which file I use
>>> >> when
>>> >> I have decided on a resolution?
>>> >>
>>> >> I am actually only interested in the temperature 2 meters above the
>>> >> ground. Which file should I simply use?
>>> >>
>>> >> In addition, I also wanted to know if the initial values for each
>>> >> model
>>> >> run (00, 06, 12, 18) are published somewhere.
>>> >>
>>> >> Thank you in advance for your help.
>>> >> _______________________________________________
>>> >> ncl-talk mailing list
>>> >> ncl-talk at mailman.ucar.edu
>>> >> List instructions, subscriber options, unsubscribe:
>>> >> https://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>> _______________________________________________
>>> ncl-talk mailing list
>>> ncl-talk at mailman.ucar.edu
>>> List instructions, subscriber options, unsubscribe:
>>> https://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
More information about the ncl-talk
mailing list