Python app made to calculate field distribution transformation using the given propagation method based on article
Due to dependencies, it is suggested to run this app in a separate virtual environment like venv.
Initialization
python -m venv env
Activation (on Windows run activate.exe)
source env/bin/activate.sh
python -m pip install -r requirements.txt
To support linting and unify styling we suggest to use pre-commit
pip install pre-commit
Running pre-commit automatically
To run validation automatically before each commit, please use:
pre-commit install
This will add pre-commit to git hooks and perform all the checks defined in .pre-commit-config.yaml
Running pre-commit manually
To check stying in all files, please use
pre-commit run -a
Every pull request should pass pre-commit stage to be merged
For a quick start, please refer to our examples:
python doc/examples/nn_training.py
python doc/examples/gerchberg_saxton.py
lightprop/io
- input/output functionalities, loading/saving images/fileslightprop/propagation
- core set of classes defining propagation calculations (convolution, neural network)lightprop/lightfield
- field distribution representation using A exp(i phi)
notationlightprop/optimization
- set of methods used for calculating phase distribution lightprop/structures
- optical structures, like lensIf you are interested in using/improving/developing this project, don't hesitate to contact us using email: pawel.komorowski@wat.edu.pl
This project is licensed under the terms of the MIT license.
UT are written using pytest framework. To start tests use:
python -m pytest