Planned intervention: On Wednesday April 3rd 05:30 UTC Zenodo will be unavailable for up to 2-10 minutes to perform a storage cluster upgrade.
Published May 7, 2019 | Version v0.16
Software Open

prysm: A Python optics module

  • 1. Retro Refractions

Description

prysm is an open-source library for physical and first-order modeling of optical systems and analysis of related data. The library supports the modeling, evaluation, and visualization of an optical system at any level, in the pupil plane, image plane, or k-space (MTF). This can also be done at the optical, or opto-electronic system level by including detector elements. Optical propagations are handled using the paraxial approximation of the Fresnel Transform via an FFT implementation. prysm also features an io submodule for loading data from commercial and open source instrumentation and software into simple python structures (dicts, etc) or static methods on its classes for loading directly into prysm’s object system. Notably, this support includes the most popular interferometers and MTF benches in the commercial marketplace. Combined, these capabilities serve as the backbone of user programs supporting imaging system analysis by performing tasks such as image simulation, wavefront sensing, or robust analysis of metrology data utilizing cutting-edge methods from the literature. The library is available for Linux, MacOS, and Windows and only carries core dependencies on numpy (T. E. Oliphant, 2006) and scipy (Jones, Oliphant, Peterson, & others, 2001). It will utilize a wide array of optional dependencies for some functionality. For performance, prysm can leverage numba (Lam, Pitrou, & Seibert, 2015) for acceleration of calculations on CPUs or cupy (Nishino & Loomis, 2017) on GPUs. Plotting is implemented using matplotlib (Hunter, 2007), images are read and written using imageio (Klein et al., 2019) and deconvolved with point spread functions using scikit-image (Van der Walt et al., 2014). Some tabular formats for MTF data require pandas (McKinney, 2010). Reading of Zygo’s datx format for interferometric data requires h5py (Collette, 2013).

Files

prysm-0.16.zip

Files (3.5 MB)

Name Size Download all
md5:309b2856d50837e6c3844f7a57133646
3.5 MB Preview Download