#97 closed defect (fixed)
BUFR encoding for MetOp Satellite ID not working.
Reported by: | Dave Offiler | Owned by: | Dave Offiler |
---|---|---|---|
Priority: | major | Milestone: | 1.0 |
Component: | ropp_io | Version: | 0.9 |
Keywords: | BUFR | Cc: |
Description
When encoding old CHAMP occulations pretending to be new GRAS data for GTS testing purposes, the 'Satellite ID' is being coded as 'missing' and not '4' as expected for MetOp-2 (aka MetOp-A). As this is the principle parameter which distringuishes GRAS from other missions (especially so in OPS), this needs fixing asap.
Change history (2)
comment:1 by , 18 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:2 by , 18 years ago
Version: | → 0.9 |
---|
Note:
See TracTickets
for help on using tickets.
To set the BUFR ID codes, the encoder uses the the ..%leo_id string in the RO data structure from the netCDF files. DMI were setting this to "MET2" (=BUFR Code 4) as agreed in prior email discussions.
A (plain-text) look-up table is installed to BUFR_LIBRARY/roppbufrcodes.nl as part of ROPP_IO (though if this file can't be read, a default internal table is used). If the encoder can't find a match between the ..%leo_id string and one in the look-up table (file or default), it encodes 'missing'. The decoder also uses this mechanism in reverse.
Checking the roppbufrcodes.nl file, it was set up as "META", "METB" and "METC", not "MET1", "MET2", "MET3" (note this ID string is just for ROPP, independent of the WMO tables). Hence the lookup was not finding a match. Even if a match had been found, META would have codes to 3, and METB to 4 (ie an incorrect mapping of MetOp-A to MetOp-1 when MetOp-2 is now the de facto convention. The in-line coded defaults were MET1,2,3-->BUFR 3,4,5
There are three options:
1) remove the roppbufrcodes.nl file and rely on the internal default table. This would work, but removes future flexibility to add new missions (the code would have to be edited and re-built)
2) Change META, METB, METC in roppbufrcodes.nl to MET1, MET2, MET3. This would then code MET2 --> 4 in the BUFR.
3) set ..%leo_id instead to "META" in the DMI processor; change roppbufrcodes.nl BUFR codes for META,B,C from "003, 004, 005" to "004, 003, 005" to get the correct mapping
(1) removes flexiblity and is not a ong-term solution; (2) is the most trivial change; (3) would need the internal default tables updating to match, but has the advantage that it uses the in-flight MetOp ID which would be more familiar to users.
Discussions with Martin resulted in option (2) being prefered, so the ROPP ID will become 'META' for MetOp-1 (MetOp-2), mapping to BUFR code 4.
An updated roppbufrcodes.nl has been provided to Martin and BUFR code 4 is now being correctly encoded. Martin's build does not update the application code.
Updated roppbufecodes.nl ropp2bufr.f90 and bufr2ropp.f90 [modified default in-line look up tables in ConvertCodes()] as [997]
Updated MetOp IDs in Table 5.1 of User Guide as [998]