Skip to main content

A module for general radar signal processing library

Project description

rad-lab

CI Docs

A Python radar module for simulating pulse-Doppler returns, generating range-Doppler maps (RDMs), and forming synthetic aperture radar (SAR) images. Designed for radar engineers and students who want to build intuition for how RDMs and SAR images are formed, how waveforms affect resolution, and how DRFM electronic attack techniques appear in the RDM.

Installation

Install from PyPI (library only)

pip install rad-lab

Clone for the full example apps

git clone https://github.com/JohnNehls/rad-lab
pip install -e ./rad-lab

A few exercises use LaTeX for plot labels — LaTeX must be installed for those to run.

Usage

from rad_lab import rdm, Radar, Target, Return, barker_coded_waveform

radar = Radar(
    fcar=10e9,
    tx_power=1e3,
    tx_gain=10 ** (30 / 10),
    rx_gain=10 ** (30 / 10),
    op_temp=290,
    sample_rate=20e6,
    noise_factor=10 ** (8 / 10),
    total_losses=10 ** (8 / 10),
    prf=200e3,
    dwell_time=2e-3,
)

waveform = barker_coded_waveform(10e6, nchips=13)

return_list = [Return(target=Target(range=0.5e3, range_rate=1.0e3, rcs=1))]

rdm.gen(radar, waveform, return_list)

image

Other available waveforms: uncoded_waveform, random_coded_waveform, lfm_waveform. For additional RDM examples see apps/rdms and apps/exercises, or the API docs.

SAR Image Generation

rad-lab also supports stripmap and spotlight SAR image formation from point-target scenes:

image

For SAR examples see apps/sar.

Contributing

Contributions are welcome. Please fork the repository and submit a pull request.

To run the test suite:

python -m pytest tests/ -v
./apps/run_apps.sh   # runs all apps with a headless backend

License

This project is licensed under the GPL-3.0 License - see LICENSE for details.

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

rad_lab-0.0.3.tar.gz (333.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rad_lab-0.0.3-py3-none-any.whl (56.1 kB view details)

Uploaded Python 3

File details

Details for the file rad_lab-0.0.3.tar.gz.

File metadata

  • Download URL: rad_lab-0.0.3.tar.gz
  • Upload date:
  • Size: 333.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rad_lab-0.0.3.tar.gz
Algorithm Hash digest
SHA256 9547dda3a0f59f207f587ca2ace05a20bb62c4ce51933629627a60662214f54d
MD5 baa18e7b93e33911539a68937fb704d8
BLAKE2b-256 c5d4a0d8eacf0faa4e197162b75bd78b6233e54c3464ce4abd1ef4eb896a4644

See more details on using hashes here.

Provenance

The following attestation bundles were made for rad_lab-0.0.3.tar.gz:

Publisher: publish.yml on JohnNehls/rad-lab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rad_lab-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: rad_lab-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 56.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for rad_lab-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5f09ae54c1c9f3233b4d0df8937df3886e19dc785eff5c9f862e417d012b4d00
MD5 16bbbda8a00e99f7eab1ea3fe723d242
BLAKE2b-256 c7559a4594c820054d6bb61c34dbbcb3b74255c9a055b9667ced9b2253f8d2c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for rad_lab-0.0.3-py3-none-any.whl:

Publisher: publish.yml on JohnNehls/rad-lab

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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