Royal Dutch Meteorological Institute; Ministery Of Infrastructure And The Environment

BUFR Reader
We developed a Fortran program which reads BUFR files containing scatterometer data from SeaWinds, ERS, ASCAT, Oceansat-2 or RapidScat. The wind data can be written to either an ASCII output file or to a NetCDF output file. The software, which will run on most Unix/Linux platforms, can be downloaded here. The tar file contains some Readme files describing the installation of the package.

The tools currently only write wind information to the output files, but the Fortran code (Bufr2Asc.F90, Bufr2Nc.F90) can be adapted to write other fields, e.g. radar backscatter information. Please contact us if you need guidance on this.

The software makes use of the ECMWF BUFR library (any version from 000240 to 000387, or version 000400 and up) which must be downloaded separately from their website (see related link).

If you don't have Fortran and C compilers available, it is possible to download the free GFortran and GCC compilers (see related links). Windows users should consider to use the free Cygwin Linux emulator (see related link).
Fortran 90 code version 1 May 2017 (350 kB)
Installation and testing of the software
Use the following commands to install and test this tool on Unix/Linux:
  • Unpack and step into the genscat directory
    gunzip bufr_reader_20170501.tar.gz
    tar -xf bufr_reader_20170501.tar
    cd bufr_reader/genscat/
  • Read the Readme.txt files
    more Readme.txt
    more support/bufr/Readme.txt
  • Install the downloaded ECMWF BUFR library source code
    cp your_download_location/bufr_000XXX.tar.gz support/bufr
  • Compile
    source use_gfortran.csh or . ./use_gfortran.bsh (depending on your compiler and shell, see also Notes 2 and 3 below)
  • Set environment variable
    setenv BUFR_TABLES your_location/genscat/support/bufr/bufr_tables/
    export BUFR_TABLES=your_location/genscat/support/bufr/bufr_tables/ (depending on your shell)
  • Step to bufr2asc and test the program
    cd tools/bufr2asc
    ./Bufr2Asc ../../support/bufr/testreading.bufr ./result.asc
    more result.asc
  • Step to bufr2nc and test the program
    cd ../bufr2nc
    ./Bufr2Nc ../../support/bufr/testreading.bufr ./

Note 1: the software is tested with ECMWF BUFR library versions 000240 to 000387 and 000400 to 000403. Newer versions may work as well, but are not tested by us. Versions 000388 and 000389 are not supported.

Note 2: the use_*.csh or use_*.bsh scripts select which compiler is used. If you do not run this script the default f90 command is used. If this does not work for you, or no script is available for your compiler, you may edit the generated Makeoptions file in bufr_reader/genscat after running ./Set_Makeoptions and specify which compiler and compiler options should be used. These settings will only affect the KNMI Fortran code, not the ECMWF BUFR library code.

Note 3: if you use a use_*.bsh script, be sure to type ". ./use_*.bsh", i.e. "dot space dot slash use_*.bsh", otherwise the necessary environment variables will not be exported.

Note 4: if you adapted the Makeoptions file and installed succesfully on your system, please let us know. This allows us to help others by providing a suitable use_*.csh/use_*.ksh script.

Note 5: a generic tool to handle BUFR data in Python is available on It is an interface to use ECMWF's BUFR decoding library from Python.
Further information
Please contact the KNMI scatterometer team.

Wind Products
R&D work
Related links