Skip to main content

Python tools for Bandwidth Extrapolation (BWE) of radar data

Project description

DOI

status

PyBWE: Python tools for Bandwidth Extrapolation of planetary radar signals

Resolution enhancement of radar signals with the super-resolution technique named "Bandwidth Extrapolation" (BWE). Website for documentation: https://nicoudart.github.io/PyBWE

Introduction to PyBWE

The Bandwidth Extrapolation technique

Range resolution enhancement is one of the main challenges in radar signal processing. It is limited by the frequency bandwidth of the instrument: the larger is the bandwidth, the better is the resolution.

Classic Fourier transform techniques are efficient and robust for spectral estimation, but in practical applications the output resolution is limited. For this reason parametric spectral estimation techniques have been introduced (see Kay and Marple, 1981). Based on a signal model, assuming deterministic properties of the signal, the output of such techniques yields a better resolution. However, parametric techniques are less robust than classic Fourier transform ones, in particular in the presence of noise or distortions.

The Bandwidth Extrapolation technique (BWE) is a compromise between a classic Fourier transform and a parametric spectral estimation technique (Cuomo, 1992). A parametric model is fitted to the signal's spectrum, this model is then used to extrapolate this spectrum forward and backward, and the spectrum is eventually Fourier transformed using IFFT. The extrapolation factor is equal to the resolution enhancement, and can be up to 3 in practical cases.

In the regular BWE, the signal is modelled by an autoregressive (AR) model, using the Burg algorithm (Burg, 1967). Several improvements to the BWE have been proposed: the Polarimetric BWE (PBWE) using the correlation between several polarimetric radar channels for an improved extrapolation (Suwa and Iwamoto, 2003,2007), or the State-Space BWE (SSBWE) using a State-Space model accounting for noise and exponential distortions in the signal (Piou, 1999).

Also, the BWE can be used to fill a gap between two spectra of multiband radars (Moore, 1997). This process is known as Bandwidth Interpolation (BWI).

Recent application to planetary radar sounders

If the BWE can be applied to any radar signals, it has been extensively applied to planetary radar sounders. Radar sounders unlocked a 3rd dimension in planetary studies, allowing scientists to discover the widely unknown subsurface of the Moon, Mars, Titan and soon Venus and Jupiter's moons. The development of space instruments being highly constrained, the BWE is a mean to get as much information on the subsurface structure and composition from a given radar instrument.

Here is a non-exhaustive list of successful BWE applications in planetary science:

  • The 1st bathymetry of a Titan sea using Cassini radar data (Mastrogiuseppe et al., 2014)

  • The improvement of the stratigraphic analysis of Martian polar ice sheets using SHARAD (MRO) radar sounder data (Raguso et al., 2018)

  • The improvement of the WISDOM (ExoMars) Ground Penetrating Radar soundings in preparation of the Rosalind Franklin rover mission (Oudart et al., 2021)

  • The improvement of the MARSIS (Mars Express) radar sounder resolution by a factor of 6 using both BWE and BWI (Gambacorta et al., 2022)

  • The BWE helped the estimation of attenuations in the Martian subsurface with the RIMFAX (Mars 2020) Ground Penetrating Radar data (Eide et al., 2022)

With the arrival of WISDOM (ExoMars) on Mars in 2028, as well as new radar sounders selected for the exploration of Venus (EnVision mission) and Jupiter's icy moons (Juice and Europa Clipper missions) in the 2030s, we expect the BWE techniques to be useful for future planetary science studies. Hence the publication of this Python library, intented to help the planetary science community use the BWE on any radar sounder data.

Library installation and update

Installation from PyPI

Installation:

pip install PyBWE

Update:

pip install PyBWE --upgrade

Packages:

This library contains 3 packages:

  • PyBWE: Plain vanilla package. It contains the BWE functions, as well as the sub-functions allowing you to model and extrapolate a radar spectrum.

  • PyPBWE: Advanced package. It contains the PBWE function, as well as the sub-functions allowing you to model and extrapolate a polarimetric radar spectra.

  • PySSBWE: Advanced package. It contains the SSBWE function, as well as the sub-functions allowing you to model and extrapolate a radar spectrum, as well as extracting echoes information from it.

