Atmospheric Toolbox

CODA

Download Docs Source Issues Community

CODA allows direct reading access to local product files, supporting a wide range of products.

CODA supports more than a hundred different types of atmospheric data products (covering level 0 through level 4 and auxiliary data) but also covers several non-atmospheric products. It can also be used as a generic reading library for many types of HDF4, HDF5, netCDF, GRIB, and XML files.

All product file data is accessible via the CODA C library. On top of this C library there are several interfaces available to directly ingest product data using e.g. Fortran, IDL, MATLAB, and Python. Furthermore, CODA also comes with a set of command line tools (codacheck, codacmp, codadump, and codafind).

The CODA software is used as a core data access component in various software applications, such as HARP, VISANQDOASBRAT, and several ESA internal quality control tools.

CODA consists of the following components:

C interface

:

The C interface is the foundation of CODA upon which all other CODA tools are build. As a developer you can also use this library and gain easy, high-performance access to all data in products that are supported by CODA.
Fortran interface : The Fortran interface provides a small wrapper for the C Library and allows you to call its functions from your Fortran 77/90 programs.
IDL interface : The IDL interface provides a wrapper for the C Library through a small set of powerful functions (such as coda_fetch) which are available from within IDL.
MATLAB interface : The MATLAB interface provides a wrapper for the C Library through a small set of powerful functions (such as coda_fetch) which are available from within MATLAB.
Python interface : The Python interface provides a wrapper for the CODA C Library. The Python interface contains both direct wrappers for the C Library functions (so you can traverse a product using the so-called CODA cursors) as well as the more high level functions that can be found in the IDL and MATLAB interfaces (e.g. coda_fetch).
Java interface : The Java interface provides a wrapper for the CODA C Library using JNI. The Java interface wraps the C Library functions behind classes for CODA Products, Types, and Cursors.
codacheck : The codacheck command line tool provides a way to perform a basic sanity check on product files.
codacmp : With codacmp two product files can be compared. It is a 'diff' tool for product data. The tool is primarily intended for verification purposes.
codadd : The codadd tool allows for a quick validation of .codadef files and is able to generate HTML documentation for the product format definitions that are inside .codadef files.
codadump : With the codadump command line tool you can view data from any product file that is supported by CODA. The tool allows you to inspect the product structure (including array sizes), view and export data from the product in ASCII format, and export data into HDF4 format.
codaeval : CODA comes with an expression language. The codaeval tool allows you to run such an expression on one or more product files, or you can use it as a quick way to just syntactically and grammatically check an expression.
codafind : The codafind command line tool allows you to search files and directories for product files that are supported by CODA. The tool comes with a very powerful filtering mechanism that makes it possible to search for only those product files that match certain filter criteria.

CODA definition files

CODA provides a single interface to access data in a wide variety of data formats, including ASCII, binary, XML, netCDF, HDF4, HDF5, CDF, GRIB, RINEX, and SP3. This is done by using a generic high level type hierarchy mapping for each data format. For self describing formats such as netCDF, HDF, and GRIB, CODA will automatically construct this mapping based on the file itself. For raw ASCII and binary (and partially also XML) formats CODA makes use of an external format definition stored in .codadef files to determine this mapping. Both HARP and BRAT already include their own .codadef files. If you only want to use CODA, you can retrieve .codadef files for the following earth observation missions:

product class description
AEOLUS AEOLUS products
CRYOSAT CRYOSAT products
ENVISAT_AATSR ENVISAT AATSR products
ENVISAT_ASAR ENVISAT ASAR products
ENVISAT_AUX ENVISAT auxiliary and other common products
ENVISAT_DORIS ENVISAT DORIS products
ENVISAT_GOMOS ENVSAT GOMOS products
ENVISAT_MERIS ENVISAT MERIS products
ENVISAT_MIPAS ENVISAT MIPAS products
ENVISAT_RA2MWR ENVISAT RA2 and MWR products
ENVISAT_SCIAMACHY ENVISAT SCIAMACHY products
EPS EUMETSAT Polar System atmospheric products (GOME-2 and IASI)
ERS_ATSR ERS-1 and ERS-2 ATSR products
ERS_GOME ERS-2 GOME products
ERS_MWR ERS-1 and ERS-2 microwave radiomater products
ERS_RA ERS-1 and ERS-2 radar altimetry products
ERS_SAR ERS SAR products using the ENVISAT format
S5P_PAL Sentinel-5P PAL products
SWARM SWARM products

There is also online documentation available of the product format definitions that are included in these .codadef files

History

CODA started out as the core data access layer of BEAT (called BEAT-I), dating as far back as 2002. As of 2008, in order to harmonize the various uses of this data access layer, the software layer was turned into a separate entity named CODA. However, for several years the CODA software was only publicly available as part of either the BEAT or BRAT toolboxes. In 2011, with the release of CODA 2.1, CODA received its own website. And in 2015, the CODA source code repository was moved to GitHub. In 2019, the CODA website became part of the Atmospheric Toolbox website.