Skip to main content

PyPI Crates.io CI codecov

Ridal — Speeding up Ground Penetrating Radar (GPR) processing

Documentation: ridal.readthedocs.io

The aim of ridal is to quickly and accurately process GPR data. In one command, most data can be processed in pre-set profiles or with custom filter settings, and batch modes allow for sequences of datasets to be processed with the same settings. It can be used from the command line, from Python, or through a browser GUI for looking at and interpreting the results. Built in rust with a high focus on testing and performance, ridal may be for you if large data volumes and strange fileformats are common issues.

The name is a take on the loosely defined "Data Abstraction Library" (DAL) projects like GDAL and PDAL, but for radar. A near-term goal of Ridal is to enable easy conversion between formats, such as ridal convert input.rad output.dzt (this is not yet implemented).

Much of the functionality has been inspired from the projects RGPR and ImpDAR; both of which are more mature projects. For example, Ridal currently only works on Malå (.rd3), GSSI (.dzt) and pulseEKKO (.dt1) radar formats. For many uses, these will more likely be the tools for you!

Image of a glacier radargram Radargram (100 MHz Malå) of Kroppbreen in Svalbard. Collected 28 Feb. 2023.

Notes

  • Prior to Feb. 2026, this program was called rsgpr.
  • The CLI/Python interface changed completely in version 0.5. See Issue #82 for more info.

Installation

Requirements

  • cargo(only for the CLI; not the python package). Easiest installed using rustup.
  • gdal (optional, for sampling heights from DEMs). For Debian or derivatives, this means gdal-bin.
  • proj (optional, for CRS support other than WGS84 UTM Zones). For Debian or derivatives, this means proj-bin.

Using cargo, the ridal CLI can be installed (after installing the requirements):

cargo install ridal

with nix, the flake can be used without worrying about the requirements above:

inputs = {
  ridal.url = "github:erikmannerfelt/ridal";
};

or in an ephemeral shell:

nix shell github:erikmannerfelt/ridal

Python

There's an early implementation of a Python package:

pip install ridal
>>> import ridal
# Print useful info as a dictionary
>>> ridal.info("path/to/file.rad")
'{...}'
# Process and save to a file
>>> ridal.process("path/to/file.rad", steps=["zero_corr", "auto_gain"], output="processed.nc")
# Process and load into memory
>>> ridal.process("path/to/file.rad", steps=["zero_corr"], return_dataset=True, return_dataset_format="xarray")
<xarray.Dataset> Size: ...
Dimensions:     (y: ..., x: ...)
Coordinates:
...
# Only load into memory with no processing
>>> ridal.read("path/to/file.rad", return_dataset_format="xarray")
<same as above>

See scripts/render_kroppbreen.py for an example of how it can be used.

Simple CLI usage

See the help page of ridal for info on how to interact with the CLI:

ridal -h

To toggle useful information on a file, the info subcommand shows the metadata and a summary of the location data:

ridal info DAT_001_A1.rd3

Processing a file using the default processing profile:

ridal process DAT_001_A1.rd3 --default

All processing steps are shown in the steps.md file. It can also be printed with ridal steps.

A processing step pipeline is defined using ridal process file.rad --steps "zero_corr,dewow,..." or using a file: --steps steps.txt:

subset(1 100) # Comments are supported!
zero_corr
dewow

correct_topography

The output will be a NetCDF file with the same name but an .nc suffix. By default, the output is saved in the same directory as the input. For more control, the output directory and/or filename can be controlled with -o or --output.

To process multiple files in "batch mode", provide a "glob" pattern as the filename. Optionally, for many sequential files, the --merge argument allows merging multiple files into one.

