BEAT Documentation

The Basic Envisat Atmospheric Toolbox (BEAT) provides a set of tools for ingesting, processing, and analyzing atmospheric remote sensing data. The primary instruments supported by BEAT are GOMOS, MIPAS, and SCIAMACHY (flown on the Envisat satellite). However, BEAT also supports access to data from a wide range of other atmospheric instruments like GOME (ERS-2), OMI, TES, MLS, and HIRDLS (Aura), GOME-2 and IASI (MetOp), OSIRIS (ODIN), and FTS (ACE).

BEAT consists of several modules. These modules can be applications, libraries, interfaces to existing applications (such as IDL and MATLAB), or interfaces to other programming languages (such as Fortran and Python). The BEAT modules are separated into two mayor layers.

The first layer, called BEAT-I or CODA, consists of all modules that deal with direct access to product data. As of BEAT V6.0 the BEAT-I interface is implemented using the CODA software (the full version of CODA is included with BEAT). With the CODA software you will be able to access each and every piece of data that is inside a product. In order to read data via the CODA interface, you will first have to familiarize yourself with the structural layout of the products you want to access. The CODA interface provides functions to dynamically retrieve structural information of a product, but the easiest way to find your away around in a product is to have a look at the Product Format Definition documentation. This documentation provides an overview of the structure descriptions for each of the products that are support by BEAT.

In order to make the products easier accessable and to allow intercomparison of data between products a second layer called BEAT-II has been developed. BEAT-II provides a common data structure (the BEAT-II record) that can contain data for each of the basic classes of data: spectral readout data (for Level 1 products), vertical profile and total column data (for Level 2 products) and world map data (for Level 3 and Level 4 products). BEAT-II provides a single ingestion function (you only need to perform one function call!) that allows you to easily extract data from a product file into a BEAT-II record. The ingestion function is able to process multiple files at once and has very powerful filter functionality that allows you to ingest only the data that matches certain time, geolocation, wavelength, value, and/or error criteria. With BEAT-II it is therefore quite easy to, for instance, ingest all Level 2 data of MIPAS that was acquired above the Netherlands in July 2003. BEAT-II does have some restrictions in what it can do. For instance, you won't be able to access all information from a product file with BEAT-II. But the functionality it does provide is quite powerful and can be very useful when you want to get a quick look at product data.

The modules of BEAT are listed below and for each module a link is provided to its corresponding documentation.

Installing BEAT

For installation instructions for BEAT look at the INSTALL file that comes with each downloadable source package.



The full BEAT-I functionality is provided by the CODA software. BEAT comes with a full version of CODA that provides interfaces to C, Fortran, Python, MATLAB, and IDL and includes a set of command line tools.

More information about CODA can be found in the CODA documentation.

Product Format Definition documentation

The CODA software requires data definitions stored in .codadef files to interpret product files that are stored in raw ascii/binary or xml format (HDF4, HDF5, GRIB, and netCDF are self-describing formats, so CODA does not require any .codadef files to access products in those formats). BEAT comes with the .codadef files for a large set of Atmospheric Data Products. This includes level 0 through level 4 data and auxiliary data.

A textual version of the Product Format Definition contents for the .codadef definition files that are included with BEAT can be found in the Product Format Definition documentation. If you want to know how a data file is structered and where you can find specific data within a file this is the documentation you should consult.


BEAT-II Data Description

The BEAT-II Data Description provides information about the type of products that can be ingested, which ingestion options can (or should) be provided, the kind of data that you will receive, and how this was mapped from the originating product file. This is essential documentation if you want to use the BEAT-II ingest function.

BEAT-II C interface

The BEAT-II C interface is a set of C functions that allows developers to access the abstract data layer of BEAT-II. The BEAT-II interface provides a data abstraction layer for retrieving data from atmospheric Level 1, Level 2, and Level 3/4 products. It includes functions to manipulate the ingested BEAT-II records and to import/export these records from/to several file formats.

A description of the BEAT-II C interface can be found in the BEAT-II C interface documentation.

BEAT-II Fortran interface

The BEAT-II Fortran interface provides a small wrapper for the BEAT-II C library that allows you to call its functions from your Fortran 77/90 programs.

A description of the BEAT-II Fortran interface can be found in the BEAT-II Fortran interface documentation.

BEATL-II IDL interface

The BEAT-II IDL interface provides a wrapper for the BEAT-II C library that allows you to access the BEAT-II functionality from within IDL.

A description of the BEAT-II IDL interface can be found in the BEAT-II IDL interface documentation.

BEAT-II MATLAB interface

The BEAT-II MATLAB interface provides a wrapper for the BEAT-II C library that allows you to access the BEAT-II functionality from within MATLAB.

A description of the BEAT-II MATLAB interface can be found in the BEAT-II MATLAB interface documentation.

BEAT-II Python interface

The BEAT-II Python interface provides a wrapper for the BEAT-II C library that allows you to access the BEAT-II functionality from within Python.

A description of the BEAT-II Python interface can be found in the BEAT-II Python interface documentation.

BEAT-II Java interface

The BEAT-II Java provides a wrapper the BEAT-II C interface using JNI. The C Library functions are wrapped behind a special BEAT-II Record Class.

A description of the BEAT-II Java interface can be found in the BEAT-II Java interface documentation.


The beatl2dump command line tool is similar to codadump, only it works at the level of the BEAT-II layer. With this tool you can ingest data from product files and export them into one of the several export formats supported by the BEAT-II C library. Next to ingestion of product files, the tool also supports import of data from one of the import formats that is supported by the library.

More information about this tool can be found in the beatl2dump documentation.