A python3.6+ module for physical optics based modeling and processing of data from commerical and open source instrumentation.
prysm is on pypi:
pip install prysm
prysm requires only numpy and scipy.
Prysm uses numpy for array operations. If your environment has numba installed, it will automatically accelerate many of prysm's compuations. To use an nVidia GPU, you must have cupy installed. Plotting uses matplotlib. Images are read and written with imageio. Some MTF utilities utilize pandas. Reading of Zygo datx files requires h5py.
Prysm features robust tools for modeling and propagation of wavefronts to image planes and MTF. It also features object synthesis routines and a flexible convolution system in support of image simulation. Finally, it contains rich features for analysis of interferometric data.
For a complete list of features, see the docs.
Several examples are provided in the documentation.
A guide for using the library is provided in the documentation.
If you find an issue with prysm, please open an issue or pull request. Prysm has some usage of f-strings, so any code contributed is only expected to work on python 3.6+, and is licensed under the MIT license. The library is most in need of contributions in the form of tests and documentation.