PyBWE
PyBWE: Python tools for Bandwidth Extrapolation of planetary radar signals - Published in JOSS (2024)
Science Score: 93.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 19 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org, zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Scientific Fields
Repository
Python library for radar Bandwidth Extrapolation (BWE)
Basic Info
- Host: GitHub
- Owner: NicOudart
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://nicoudart.github.io/PyBWE/
- Size: 5.31 MB
Statistics
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 9
Topics
Metadata Files
README.md
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). The Modified Covariance algorithm can be an alternative (Kay and Marple, 1981). 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: ~~~bash pip install PyBWE ~~~
Update: ~~~bash 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:
~~~bash 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:
Look at the documentation: PyBWE website
Contact us directly: nicolas.oudart@latmos.ipsl.fr
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:
Owner
- Name: Nicolas Oudart
- Login: NicOudart
- Kind: user
- Repositories: 1
- Profile: https://github.com/NicOudart
PhD in Astrophysics WISDOM planetary radar sounder (ExoMars/ESA)
JOSS Publication
PyBWE: Python tools for Bandwidth Extrapolation of planetary radar signals
Tags
radar planetary science bandwidth extrapolation super-resolution parametric spectral estimationGitHub Events
Total
- Release event: 2
- Push event: 16
- Create event: 2
Last Year
- Release event: 2
- Push event: 16
- Create event: 2
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 6
- Total pull requests: 0
- Average time to close issues: 11 days
- Average time to close pull requests: N/A
- Total issue authors: 2
- Total pull request authors: 0
- Average comments per issue: 1.67
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- letiziagambacorta1 (4)
- kathlandgren (2)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 33 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 10
- Total maintainers: 1
pypi.org: pybwe
Python tools for Bandwidth Extrapolation (BWE) of radar data
- Homepage: https://github.com/NicOudart/PyBWE
- Documentation: https://pybwe.readthedocs.io/
- License: MIT License
-
Latest release: 2025.2.2
published about 1 year ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v2 composite
- actions/setup-python v2 composite
- actions/checkout v2 composite
- actions/setup-python v2 composite
- pypa/gh-action-pypi-publish master composite
- jinja2 ==3.0.0
- mkdocs ==1.1.2
- mkdocs-gen-files *
- mkdocs-literate-nav *
- mkdocs-material *
- mkdocstrings *
- mkdocstrings-python *
- pymdown-extensions ==9.4
- matplotlib *
- numpy *
- scipy *

