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.
Source Distributions
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7cc4b1ba1e473cea68581e38f25596572b6af9e93cfb07a69fb8726a90e40954 |
|
MD5 | ca2e6b0ed010e48178dce0ac0c4996be |
|
BLAKE2b-256 | 14ec44f7b44be64f999ad5dd1f85dd5d730038c443afafa7fe1609a6edc060e5 |