Interfacing BUFR to NMC systems

advertisement
Interfacing BUFR to NMC
Systems
Jeff Ator
NOAA National Weather Service
United States of America
jeff.ator@noaa.gov
WORLD METEOROLOGICAL ORGANIZATION
RA II/VI Training Seminar on Table-Driven Codes
Muscat, Oman, 10-14 December 2005
BUFR – NMC interface
• In many cases, special software is needed to
interface BUFR to NMC systems
– Obviously, the details vary depending upon the NMC
and BUFR decoder software in question
• In the case of an integrated system, the supplier
may do most (or all?) of this interface work
• This discussion will cover:
– A few hypothetical examples
– Current practices at several NMCs
Hypothetical Example #1
• Situation:
– BUFR decoder requires one BUFR message per file,
with no GTS or other headers included
– NMC software provides multiple BUFR messages in a
single file, with GTS and other communications
headers included
• Solution:
– An interface program would be needed to scan the
NMC file for individual BUFR messages while
ignoring the headers. The program would have to
determine a unique file name for each BUFR message
that was found and then write that message to that file
so that it could later be input to the BUFR decoder
software.
Hypothetical Example #2
• Situation:
– BUFR decoder requires an input file containing one or
more BUFR messages, with no GTS or other headers
included
– NMC software provides each BUFR message in an
individual file with the GTS header included
• Solution:
– An interface program would be needed to scan each
individual file, extract the BUFR message (while
ignoring the GTS header), and append the message to a
single, concatenated file of all BUFR messages that
could later be input to the BUFR decoder software.
Hypothetical Example #3
• Situation:
– BUFR decoder software is written in FORTRAN
– FORTRAN intrinsic I/O library requires accessed files to
include FORTRAN control words
– BUFR messages are in files without control words
• Solution:
– An interface program written in some language other than
FORTRAN (eg. C, C++, Perl) would be needed to read the
BUFR messages from their original files and write them
back out again to new files while adding FORTRAN
control words (possibly by linking a FORTRAN-writing
subroutine to the main interface program?). The new files
could then be input to the BUFR decoder software.
Current practices at several
NMCs
• U.S. National Centers for Environmental
Prediction (NCEP)
• European Centre for Medium-Range
Weather Forecasting (ECMWF)
• Météo France
• Australian Bureau of Meteorology
U.S. NCEP
A locally-written BUFR encoder/decoder package in
FORTRAN is used extensively throughout the centre.
Incoming observational data of all formats is encoded
into an “enhanced” BUFR format and is stored in this
format according to date and data category/subcategory
within a rotating UNIX filesystem that serves as the
observational database for operations. This “enhanced”
BUFR format contains additional local descriptors with
pointers, byte padding and embedded table information
that allow for fast extraction of individual subsets and
data elements of interest for modeling and research.
ECMWF
A locally-written BUFR encoder/decoder package is
used extensively throughout the centre. The
observational archive itself is in BUFR, and almost all
software that handles observational data either reads
or writes BUFR (or both) by incorporating the
encoder/decoder package. However, because the
numerical analyses use only a small subset of the
available BUFR data, there are plans to improve
operational efficiency by extracting these fields in
advance from the main database archive into a
separate smaller archive holding only those limited
data elements needed by the analyses.
Météo France
The ECMWF BUFR encoder/decoder
package is used. Incoming data in
alphanumeric and other non-BUFR formats
are converted to BUFR. These, and other
BUFR messages are stored in one or more
NEONS databases. Most of the NMC
applications access these databases.
Australian Bureau of
Meteorology
The ECMWF BUFR encoder/decoder package is
used, and the data is stored in a NEONS database. A
locally-written program reads BUFR messages direct
from the message switch via a TCP/IP link, or from a
file. For each BUFR message, the ECMWF decoder
is called, and the decoded data is searched to
determine which data is to be stored in the database.
The data is then re-formatted to the form required by
the database routines and stored.
Acknowledgements
Special thanks to:
• Charles Sanders BOM-Australia
• Jean Clochard Météo France
• John Hennessey ECMWF
• Simon Elliott EUMETSAT
• Joël Martellet WMO
Download