ridal batch-process data/*.rd3 --merge "10 min" --default -o output/

A profile renderer is available with the -r argument. This will be saved in the same location as the output file as a JPG if another filename is not given. Files that are already processed can be rendered on their own with the render subcommand:

ridal render processed.nc -o profile.png

The browser GUI

New in version 0.6.0.

Processed files can be looked at in a browser:

ridal gui path/to/processed/

Every Ridal .nc file below that directory is found and listed, grouped by survey, with a map of where each survey's lines were collected. Opening one gives a zoomable view of the radargram, where the cursor reports the trace number, the distance along the line, the two-way travel time and the depth, and a map shows where on the ground that point is. Radargrams are rendered where Ridal runs, and only the parts being looked at, so files larger than memory are not a problem.

Reflectors can also be picked in the browser, which needs somewhere to keep them: a project. Making one in the directory with the processed files is all that is required:

cd my_survey/
ridal project init
ridal gui

Without a path, ridal gui looks for the project by searching upwards from the current directory. Picked layers can be exported as points, as GeoJSON or CSV, from the browser or with ridal interp export.

ridal gui is for looking at your own files on your own computer, and it stops when you do. To share projects with colleagues over the network, see Running a server in the documentation.

Papers using Ridal

... and many others in preparation/review

Metadata

Release files for ridal 0.8.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for ridal 0.8.0
File
ridal-0.8.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
ridal-0.8.0-cp314-cp314-manylinux_2_39_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.39+ x86-64 Details
ridal-0.8.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
ridal-0.8.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
ridal-0.8.0-cp313-cp313-manylinux_2_39_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.39+ x86-64 Details
ridal-0.8.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
ridal-0.8.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
ridal-0.8.0-cp312-cp312-manylinux_2_39_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.39+ x86-64 Details
ridal-0.8.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
ridal-0.8.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
ridal-0.8.0-cp311-cp311-manylinux_2_39_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.39+ x86-64 Details
ridal-0.8.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 59.5 MB

Release files / ridal-0.8.0-cp314-cp314-win_amd64.whl

Download URL ridal-0.8.0-cp314-cp314-win_amd64.whl
Size 5.8 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
9b12ad49cc4857f36616940da85895ec86091fdddb21f1929f5a44b42676d75e
BLAKE2b-256 checksum
How to use checksums
a10283b152bd1e8c222a54639a3354f41745b10f1de43a718d38efa2418ca233
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ridal-0.8.0-cp314-cp314-manylinux_2_39_x86_64.whl

Download URL ridal-0.8.0-cp314-cp314-manylinux_2_39_x86_64.whl
Size 4.7 MB
Tags CPython 3.14 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
3ea0d16b12f2268be5ad33c4406e0f56461006fa922e31e3eacb7ceef8fa6018
BLAKE2b-256 checksum
How to use checksums
383b4e2158c5e471027ffd35be7eb307f3b3914f2b8477a7590aa6cdc6a3270b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ridal-0.8.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL ridal-0.8.0-cp314-cp314-macosx_11_0_arm64.whl
Size 4.4 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
deabf3b6d298847cee6659bc416ae8bc442a49e7d0bd095b4b6c35b6d1b508a7
BLAKE2b-256 checksum
How to use checksums
8d88e47ffd90a51e22d0f58e1ac8eb68610c84d21d7b820e6978e4bef4af3a9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ridal-0.8.0-cp313-cp313-win_amd64.whl

Download URL ridal-0.8.0-cp313-cp313-win_amd64.whl
Size 5.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
ba4368fdea5ea562c0f4161197774edf2aba96bef35f59fa50e26661bdd5c7a4
BLAKE2b-256 checksum
How to use checksums
a2259782b7fc1754ac911eec2c377e195cab6cd9940525026eea27ab6b2f5d73
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ridal-0.8.0-cp313-cp313-manylinux_2_39_x86_64.whl

Download URL ridal-0.8.0-cp313-cp313-manylinux_2_39_x86_64.whl
Size 4.7 MB
Tags CPython 3.13 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
9e4031ba713c403b0aad7a5f71476f55287c989d7594409789dd1f947b0d9486
BLAKE2b-256 checksum
How to use checksums
7df58c21aa3bcfc53ced11bf575e7102691139626acf8882d7c92fd0cc25223e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ridal-0.8.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL ridal-0.8.0-cp313-cp313-macosx_11_0_arm64.whl
Size 4.4 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
84660fa6beca931a964cd8ba1ab31eff91f5c47d17b36cc027856bbeac22e25b
BLAKE2b-256 checksum
How to use checksums
286086a4ed0634d57a579866a0f541c8765606ac293b608ae522fa3215641408
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ridal-0.8.0-cp312-cp312-win_amd64.whl

Download URL ridal-0.8.0-cp312-cp312-win_amd64.whl
Size 5.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
77b415c66ecd9a1b20cda0dd60f5502b9bbd80dc3f47fe24b4447976261039c0
BLAKE2b-256 checksum
How to use checksums
94a28a3b9d5dd0c0f407f2030e5a090328d153116656799688a09c48fb22e62e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ridal-0.8.0-cp312-cp312-manylinux_2_39_x86_64.whl

Download URL ridal-0.8.0-cp312-cp312-manylinux_2_39_x86_64.whl
Size 4.7 MB
Tags CPython 3.12 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
467b73728d4e84b83c59e1378179a7fe568753ce2838d2fa5499b622228e9222
BLAKE2b-256 checksum
How to use checksums
f0967b501811c81b1633eaa6de1b7947768b8d4b384acbaebefe45644bdb0e8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ridal-0.8.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL ridal-0.8.0-cp312-cp312-macosx_11_0_arm64.whl
Size 4.4 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
78bb1d29c994da95b9637166010da388d5b11b4bdc4c66536355a3f16a96c9fc
BLAKE2b-256 checksum
How to use checksums
ffa3addb23ac1a58e55ae304e731e0e8f3293ba3fe2d1f3a7fcf239321f0c84b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ridal-0.8.0-cp311-cp311-win_amd64.whl

Download URL ridal-0.8.0-cp311-cp311-win_amd64.whl
Size 5.8 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
f78c30ca99d008bfb41aef86e2090fbdc22b246ec34010c4d6cf988cb9971e52
BLAKE2b-256 checksum
How to use checksums
80038717a1aae693cead5c0a7dcd1d07a850325517ac10d260ae4ec9f2906c07
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ridal-0.8.0-cp311-cp311-manylinux_2_39_x86_64.whl

Download URL ridal-0.8.0-cp311-cp311-manylinux_2_39_x86_64.whl
Size 4.7 MB
Tags CPython 3.11 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
edad53fe1eb21faba53bc37352712941c8eb5d371cba98deacce8863cdb06a62
BLAKE2b-256 checksum
How to use checksums
cc729273e3b74066985ce432797c1e7f0b574b77de3e41fb786c08b3e6276e79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / ridal-0.8.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL ridal-0.8.0-cp311-cp311-macosx_11_0_arm64.whl
Size 4.4 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4da0b74057517d3dda279973d90dd2c9f1ed9d92237788f734da130550810b5d
BLAKE2b-256 checksum
How to use checksums
d2bb8e1350bedf4152187606d5977bab87d834ff71f7e863af110f333b6a7a1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for ridal 0.8.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page