LGPLv3 Logo



The Broadview Radar Altimetry Toolbox is a tool designed to use radar altimetry data. It is available in 32-bit and 64-bit versions for Windows, Mac OS X and Linux (Debian 7). The Broadview Radar Altimetry Tutorial and Toolbox is a joint project between ESA and CNES to develop an open source tool (LGPL-3) freely available to all the altimetry community.


The toolbox is able to:

  • to read all altimetry data from official data centres, from ERS-1 and 2, Topex/Poseidon, Geosat Follow-on, Jason-1, Envisat, Jason-2, Cryosat and Sentinel-3, from Sensor Geophysical Data Record to gridded merged data
  • to do some processing and computations
  • to visualise the results


Download Now


Current Release

The current version of the Broadview Radar Altimetry Toolbox is v4.1.0, released in April 2017.

The following improvements have been added to BRAT :

  • Support for reading River and Lake products
  • Support for reading of Sentinel-3 L1A and L1b-S products
  • Support for reading Envisat Reprocessed products
  • Support for reading Geosat GDR
  • Support for reading RADS data and automatic synch with the RADS database
  • Coastal / inland waters formulas update
  • Dataset interpolation improvement
  • ASCII export improvement
  • Inclusion of video tutorials

See the complete change log for full details of the changes in the different versions.

To report any bug with the software, please use the toolbox GitHub account bugs form (preferred way) or send us an email via the Helpdesk. If you have any questions or suggestions for improvements please contact us using the Helpdesk, and also check out the Forums in case that someone has already experienced the same problem.


Toolbox Design

The Broadview Radar Altimetry Toolbox can be divided in four main components:

  1. Data reading (also called “ingestion”)
  2. Processing routine functions
  3. Visualisation functions
  4. Graphic User Interface (GUI)

The structure is onionskin: each layer using the previous ones, and being available to be used without the ones above (e.g. you use the processing routines, which read data with the data ingestion tools, without using either the visualisation or the GUI). The GUI is using the other layers, and is available for current versions of Windows and Linux operating systems.

The reading (or “ingestion”) tools are a data dictionary, based on handbooks and data structures. They free the users of looking at each and every data format, byte by byte, to be able to read their products. The user can select several data files to work on them at the same time. They can be combined if they are of the same kind (same level, same mission or format). Once a dataset is chosen, the user is able to select a geographical area subset chosen by its minimum and maximum longitude and latitude, and/or a temporal subset by its start and end dates, and this for any type of data.

Processing functions are also available, to combine data fields (e.g. addition/subtraction needed to compute sea surface height from satellite altitude, altimetric range and corrections), select them (e.g. data editing to edit out-of-range values), etc. Such formulas can be saved for future use. The toolbox processed outputs are saved in NetCDF, and can be exported in either NetCDf, Ascii or GeoTiff (with a Google Earth export feature). All processing are made through command files where all the parameters are indicated (even when using the GUI, with which the files are automatically generated).

Once processed, the BRAT outputs can be visualised, whether one parameter against one other or against two others (typically, classical maps, including several cartographic projections, but also dispersion plots, or waveforms). For all modes, title and comments can be written by the user. The user is able to choose a colour scale among a pre-defined set. A “do-your-own colour scale” tool is also provided. Plots can be saved in raster (gif, png, tif, jpg) format.

The graphic user interface is an interactive interface, to provide the user with an easy-to-use tool. It enables to use all the above components without writing a single line of programme or command files. In that frame, users are able to save the data context for future work: they are able to save their set preferences for future uses, under a user-defined name, the area, period, mission, colour scale, type of visualisation and the parameters combinations they might have defined.

Python scripts plug-in

The next release of the toolbox will include the functionality to use your own functions to process the data written as python scripts. The user of the toolbox will be able to add its own python scripts to the toolbox without the need for any compilation and using the tool graphical user interface. Only Python 3 compatible scripts will be supported (Python 2 scripts are not guaranteed to be executed).

In order to be able to plug-in your own scripts into the tool you will need to write a Python class that extends the class PyBratAlgoBase, defined in file included in the zip files provided below. Also contained in the zip files is an executable that allows to run an example of a Python class implementing the required methods. Currently this executable only works with Python 3.2.3 and is available for 32-bit and 64-bit Windows, Mac OS X and Linux (Debian 7) operating systems. Please see the README file for complete information on its usage.

The methods to be implemented in the Python class are the following :

Method NamePurposeInputsOutputs
RunRuns the algorithm (main function), which returns one single valuePython List with the required inputs to run the algorithmSingle float value (result of the computation)
GetNameReturns the name of the algorithmNoneString
GetDescriptionReturns the description of the algorithmNoneString
GetNumInputParamReturns the number of input parameters to pass to the 'Run' functionNoneInteger with the number of inputs
GetInputParamDescReturns the description of an input parameterInteger from 0 to 'number of parameters - 1'String
GetInputParamFormatReturns the format of an input parameter:
Py_INT for integer;
Py_LONG for long;
Py_FLOAT for float;
Py_BYTE for byte;
Py_STRING for string;
Integer from 0 to 'number of parameters - 1'Integer with the input format
GetInputParamUnitReturns the unit of an input parameterInteger from 0 to 'number of parameters - 1'String*
GetOutputUnitReturns the unit of an output value returned by the 'Run' functionNoneString*

* The strings used for the units need to be compliant with the nomenclature used by UDUNITS library.


The following zip files are provided with the base Python class and executable example on how to use it for the different operating systems (please see README file for details on how to use it):