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'.
Note:
See TracTickets
for help on using tickets.
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])