Skip to main content

minimal raytracing code example for MIMO FMCW radar

Project description

mmWrt

minimal raytracing for MIMO FMCW radar systems.

Intended usage:

  1. educational & experimental

Release Notes and Roadmap

Released

v0.0.8: * adding TDM MIMO * adding DDM MIMO (including Doppler desambiguation)

v0.0.7 * adding AoA * adding sparse array support

v0.0.6:

* added micro-doppler
* added non-regression on .ipynb in docs/ folder

v0.0.5:

* moved dependancies from requirements to setup.py
* added extras [dev] for developpers (and documentation and read the docs)
* moved version checking from setup.py to test_basic.py
* added readthedocs.yaml

v0.0.4:

* adding frequency estimator
* added speed processing
* added support for radar equation (RCS, distance, ...)
* antenna gains in azimumth, elevation and freq

v0.0.3: first release

* point targets only
* 1D compute of baseband if signal for scene
* 1D FFT, CFAR, peak grouping and target position error compute
* single reflections

NEXT ()

* ~2D (AoA)~
* ~2D FFT: range+velocity, range+AoA~
* 2D peak grouping (by velocity sign)
* 3D position error compute
* 3D targets (at least spheres)
* medium attenuation
* 3D point clouds (i.e. over multiple CTI)
* multiple single reflections

Not planned yet but considered:

  • reads and loads .bin from DCA1000
    • record BB signals in .bin
    • 3D targets and scene rendering with imaging side by side radar
    • Swerling's scattering

Example Code

Check on Google Colab the code:

Open In Colab

Or Read the Docs on Read the docs

Release process

  1. Ensure all the new .ipynb are added in docs/Hands-on.md

  2. run pyroma (should be 10/10)

pyroma .

  1. run flake8 runs with darglint settings for docstrings to numpy standard set in the .flake8 file should yield 0 warnings or errors

flake8

  1. run pytest should yield 100% pass

pytest

  1. run coverage

coverage run -m pytest

  1. run coverage report (should be 100%)

coverage report

  1. run tox

tox

7.run sphinx-api updates the *.rst in docs/ folder

sphinx-apidoc -f -o docs mmWrt

  1. run sphinx-build (updates the read_the_docs folder)

sphinx-build -b html docs build/html

  1. release the Release-Candidate to pypi-test check that init.py is "0.0.X-pre.Y" for RC numbering

python setup.py bdist_wheel

twine upload -r testpypi dist*

  1. check on Google Colab (Google Colab requires py3.8 as off 2023-Jan-15)

if testing release-candidate need to add --pre -U or will install latest stable version.

!python -m pip install -i https://test.pypi.org/simple/ --pre -U mmWrt
from mmWrt import __version__
print(__version__)
  1. merge dev branch with main

git checkout main git merge dev_branch_name

  1. update the version to final update init.py to remove the suffix -pre.Y "0.0.X-pre.Y"

  2. release on pypi (assumes your pypirc is local to the project)

twine upload -r pypi --config-file=..pypirc dist*

  1. check on colab that pypi package works:

!python -m pip install mmWrt from mmWrt import version print(version)

  1. check updates on read_the_docs

push to git to trigger readthedocs build: git push navigate to https://readthedocs.org/projects/mmwrt/builds/ ensure build is successful

  1. (optional) add tag for release

git tag -a v0.0.X -m "version comment" git push origin v0.0.X

  1. then check on google colab dev extras instals works

!python -m pip install mmWrt[dev]

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

mmWrt-0.0.8-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file mmWrt-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: mmWrt-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.1

File hashes

Hashes for mmWrt-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 7cc4b1ba1e473cea68581e38f25596572b6af9e93cfb07a69fb8726a90e40954
MD5 ca2e6b0ed010e48178dce0ac0c4996be
BLAKE2b-256 14ec44f7b44be64f999ad5dd1f85dd5d730038c443afafa7fe1609a6edc060e5

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