Welcome to ImpDAR’s documentation!

ImpDAR is a flexible, open-source impulse radar processor that provides most of the benefits (and some additional features) compared to expensive commercial software. The starting point was the old St. Olaf deep radar matlab code. This code has a lot of history of contributors–I’ve tried to preserve acknowledgment of many of them in the file headers.

Support is gradually being added for a variety of file formats. Currently, GSSI, PulseEKKO, Ramac, Blue Systems, DELORES, SEGY, gprMAX, Gecko, and legacy StoDeep files are supported. Additionally, there is support for the BAS ApRES systems (though the processing chain is separate and documentation is not yet complete). Available processing steps include various filtering operations, trivial modifications such as restacking, cropping, or reversing data, and a few different geolocation-related operations like interpolating to constant trace spacing. The primary interface is through the command line, which allows efficient processing of large volumes of data. An API, centered around the RadarData class, is also available to allow the user to use ImpDAR in other programs.

In addition to processing, ImpDAR can also be used for picking reflectors. Picking is generally an interactive process, and there is a light GUI for doing the picking. The GUI also provides support for basic processing operations, so you can see the effect of steps as you go along.


Python 3.6+ (other versions may work but are untested), numpy, scipy, matplotlib, SegYIO, h5py.

To do anything involving geolocation, you will also need GDAL. The GUI, which is needed to be able to pick reflectors, requires PyQt5.



If you do not have a current (3.6+) python installation, you will need one to begin. I recommend getting python 3 from anaconda. The Anaconda installer is straightforward to use, and you can let it set up your path, which makes the subsequent commands “just work.” However, Anaconda on Windows suggests not putting it on your path and instead using the Anaconda prompt. The procedure is the same–just open an anaconda prompt window after installation then continue. If you are on MacOS or Linux, you will want to restart your terminal after installing Anaconda so you get updated path specs.

Next, we need to install dependencies. GDAL is needed for accurate measurement of distance, and for converting coordinate systems. I recommend getting it and segyio, used for interacting with the SEGY data format, using,

conda install -c conda-forge gdal segyio

This step can be really slow, so don not worry if it is a bit painful. At this point, I also recommend installing h5py–if you do not, it pip will do it on the next step. This can be done with

conda install h5py

Now, you are ready to install impdar. You can get a version with

pip install impdar

If you are not a super user, you may get an error related to permissions. This is fine, you just need to install for yourself only. Use

pip install --user impdar

You should now be all set to start using ImpDAR. Scroll down for documentation and links for examples.


If you are not using Anaconda, you are on your own for installing dependencies. The challenges are generally GDAL and PyQt5, since these rely on libraries in other languages. For the most basic use cases, you can skip these, and go straight to installing ImpDAR with pip or through github.

To be sure that you have the newest version of ImpDAR as a lot of development is happening, you will want to use the development branch from GitHub. The pypi (pip) version is not updated as often to ensure a stable release. To get the devel version off git,

git clone -b devel https://github.com/dlilien/ImpDAR.git
cd impdar
python setup.py install

This requires git.

If you want to have the full suite of migration options, you will need to install seisunix. The SeisUnix install is bit complicated, but there are instructions with it. It should be possible to use SeisUnix on Windows with CygWin then interface with ImpDAR, but this is untested.


Check out the examples, particularly the Jupyter notebook examples beginning with getting started, for an idea of how to run ImpDAR. These should be a good starting point that can be modified for a particular use case. While all of the output and input are on this website, if you actually want to run the code you can download all the notebooks and run them yourself. You can get those here.


I would be thrilled to get pull requests for any additional functionality. In particular, it is difficult for me to add support for input formats for which I do not have example data–any development of readers for additional data types would be greatly appreciated.

Indices and tables