Opened 13 years ago

Closed 13 years ago

#231 closed defect (fixed)

EUMETSAT BUFR decode problem

Reported by: Dave Offiler Owned by: Dave Offiler
Priority: normal Milestone: 5.0
Component: ropp_io Version: 4.1
Keywords: BUFR, EUMESAT, Vertical significance Cc:

Description

Axel has built the ECMWF library and built ROPP_prototype against it, but notes a problem:

thanks, got it to work with the ECMWF bufr library now. 
I can do ropp2bufr with a netCDF file, and also go back to bufr with bufr2ropp. 
BUT: I cannot work with bufr2ropp on our bufr files generated here with our bufrizer. 
The following comes up:

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

$ bufr2ropp gras_20110601_121741_metopa_23950_eps_t_thn.l1_bufr -o ropp.nc

 --------------------------------------------------------
                      ROPP BUFR Decoder
                     14:15UT 01-Jun-2011
 --------------------------------------------------------

INFO (from bufr2ropp):  Reading gras_20110601_121741_metopa_23950_eps_t_thn.l1_bufr
                   ECMWF

      BUFR DECODING SOFTWARE VERSION -  7.2
            1 APRIL  2007.



 Your path for bufr tables is :
 /homespace/engeln/linux/.virtualenvs/ROPP5//data/bufr/
BUFR TABLES TO BE LOADED  B0000000000000013000.TXT,D0000000000000013000.TXT

ERROR (from ConvertBUFRtoROPP):  Wrong vertical signficance, not surface: **********

ERROR (from ConvertBUFRtoROPP):  Wrong vertical signficance, not surface: **********

ERROR (from ConvertBUFRtoROPP):  Wrong vertical signficance, not surface: **********
INFO (from bufr2ropp):       3 new profiles saved in total

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

Now Simon tells me we just set this field to missing since we don't have any level 2 data, 
but ROPP seems to expect something in this entry. 
I assume that is a problem then on the ROPP implementation? 
I also attached the bufr file. 

This is caused by ropp2bufr hard-coding zero for this element, while EUMETSAT encode 'missing', and bufr2ropp check only for zero being valid. For EUM-BUFR, 'missing' is interpreted as an invalid value (and overflowing the allowed fields width)

The solution is to skip both the Level 2c data conversion and the error message is vertical significance is 'missing'.

Change history (1)

comment:1 by Dave Offiler, 13 years ago

Resolution: fixed
Status: newclosed

Changed test in bufr2ropp_mod.f90 for surface significance value. Parameter is now tested in undecoded (REAL) array for zero (valid) and any other value not missing. If missing, do nothing.

Also modified bufr2ropp_mo.f90 and bufr2ropp_ec.f90 to correct logic error in counting decoded and converted/saved profiles. (Was assuming a successfully decoded message was also correctly converted and saved to ROPP netCDF).

Tested against file supplied by Axel (pre-edits reproduces Axel's error output) and now generates expected 3 files or a multifile with -m) with no reported errors.

Also run tests/t_bufr2ropp test successfully, as regression test for ROPP-generated BUFR.

Checked in as[2881] (+ minor correction [2282])

Note: See TracTickets for help on using tickets.