Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Radar Tools is a library and set of tools useful for visualizing and processing data collected from ice-penetrating radar. The tools have been designed to work the HDF5 datasets generated by Blue System IceRadar.

There are two primary ways of using Radar Tools. The first is to use the command-line and graphical tools, listed below. These tools provide an efficient and simple way to apply established methodologies for analysing radar data. Pre-written filters and processing routines are called by typing commands.

The second way is to use the irlib package through custom Python scripts. This makes it possible to programmatically analyze radar data. New filters and processing routines can be implemented using the API.

There is experimental support for reading other types of datasets using Radar Tools. Right now, it's possible to read CReSIS and pulseEKKO PRO lines, making the filters in irlib available. Helper functions to load CReSIS *.mat files and pulseEKKO PRO *.HD and *.DT1 files are in

Graphical tools:

  • icepick2: View radar lines directly and experiment interactively with processing filters. Pick reflection arrivals from a radar line, either manually or with simple pattern recognition

  • icerate: Rate reflection quality using icepick output

  • irview: General purpose viewer for radar lines that doubles as a tool for marking englacial regions [DEPRECATED IN FAVOUR OF icepick2]

Command-line tools:

  • h5_dumpmeta: Dump metadata from an HDF5 survey into a CSV file
  • h5_add_utm: Add UTM coordinates to an HDF5 survey file (requires pyproj)
  • h5_replace_gps: Replace the coordinates in an HDF5 survey with those from a GPS eXchange (GPX) file
  • h5_generate_cache: Generate caches to speed loading radar lines
  • h52a: Export a line from an HDF5 file to ASCII or binary
  • antenna_spacing: Reads CSV from h5_dumpmeta and creates an offsets file with antenna spacing
  • join_radar: Takes picked-, rated- and offset files and calculates ice depth
  • irtrace: Plot a radar trace acquired at a single location
  • irline: Plot a radar section along a line of locations


Radar Tools should run anywhere Python and the necessary dependencies work. In the past, I've managed to get it running under Windows, OS X, and Linux without trouble.

  1. Python 2.6+ (3.x works for the irlib package and icepick2)

  2. Numpy numerical array classes for Python

  3. Scipy science-oriented libraries for Python

  4. h5py: HDF5 interface for Python

  5. matplotlib plotting for Python

  6. pyproj libproj bindings

  7. six compatibility library for Python 2/3

  8. pandas powerful Python data analysis toolkit

If you do not already have a scientific Python environment and you do not know how to set one up, I recommend the Anaconda Python distribution.

Additional useful packages and tools:

  1. Cython for generating accelerated filters

  2. pywavelet wrapper for wavelet algorithms (Torrence and Compo, 1998) (included in external/pywavelet-0.1)


I recommend installing with pip. Download or clone this repository, navigate to it in a terminal, and type

pip install .


In addition to the basic information here, documentation can be found in doc. In order to build the documentation, Sphinx must be installed, with the numpydoc extension. The extensions may be installed by

pip install numpydoc


conda install numpydoc

Then, from the doc/ directory, type

make html

If LaTeX is available, the documentation can be compiled into a PDF. Type

make latexpdf

A copy can be found here.

Changes in irlib version 0.4-dev

irlib 0.4 represents significant refactoring and cleaning of both the library and application design. Breaking changes in the final version will be kept to a minimum, however the stable-0.3 branch is available if necessary.

  • remove deprecated CutSingle, CutRegion methods
  • refactor pickable gathers into separate subclasses
  • map window
  • refactor icepick, irview, icerate into a single codebase, kept in irlib/app/ (all except icerate)
  • build icepick2 based on the refactored app codebase
  • modular command system, one of the benefits of which is that additional custom filters can be added easily at runtime and on a project-basis
  • rewrite h5_replace_gps to be more robust, handle timezones, and work over multiple days
  • some bug fixes and polishing
  • Python 3 compatibility (WIP: tests pass, basic icepick2 use)
  • project config file (not complete)
  • composable line gathers and surveys by overloading arithmetic operators?
  • HDF file write?
  • PulseEkko data reader?


Radar Tools is provided "as is," without any warranty. Some parts of Radar Tools are affected by different licensing terms. See license.txt for detailed information.


Tools and Python API for ice-penetrating radar







No packages published