themachinethatgoesping (short: ping) aims at enabling advanced processing of multibeam and singlebeam echosounder data. Core components of this library are implemented in C++ (for performance) and are then exposed as high level python interfaces (for usability). On top of the core, many libraries, tools and applications will be implemented in Python directly, making use of the fast prototyping features of this language.

More will follow soon. If you are interested in our plans and time line, contact me:


This project is in early stage; at the moment it is just a powerful raw data reader for Kongsberg .all/.wcd and Simard .raw data. However you can already get a glimpse of what ping will be like and e.g. plot some simple echograms or extract the navigation data from the raw files (see tutorials repository)

Where to start?#

New to python#

Before you can use ping, you need to install python on your system and understand the basics of the language. If you are new to python, there are many good tutorials on the internet. We linked some in the New to python section.

Once you understand how to install python and python packages on your system, and you are able to execute a tutorial e.g. in a jupyter notebook, you are ready to progress to the next section.

Python user#

Ping is available on PyPi and can be installed with pip or pipenv:

$ pip install themachinethatgoesping
$ pipenv install themachinethatgoesping

Conda / mamba

Currently there are no conda packages available. However, you can install ping with pip in a conda environment. Conda forge packages will follow in the future.

For more installation options (e.g. from source) see Installation (user). To get started with ping check out the Run tutorials section. Even if you consider yourself a user, rather than a developer, please check out the Contribute section, as it contains some useful information on how to report bugs and request features.

Developer / contributor#

If you want to contribute to ping you want to install it from source using meson and ninja (instead of pip). For details see Installation from source (developer). You may also want to check out the Contribute section.