Skip to main content

A python based passive radar library

Project description

py A P R i L

Advanced Passive Radar Library

pyAPRiL is a python based DSP library which implements passive radar algorithms. The ultimate goal of the library is to make available the so far ellaborated passive radar algorithms to everyone including sceintific researchers, radar system designers and amateurs. All the implemented methods are tested and verified through real-life systems, field measurements and simulations.

Project guidelines:

  • This project respects the authors of all the contributions, therfore references are always highlighted where applicable.
  • Understanding the operation of the implemented algorithms is always of primary importance. The efficient execution and concise coding do not belong to the principles of the project, but encoured when it is not at the expense of comprehensibility and does not change the essential operation of the originally proposed algorithm.

Contributions:

Contributions are welcome from anyone who shares the passion of passive radars and wants to help make opensource passive radar community even better. Whether you're a seasoned developer or just getting started, there are plenty of ways to get involved and contribute to pyAPRiL. By contributing to the project, you'll be helping to make a positive impact on passive radar developers around the globe and advancing the deeper sceintific understanding of this novel technology. Whether you can contribute code, documentation, or simply provide feedback, every contribution helps us move closer to our shared goal.

Restrictions:

This projects strictly focuses on the support of scientific researches. The source code of the library is licensed under the GNU General Public License version 3 (GPLv3), which is a copyleft license. This means that anyone who uses, modifies, or distributes the project must also license their work under the same terms and conditions. Commercial use of this software is permitted, provided that any results obtained from such use are made available to the public under the same license. By adhering to these restrictions, this project gains comliance with the REGULATION (EU) 2021/821 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL.

The package is organized as follows:

  • pyAPRiL: Main package directory
    • channelPreparation: This file contains wrapper functions for the different algorithms that aims to prepare the reference and the sureveillance signals for the detection stage. Such as reference signal regeneration and clutter cancellation techniques.
    • clutterCancellation : It describes a huge variety of clutter cancellation techniques implemented in the space, time and the space-time domain. In the current version, the following algorithms are available:
      • Timde-domain:
        • Wiener-SMI: Wiener filter with Sample Matrix Inversion
        • Wiener-SMI-MRE: Wiener filter with Sample Matrix Inversion and Minimum Redundancy Estimation
        • ECA: Extensive Cancellation Algorithm
        • ECA-B: Extensive Cancellation Algorithm - Batched
        • ECA-S: Extensive Cancellation Algorithm - Sliding
      • Space-domain (Beamforming):
        • Max-SIR: Maximum Signal-to-Interference Ratio
        • MVDR: Minimum Variance Distortionless Response
        • Principal eigenvalue beaformer
        • Beamstearing
        • Explicit coefficient beamformer
    • hitProcessor: Implements a number of hit and plot processing related functions such as the CFAR and the plot extractor. Implemented algorithms:
      • CA-CFAR
      • Target DoA estimator (from multichannel RD matrix using the pyArgus library)
    • detector : In this file a number of implementation of the cross-correlation detector can be found.
      • Cross-correlation detector - Time domain implementation
      • Cross-correlation detector - Frequency domain implementation
      • Cross-correlation detector - Batched implementation (Overlap and save)
      • Doppler frequency windowing
    • metricExtract: Implements various clutter cancellation and detection performance evaluation function. The supported metrics are the followings:
      • CA: Clutter Attenuation
      • Rnf: Noise floor reduction
      • Mu : Peak-to-channel power ratio
      • Delta: Estimated target SINR
      • Alpha: Target peak to noise floor ratio
      • L: Target peak power loss
      • Rzdc: Zero Doppler clutter reduction
      • P: Peak clutter reduction
      • D: Dynamic range compression
    • targetParameterCalculator: Calculates the expected parameters of an observed target (bistatic range, Doppler, ...) from geodetic data.
    • targetLocalization: Calculates the location of the target
    • RDTools: range-Doppler matrix image export and plotting tools
    • sim: IoO simulator (FM)
    • docs: Contains Ipython notebook files with demonstrations.
    • testing: Contains demonstration functions.

Installing from Python Package Index:

pip install pyapril

Version history

  • 1.0.0 Inital version
  • 1.1.0 Automatic detection added (CA-CFAR)
  • 1.2.0 Add temporal clutter filters (ECA, ECA-B, ECA-S)
  • 1.3.0 Clutter filter and detection performance evaluation
  • 1.4.0 Target DoA estimation
  • 1.5.0 Surveillance channel beamforming
  • 1.6.0 Target parameter calculator
  • 1.7.0 FM IoO simulator
  • 1.7.1 Extend RD Tools with Hit matrix plot
  • 1.7.2 Adaptive RD matrix scaling to improve the visibility of the plots
  • 1.7.3 Improved generality for metric extraction
  • 1.7.4 Improve and fix metric extraction
  • 1.7.5 Update project organization (2023 04)
  • 1.7.6 Target localization

Acknowledgements

This work was supported by the Microwave Remote Sensing Laboratory of BME (Radarlab). A special thanks of mine goes to the RTL-SDR site (RTL-SDR) and to the KrakenRF (https://www.krakenrf.com/) who helped this project becoming mature with the development and testing the algorithms using Kerberos SDR (later KrakenSDR).

For further information on passive radars check: passiveradar.eu

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

pyAPRiL-1.7.6.tar.gz (38.4 kB view details)

Uploaded Source

Built Distribution

pyAPRiL-1.7.6-py3-none-any.whl (56.0 kB view details)

Uploaded Python 3

File details

Details for the file pyAPRiL-1.7.6.tar.gz.

File metadata

  • Download URL: pyAPRiL-1.7.6.tar.gz
  • Upload date:
  • Size: 38.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.10

File hashes

Hashes for pyAPRiL-1.7.6.tar.gz
Algorithm Hash digest
SHA256 996e36d0734084d95aa7097819a37a5d494171546a81a01af9a6fc49f5a19d19
MD5 21c45455cd864884c64958ee7fffc16e
BLAKE2b-256 61091c5b6e5a483b682dca662f0528167a618c400cbb3c8bfc2f2c9811d5214a

See more details on using hashes here.

File details

Details for the file pyAPRiL-1.7.6-py3-none-any.whl.

File metadata

  • Download URL: pyAPRiL-1.7.6-py3-none-any.whl
  • Upload date:
  • Size: 56.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.10

File hashes

Hashes for pyAPRiL-1.7.6-py3-none-any.whl
Algorithm Hash digest
SHA256 00a618c11ad915c055206ae38acb973b7bb4a0046b6920e1e2b12fe5403007c2
MD5 cdc6a8892506b95408ce73fcac0bebc8
BLAKE2b-256 136d03cb87e60295d59e79b8ab11edf36b511df5152c22e6d9128b8ae3d8ae0c

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