[Met_help] [rt.rap.ucar.edu #87511] History for GRIB1 Error

John Halley Gotway via RT met_help at ucar.edu
Thu Oct 25 09:56:45 MDT 2018


----------------------------------------------------------------
  Initial Request
----------------------------------------------------------------

John, I am setting up point stat to verify cloud base height.  I am using a
NETcdf file the contains cloud base height (CDCB) grib 1 code 227.  The
error is below:

ERROR  : 
[1194 qcteam DEV9 /h/WXQC/testenv/bin -]> python runPointStat.py galwem all
20181007 -enddate 20181007
empty
[]
[]
/h/data/global/WXQC/data/galwem
0
fcstfile= /h/data/global/WXQC/data/galwem/1810070000
/h/data/global/WXQC/data/galwem
galwem 0 >=0 [] [] [] NEAREST 1 galwem all
/h/WXQC/met-6.1/data/config/PointStatConfig_CB
['/h/WXQC/met-6.1/bin/point_stat',
'/h/data/global/WXQC/data/galwem/1810070000',
'/h/data/global/WXQC/data/met/nc_obs/cdcb/2018100700.nc',
'/h/WXQC/met-6.1/data/config/PointStatConfig_CB_updated', '-outdir',
'/h/data/global/WXQC/data/met/ptstat/mdlob_pairs/galwem/CB', '-v', '4']
DEBUG 1: Reading user-defined grib1 MET_GRIB_TABLES file:
/h/data/global/WXQC/data/met/config/grib2/grib1_af_131_57.txt
DEBUG 1: Reading user-defined grib2 MET_GRIB_TABLES file:
/h/data/global/WXQC/data/met/config/grib2/grib2_geps.txt
DEBUG 1: Default Config File:
/h/WXQC/met-6.1/share/met/config/PointStatConfig_default
DEBUG 1: User Config File:
/h/WXQC/met-6.1/data/config/PointStatConfig_CB_updated
DEBUG 4: Met2dDataFileFactory::new_met_2d_data_file() -> created new
Met2dDataFile object of type "FileType_Gb2".
DEBUG 4: Switching the GRIB2 radius of the earth value of 6367.47 km to
6371.2 km for internal consistency.
DEBUG 4: 
DEBUG 4: Latitude/Longitude Grid Data:
DEBUG 4:      lat_ll: -90
DEBUG 4:      lon_ll: -0
DEBUG 4:   delta_lat: 0.25
DEBUG 4:   delta_lon: 0.25
DEBUG 4:        Nlat: 721
DEBUG 4:        Nlon: 1440
DEBUG 4: 
DEBUG 4: VarInfoFactory::new_var_info() -> created new VarInfo object of
type "FileType_Gb2".
DEBUG 4: parse_conf_sid_exc() -> Station ID exclusion list contains 0
entries.
DEBUG 3: 
DEBUG 3: Multiple GRIB2 table entries match lookup criteria (parm_name =
CDCB):
DEBUG 3:   parm_name: CDCB, index_a = 0, grib2_mtab = 1, grib2_cntr = 0,
grib2_ltab = 0, index_b = 6, index_c = 11
DEBUG 3:   parm_name: CDCB, index_a = 0, grib2_mtab = 14, grib2_cntr = 57,
grib2_ltab = 0, index_b = 6, index_c = 11
DEBUG 3: Using the first match found:   parm_name: CDCB, index_a = 0,
grib2_mtab = 1, grib2_cntr = 0, grib2_ltab = 0, index_b = 6, index_c = 11
DEBUG 3: 
ERROR  : 
ERROR  : VarInfoGrib::add_grib_code() -> unrecognized GRIB1 field
abbreviation 'CDCB' for table version 2
ERROR  :

The error implies I don't have CDCB defined in my grib1 table but it is in
there for kpds5 227.  In my NETcdf file, the grib1 code number is 227.  So
what is driving this error?

 My config file is also attached.  I didn't think I needed to define the obs
portion of the config file so I have obs=fcst. 

Thanks
Bob


----------------------------------------------------------------
  Complete Ticket History
----------------------------------------------------------------

Subject: GRIB1 Error
From: John Halley Gotway
Time: Wed Oct 24 13:30:16 2018

Bob,

Thanks for sending those files.  Looking in the Point-Stat config
file, I'm
confused as to why you'd list CDCB twice:
   field = [
      {
        name       = "CDCB";
        level      = [ "Z0" ];
        cnt_thresh = [ >=0 ];
      },
      {
        name       = "CDCB";
        level      = [ "Z0" ];
        cat_thresh = [ <=914.4, <=304.8, <=152.4 ];
      }
   ];

Instead, you should be able to just list it once, like this:
   field = [
      {
        name       = "CDCB";
        level      = [ "Z0" ];
        cnt_thresh = [ >=0 ];
        cat_thresh = [ <=914.4, <=304.8, <=152.4 ];
      }

Let me know if that doesn't produce the type of output you want.

As for the question you wrote about, you have 2 choices for how to fix
it.

Option 1:

I assume you have ASCII point observations and are running them
through the
ascii2nc tool.  You can replace the integer of 227 with the string
"CDCB".
We've been trying to move away from identify point observations as
GRIB
codes and instead use strings to describe them.

If you make this change, then that should fix it.

Option 2:

If for some reason, you need to or want to continue using 227 in the
ascii
obs, adding this to your Point-Stat config file should make it happy:
        GRIB1_ptv             = 131;
        GRIB1_center       = 57;
        GRIB1_subcenter = 2;

Here's what's happening right now...
You request "CDCB".  Point-Stat looks for matching GRIB1 table
entries...
but it's using the default parameter table version number (2), center
(7),
and subcenter (1).  And it doesn't find an entry for that combo.
Specifying the ptv, center, and subcenter you want enables it to find
the
match in your custom GRIB table.

I think moving away from GRIB code to identify point observations and
simply using strings makes things simpler and more intuitive.  That
way we
don't have headaches making sure the GRIB codes in the data match the
GRIB
codes in the tables.

Thanks,
John






On Wed, Oct 24, 2018 at 12:22 PM robert.craig.2 at us.af.mil via RT <
met_help at ucar.edu> wrote:

>
> Wed Oct 24 12:22:45 2018: Request 87511 was acted upon.
> Transaction: Ticket created by robert.craig.2 at us.af.mil
>        Queue: met_help
>      Subject: GRIB1 Error
>        Owner: Nobody
>   Requestors: robert.craig.2 at us.af.mil
>       Status: new
>  Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=87511 >
>
>
> John, I am setting up point stat to verify cloud base height.  I am
using a
> NETcdf file the contains cloud base height (CDCB) grib 1 code 227.
The
> error is below:
>
> ERROR  :
> [1194 qcteam DEV9 /h/WXQC/testenv/bin -]> python runPointStat.py
galwem all
> 20181007 -enddate 20181007
> empty
> []
> []
> /h/data/global/WXQC/data/galwem
> 0
> fcstfile= /h/data/global/WXQC/data/galwem/1810070000
> /h/data/global/WXQC/data/galwem
> galwem 0 >=0 [] [] [] NEAREST 1 galwem all
> /h/WXQC/met-6.1/data/config/PointStatConfig_CB
> ['/h/WXQC/met-6.1/bin/point_stat',
> '/h/data/global/WXQC/data/galwem/1810070000',
> '/h/data/global/WXQC/data/met/nc_obs/cdcb/2018100700.nc',
> '/h/WXQC/met-6.1/data/config/PointStatConfig_CB_updated', '-outdir',
> '/h/data/global/WXQC/data/met/ptstat/mdlob_pairs/galwem/CB', '-v',
'4']
> DEBUG 1: Reading user-defined grib1 MET_GRIB_TABLES file:
> /h/data/global/WXQC/data/met/config/grib2/grib1_af_131_57.txt
> DEBUG 1: Reading user-defined grib2 MET_GRIB_TABLES file:
> /h/data/global/WXQC/data/met/config/grib2/grib2_geps.txt
> DEBUG 1: Default Config File:
> /h/WXQC/met-6.1/share/met/config/PointStatConfig_default
> DEBUG 1: User Config File:
> /h/WXQC/met-6.1/data/config/PointStatConfig_CB_updated
> DEBUG 4: Met2dDataFileFactory::new_met_2d_data_file() -> created new
> Met2dDataFile object of type "FileType_Gb2".
> DEBUG 4: Switching the GRIB2 radius of the earth value of 6367.47 km
to
> 6371.2 km for internal consistency.
> DEBUG 4:
> DEBUG 4: Latitude/Longitude Grid Data:
> DEBUG 4:      lat_ll: -90
> DEBUG 4:      lon_ll: -0
> DEBUG 4:   delta_lat: 0.25
> DEBUG 4:   delta_lon: 0.25
> DEBUG 4:        Nlat: 721
> DEBUG 4:        Nlon: 1440
> DEBUG 4:
> DEBUG 4: VarInfoFactory::new_var_info() -> created new VarInfo
object of
> type "FileType_Gb2".
> DEBUG 4: parse_conf_sid_exc() -> Station ID exclusion list contains
0
> entries.
> DEBUG 3:
> DEBUG 3: Multiple GRIB2 table entries match lookup criteria
(parm_name =
> CDCB):
> DEBUG 3:   parm_name: CDCB, index_a = 0, grib2_mtab = 1, grib2_cntr
= 0,
> grib2_ltab = 0, index_b = 6, index_c = 11
> DEBUG 3:   parm_name: CDCB, index_a = 0, grib2_mtab = 14, grib2_cntr
= 57,
> grib2_ltab = 0, index_b = 6, index_c = 11
> DEBUG 3: Using the first match found:   parm_name: CDCB, index_a =
0,
> grib2_mtab = 1, grib2_cntr = 0, grib2_ltab = 0, index_b = 6, index_c
= 11
> DEBUG 3:
> ERROR  :
> ERROR  : VarInfoGrib::add_grib_code() -> unrecognized GRIB1 field
> abbreviation 'CDCB' for table version 2
> ERROR  :
>
> The error implies I don't have CDCB defined in my grib1 table but it
is in
> there for kpds5 227.  In my NETcdf file, the grib1 code number is
227.  So
> what is driving this error?
>
>  My config file is also attached.  I didn't think I needed to define
the
> obs
> portion of the config file so I have obs=fcst.
>
> Thanks
> Bob
>
>

------------------------------------------------
Subject: RE: [Non-DoD Source] Re: [rt.rap.ucar.edu #87511] GRIB1 Error
From: robert.craig.2 at us.af.mil
Time: Thu Oct 25 09:07:37 2018

Thanks, that solved the problem.

Bob

-----Original Message-----
From: John Halley Gotway via RT [mailto:met_help at ucar.edu]
Sent: Wednesday, October 24, 2018 2:30 PM
To: CRAIG, ROBERT J GS-12 USAF ACC 16 WS/WXN
<robert.craig.2 at us.af.mil>
Subject: [Non-DoD Source] Re: [rt.rap.ucar.edu #87511] GRIB1 Error

Bob,

Thanks for sending those files.  Looking in the Point-Stat config
file, I'm confused as to why you'd list CDCB twice:
   field = [
      {
        name       = "CDCB";
        level      = [ "Z0" ];
        cnt_thresh = [ >=0 ];
      },
      {
        name       = "CDCB";
        level      = [ "Z0" ];
        cat_thresh = [ <=914.4, <=304.8, <=152.4 ];
      }
   ];

Instead, you should be able to just list it once, like this:
   field = [
      {
        name       = "CDCB";
        level      = [ "Z0" ];
        cnt_thresh = [ >=0 ];
        cat_thresh = [ <=914.4, <=304.8, <=152.4 ];
      }

Let me know if that doesn't produce the type of output you want.

As for the question you wrote about, you have 2 choices for how to fix
it.

Option 1:

I assume you have ASCII point observations and are running them
through the ascii2nc tool.  You can replace the integer of 227 with
the string "CDCB".
We've been trying to move away from identify point observations as
GRIB codes and instead use strings to describe them.

If you make this change, then that should fix it.

Option 2:

If for some reason, you need to or want to continue using 227 in the
ascii obs, adding this to your Point-Stat config file should make it
happy:
        GRIB1_ptv             = 131;
        GRIB1_center       = 57;
        GRIB1_subcenter = 2;

Here's what's happening right now...
You request "CDCB".  Point-Stat looks for matching GRIB1 table
entries...
but it's using the default parameter table version number (2), center
(7), and subcenter (1).  And it doesn't find an entry for that combo.
Specifying the ptv, center, and subcenter you want enables it to find
the match in your custom GRIB table.

I think moving away from GRIB code to identify point observations and
simply using strings makes things simpler and more intuitive.  That
way we don't have headaches making sure the GRIB codes in the data
match the GRIB codes in the tables.

Thanks,
John






On Wed, Oct 24, 2018 at 12:22 PM robert.craig.2 at us.af.mil via RT <
met_help at ucar.edu> wrote:

>
> Wed Oct 24 12:22:45 2018: Request 87511 was acted upon.
> Transaction: Ticket created by robert.craig.2 at us.af.mil
>        Queue: met_help
>      Subject: GRIB1 Error
>        Owner: Nobody
>   Requestors: robert.craig.2 at us.af.mil
>       Status: new
>  Ticket <URL:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=87511
> >
>
>
> John, I am setting up point stat to verify cloud base height.  I am
> using a NETcdf file the contains cloud base height (CDCB) grib 1
code
> 227.  The error is below:
>
> ERROR  :
> [1194 qcteam DEV9 /h/WXQC/testenv/bin -]> python runPointStat.py
> galwem all
> 20181007 -enddate 20181007
> empty
> []
> []
> /h/data/global/WXQC/data/galwem
> 0
> fcstfile= /h/data/global/WXQC/data/galwem/1810070000
> /h/data/global/WXQC/data/galwem
> galwem 0 >=0 [] [] [] NEAREST 1 galwem all
> /h/WXQC/met-6.1/data/config/PointStatConfig_CB
> ['/h/WXQC/met-6.1/bin/point_stat',
> '/h/data/global/WXQC/data/galwem/1810070000',
> '/h/data/global/WXQC/data/met/nc_obs/cdcb/2018100700.nc',
> '/h/WXQC/met-6.1/data/config/PointStatConfig_CB_updated', '-outdir',
> '/h/data/global/WXQC/data/met/ptstat/mdlob_pairs/galwem/CB', '-v',
> '4'] DEBUG 1: Reading user-defined grib1 MET_GRIB_TABLES file:
> /h/data/global/WXQC/data/met/config/grib2/grib1_af_131_57.txt
> DEBUG 1: Reading user-defined grib2 MET_GRIB_TABLES file:
> /h/data/global/WXQC/data/met/config/grib2/grib2_geps.txt
> DEBUG 1: Default Config File:
> /h/WXQC/met-6.1/share/met/config/PointStatConfig_default
> DEBUG 1: User Config File:
> /h/WXQC/met-6.1/data/config/PointStatConfig_CB_updated
> DEBUG 4: Met2dDataFileFactory::new_met_2d_data_file() -> created new
> Met2dDataFile object of type "FileType_Gb2".
> DEBUG 4: Switching the GRIB2 radius of the earth value of 6367.47 km
> to
> 6371.2 km for internal consistency.
> DEBUG 4:
> DEBUG 4: Latitude/Longitude Grid Data:
> DEBUG 4:      lat_ll: -90
> DEBUG 4:      lon_ll: -0
> DEBUG 4:   delta_lat: 0.25
> DEBUG 4:   delta_lon: 0.25
> DEBUG 4:        Nlat: 721
> DEBUG 4:        Nlon: 1440
> DEBUG 4:
> DEBUG 4: VarInfoFactory::new_var_info() -> created new VarInfo
object
> of type "FileType_Gb2".
> DEBUG 4: parse_conf_sid_exc() -> Station ID exclusion list contains
0
> entries.
> DEBUG 3:
> DEBUG 3: Multiple GRIB2 table entries match lookup criteria
(parm_name
> =
> CDCB):
> DEBUG 3:   parm_name: CDCB, index_a = 0, grib2_mtab = 1, grib2_cntr
= 0,
> grib2_ltab = 0, index_b = 6, index_c = 11
> DEBUG 3:   parm_name: CDCB, index_a = 0, grib2_mtab = 14, grib2_cntr
= 57,
> grib2_ltab = 0, index_b = 6, index_c = 11
> DEBUG 3: Using the first match found:   parm_name: CDCB, index_a =
0,
> grib2_mtab = 1, grib2_cntr = 0, grib2_ltab = 0, index_b = 6, index_c
=
> 11 DEBUG 3:
> ERROR  :
> ERROR  : VarInfoGrib::add_grib_code() -> unrecognized GRIB1 field
> abbreviation 'CDCB' for table version 2 ERROR  :
>
> The error implies I don't have CDCB defined in my grib1 table but it
> is in there for kpds5 227.  In my NETcdf file, the grib1 code number
> is 227.  So what is driving this error?
>
>  My config file is also attached.  I didn't think I needed to define
> the obs portion of the config file so I have obs=fcst.
>
> Thanks
> Bob
>
>



------------------------------------------------


More information about the Met_help mailing list