开源光学设计软件介绍-Prysm
Prysm是一个基于python的数值光学库。它的特性是POPPY和PROPER的超集,不局限于物理光学、薄透镜、薄膜和探测器建模。还有一个子模块可以取代软件,该软件带有用于数据分析的干涉仪。
Pysm被认为是同类产品中世界上运行速度最快的软件。在CPU上,端到端计算的速度是同类计算的100倍以上。在 GPU上,Pysm比其同类软件快1000倍以上。lowfssim模型可以实时运行在2kHz以上,所有这些都是Pysm的功劳。
Prysm可以用于从相机镜头到日冕仪的光学系统的正向建模到反向建模和相位检索的所有内容。由于其可组合的结构,它可以很好地与其他代码配合使用,并且可以很容易地在其他代码中替换或替换。特别值得注意的是prysm的可互换后端系统,它允许用户自由地将numpy交换为cupy,允许使用GPU进行所有计算,或者使用其他类似的交换,例如pytorch用于算法微分。
特性
光线传播
- Pupil-to-Focus
- Focus-to-Pupil
- Free space ("plane to plane" or "angular - spectrum")
- FFTs, Matrix DFTs, Chirp C Transforms
- Thin Lens Phase Screens
多项式
- Zernike
- Legendre
- Chebyshev (1st, 2nd, 3rd, 4th kind)
- Jacobi
- 2D-Q, Qbfs, Qcon
- Hopkins
- Hermite (Probablist's and Physicist's)
- Dickson
- fitting
- projection 所有这些多项式都提供了高度优化的gpu兼容实现,以及导数。
Pupil Masks
- 圆形、binary and anti-aliased
- 椭圆
- 长方形
- N边规则凸多边形
- N-vaned spiders
分段系统
- 参数化瞳孔掩模生成
- 基于任意多项式基展开的每段误差
图像仿真
- 卷积
- 污垢
- 抖动
- 目标 西门子星 黑白斜边 宝马格十字线 小孔 狭缝 Tilted Square
指标
- Strehl
- Encircled Energy
- RMS, PV, Sa, Std, Var
- Centroid
- FWHM, 1/e, 1/e^2
- PSD
- MTF / PTF / OTF
- PSD (参数拟合,参数合成)
- slope / gradient
- Total integrated scatter
- Bandlimited RMS
探测器
- 完全集成的噪声模型(shot,read,prnu等)
- 任意像素孔径(方形、长方形、纯数字)
- 光学低通滤波器
- 拜耳复合、脱花纹
薄膜
- r、t参数,即使在空间变化范围内也具有高性能
- 布鲁斯特的角度
- 临界角
- 斯内尔定律
折射率
- 柯西方程
- 塞尔迈尔方程
薄透镜
- 在图像上将焦点调至△,并反转
- 对象/图像距离关系
- 图像/物体距离和放大
- 图像/物体距离与NA/F#
- 放大率和工作F#
- 双透镜BFL,EFL(厚透镜)
倾斜的平面和其他表面
- 表面的正向或反向投影
不规则镜片
- surface synthesis in or out of beam normal based on arbitrary influence function with arbitrary sampling
- DM surface misalignment / registration errors
干涉分析
- PSD
- 低/高/带通/带阻滤波
- spike clipping
- 多项式拟合与投影
- 统计评价 (PV, RMS, PVr, Sa, bandlimited RMS...)
- total integrated scatter
- synthetic fringe maps with extra tilt fringes
- synthesize map from PSD spec