minimal raytracing code example for MIMO FMCW radar
Project description
mmWrt
minimal raytracing for MIMO FMCW radar systems.
Intended usage:
- 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:
Release process
-
Ensure all the new .ipynb are added in docs/Hands-on.md
-
run pyroma (should be 10/10)
pyroma .
- run flake8 runs with darglint settings for docstrings to numpy standard set in the .flake8 file should yield 0 warnings or errors
flake8
- run pytest should yield 100% pass
pytest
- run coverage
coverage run -m pytest
- run coverage report (should be 100%)
coverage report
- run tox
tox
7.run sphinx-api
updates the *.rst in docs/ folder
sphinx-apidoc -f -o docs mmWrt
- run sphinx-build (updates the read_the_docs folder)
sphinx-build -b html docs build/html
- 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*
- 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__)
- merge dev branch with main
git checkout main git merge dev_branch_name
-
update the version to final update init.py to remove the suffix -pre.Y "0.0.X-pre.Y"
-
release on pypi (assumes your pypirc is local to the project)
twine upload -r pypi --config-file=..pypirc dist*
- check on colab that pypi package works:
!python -m pip install mmWrt from mmWrt import version print(version)
- 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
- (optional) add tag for release
git tag -a v0.0.X -m "version comment" git push origin v0.0.X
- then check on google colab dev extras instals works
!python -m pip install mmWrt[dev]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.