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.10.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.10.0
File
ridal-0.10.0-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
ridal-0.10.0-cp314-cp314-manylinux_2_39_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.39+ x86-64 Details
ridal-0.10.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
ridal-0.10.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
ridal-0.10.0-cp313-cp313-manylinux_2_39_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.39+ x86-64 Details
ridal-0.10.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
ridal-0.10.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
ridal-0.10.0-cp312-cp312-manylinux_2_39_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.39+ x86-64 Details
ridal-0.10.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
ridal-0.10.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
ridal-0.10.0-cp311-cp311-manylinux_2_39_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.39+ x86-64 Details
ridal-0.10.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details

Total release size: 109.2 MB

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

Download URL ridal-0.10.0-cp314-cp314-win_amd64.whl
Size 9.8 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
42ac89396a4df0258c11df3949b706fb14f1fa897dd0b0e5d736178d212ea697
BLAKE2b-256 checksum
How to use checksums
2c4287be54ceca224031c872f924280a2a95fc777ad4774f1a2d0334ad11d90c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.10.0-cp314-cp314-manylinux_2_39_x86_64.whl

Download URL ridal-0.10.0-cp314-cp314-manylinux_2_39_x86_64.whl
Size 9.2 MB
Tags CPython 3.14 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
157475568ce2af3b4c43efbcf923b497d3615b707c8cc82ddddbed8dbe4007d2
BLAKE2b-256 checksum
How to use checksums
9236907cf86cc4575f212e9e4fe86808663c31a562e1fe821949d6beef08b38e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.10.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL ridal-0.10.0-cp314-cp314-macosx_11_0_arm64.whl
Size 8.2 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2e997ed69c3edb385a0056a934c5ab58811586b173958b021f9777ef7bb13dfa
BLAKE2b-256 checksum
How to use checksums
67fd7840c54b23b6eb98b9a907e44f6bece3ecd2650e3746391d0d6e03a96ee9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.10.0-cp313-cp313-win_amd64.whl

Download URL ridal-0.10.0-cp313-cp313-win_amd64.whl
Size 9.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
2197c93c58eef54cb8c49d7071706b4d58a73cb5307bcf7f28b20bcf7f2338a6
BLAKE2b-256 checksum
How to use checksums
21449f73564e92777191a707cbf383ac67b45a3fc6d169b46a579f25913c5b40
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.10.0-cp313-cp313-manylinux_2_39_x86_64.whl

Download URL ridal-0.10.0-cp313-cp313-manylinux_2_39_x86_64.whl
Size 9.2 MB
Tags CPython 3.13 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
92720592ba66053f8a05bef5d54fb464a0a1d72d62592e8c411dfdb18f71b18e
BLAKE2b-256 checksum
How to use checksums
4c5c8efabc3e9340931e15630d73cfbfac05e742226075e6605c0809802101a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.10.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL ridal-0.10.0-cp313-cp313-macosx_11_0_arm64.whl
Size 8.2 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1c7dde65e1b82e122309dbb05c3bd4fa6f007cad1e0a4639902f9c76b3aff472
BLAKE2b-256 checksum
How to use checksums
acb4dd28d2f8f3499d7ea11038d9447b1958317092c6219845d2b6d63254fc2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.10.0-cp312-cp312-win_amd64.whl

Download URL ridal-0.10.0-cp312-cp312-win_amd64.whl
Size 9.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
ac8127659c9806aa3b2f15649833301411997270758c33fa7b19d783d4b43819
BLAKE2b-256 checksum
How to use checksums
e63826ecce3227ff3980410347049796565fcffad136cc7bc455fce810ac7cb0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.10.0-cp312-cp312-manylinux_2_39_x86_64.whl

Download URL ridal-0.10.0-cp312-cp312-manylinux_2_39_x86_64.whl
Size 9.2 MB
Tags CPython 3.12 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
a8e2ed3afdd593e4f74d272e91ab0b6bf36b729b0efedcbd40fd833235344b4d
BLAKE2b-256 checksum
How to use checksums
b43eb2071d135c02ea4821cedb5a7679abdc9e94028bb2c162d33c2c4ea04612
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.10.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL ridal-0.10.0-cp312-cp312-macosx_11_0_arm64.whl
Size 8.2 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a6c2bf8e411783f484781bbc54cb4b912242c2943477fe3a34fbe74ac3ac2045
BLAKE2b-256 checksum
How to use checksums
039486b04234dfa7662bf64796d9387e788b52939437d443f532630b0b8d574a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.10.0-cp311-cp311-win_amd64.whl

Download URL ridal-0.10.0-cp311-cp311-win_amd64.whl
Size 10.1 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
f0d3edce548b33de1f9022f3a0b62eceb2b5877f1e8314726336f44cec190d08
BLAKE2b-256 checksum
How to use checksums
a76e2f468f281fa296d4bffe089d6400e9da911c581a740020994452260b63c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.10.0-cp311-cp311-manylinux_2_39_x86_64.whl

Download URL ridal-0.10.0-cp311-cp311-manylinux_2_39_x86_64.whl
Size 8.8 MB
Tags CPython 3.11 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
7ab2a71974c18c7d577fe5d8b0d099a6c218b87459008612963914d8d6a96610
BLAKE2b-256 checksum
How to use checksums
3c8f606c46d8c0429a171146efab927dced53fa607b537144603ecac6198f67c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.10.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL ridal-0.10.0-cp311-cp311-macosx_11_0_arm64.whl
Size 8.6 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e964fa7a7313c058876f6fc3ea614f900af6c3a186fa2cc6a38f0a11d46a425e
BLAKE2b-256 checksum
How to use checksums
028c4cec283c12c434aa8b7bc756249be880175148fb4140f1d9c1d90b63bf14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.1 {"installer":{"name":"uv","version":"0.13.1","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.10.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