PyBWE should be used by default. PyPBWE can be used only if the radar has more than one polarimetric channel. SSBWE can be used in high noise-level or in high attenuations situations, but the stability of the model is not guaranteed. See the documentation for more information on the functions contained in each package.

Each package can be imported the following way:

import PyBWE
import PyPBWE
import PySSBWE

Documentation

In docs can be found the full documentation of this library, with one file for each package, containing descriptions of each function in the package.

In examples can be found one example scripts for each package, with applications on synthetic radar signals corrupted by a white-noise.

Tests

In test can be found test scripts for each package, divided into unit, integration and performance tests. Each test script can be launched on request with GitHub action test-scripts.yml.

Unit and integration tests

Each package (PyBWE, PyPBWE and PySSBWE) contains "unit" sub-functions that can be used independently, and "integrated" functions based on these sub-functions.
We propose test scripts for the "unit functions", and then for the "integrated functions", to check if they behave as expected given a specific synthetic radar input. Each script will print a message, with the test result ("OK"/"NOK").

Performance tests

The performances of each package (PyBWE, PyPBWE and PySSBWE) are also tested, using a set of metrics (errors on the estimated distance between targets, errors on echoes amplitudes, etc.), on synthetic radar signals of different complexity. For now, the performances of each package are evaluated for different distances between 2 radar targets (below the resolution limit with FFT), and for different SNR levels (considering a signal corrupted by a white-noise). Several noise cases are tested for a given SNR. The performance test results are exported as Markdown reports. Other performance test scenarios can be implemented in the future.

Community guidelines

Contribute

We are open to contributions to improve PyBWE. Please fork the repository to make your updates.

For each new update, please follow these guidelines:

  • For any new functions, add unit, integration and if possible performance tests to the corresponding test scripts in test. If possible, new example scripts should also be added to examples.

  • For any change to PyBWE, update the documentation accordingly in docs.

  • Keep the code style (the naming of functions/scripts, the headers, sections...) and comment your updates.

Report issues

Feel free to report any issues through GitHub Issues. To help us fix the issues you want to report, please:

  • Include in the title and/or in the text, names of the packages and functions for which the issue is observed.

  • For reproducibility, add to the text your OS, your Python version, and your PyBWE version.

  • Add to the text a description of the expected and the observed behaviours.

  • Include any output, error message or screenshot relevant to understand the issue.

Support

If you need support using PyBWE, you can either:

Credits

© Nicolas OUDART

Contributions from the WISDOM science team: Valérie CIARLETTI, Alice LE GALL, Emile BRIGHI.

Contributions from interns: Eloa EGUILUZ-BLANCO, Nathan GILLES-LORDET (2024).

LATMOS/IPSL, UVSQ Université Paris-Saclay, Guyancourt, France

Citation

OUDART Nicolas (2024), PyBWE: Python tools for Bandwidth Extrapolation of radar signals. DOI: 10.5281/zenodo.11253430

License

This package is released under a MIT open source license. See LICENSE.

References

Parametric spectral estimation:

BWE:

PBWE:

SSBWE:

Planetary science applications:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pybwe-2024.7.tar.gz (19.9 kB view details)

Uploaded Source

Built Distribution

PyBWE-2024.7-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file pybwe-2024.7.tar.gz.

File metadata

  • Download URL: pybwe-2024.7.tar.gz
  • Upload date:
  • Size: 19.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for pybwe-2024.7.tar.gz
Algorithm Hash digest
SHA256 56e20d719d73474f6a1c5eb15b0bb1f2711ac44501db42064b9e8e37740387aa
MD5 245574468b4eff58c0b94f2fc8fcac9b
BLAKE2b-256 8f86bf22df2aef92ce7a3de52c8a7c45dcffdbc8c03307ddbb78056861136224

See more details on using hashes here.

File details

Details for the file PyBWE-2024.7-py3-none-any.whl.

File metadata

  • Download URL: PyBWE-2024.7-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for PyBWE-2024.7-py3-none-any.whl
Algorithm Hash digest
SHA256 fb79b42226b59dccbc844c66bde1cb5b63403331d8dcf9cbebd1e9abd883c66d
MD5 7e81230cb2dd00d54242e7b75069ba7b
BLAKE2b-256 bf63b724abab17863528c3ec9704247bcde7c29e0cee6dac3edff3565d8d4b49

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page