琼斯和穆勒偏振光学
py-pol的Python项目详细描述
python极化
- 自由软件:麻省理工学院许可证
- 文档:https://py-pol.readthedocs.io/en/latest/
功能
py pol是琼斯和斯托克斯穆勒偏振光学的python库。它有4个主模块:
- jones_vector - for generation of polarization states in 2x1 Jones formalism.
- jones_matrix - for generation of 2x2 matrix polarizers.
- stokes - for generation of polarization states in 2x2 Stokes formalism.
- mueller - for generation of 4x4 matrix polarizers.
每个类都有自己的类,有多种生成、操作和参数提取方法。
示例
琼斯形式主义
生成琼斯向量和矩阵
frompy_pol.jones_vectorimportJones_vectorfrompy_pol.jones_matriximportJones_matrixfrompy_pol.utilsimportdegreesj0=Jones_vector("j0")j0.linear_light(angle=45*degrees)m0=Jones_matrix("m0")m0.diattenuator_linear(p1=0.75,p2=0.25,angle=45*degrees)m1=Jones_matrix("m1")m1.quarter_wave(angle=0*degrees)j1=m1*m0*j0
从琼斯向量中提取信息。
print(j0,'\n')print(j0.parameters)
j0=[+0.707;+0.707]'parametersofj0:intensity:1.000arb.ualpha:45.000ºdelay:0.000ºazimuth:45.000ºellipticityangle:0.000ºa,b:1.0000.000
print(j1,'\n')print(j1.parameters)
m1*m0@45.00º*j0=[+0.530+0.000j;+0.000+0.530j]'parametersofm1*m0@45.00º*j0:intensity:0.562arb.ualpha:45.000ºdelay:90.000ºazimuth:8.618ºellipticityangle:-45.000ºa,b:0.5300.530
从琼斯矩阵中提取信息。
print(m0,'\n')print(m0.parameters)
m0@45.00º=[+0.500,+0.250][+0.250,+0.500]parametersofm0@45.00º:is_homogeneous:Truedelay:0.000ªdiattenuation:0.800
print(m1,'\n')print(m1.parameters)
m1=[+1+0j,+0+0j][+0+0j,+0+1j]parametersofm1:is_homogeneous:Truedelay:90.000ªdiattenuation:0.000
stokes-mueller形式
生成stokes向量和mueller矩阵。
frompy_pol.stokesimportStokesfrompy_pol.muellerimportMuellerfrompy_pol.utilsimportdegreesj0=Stokes("j0")j0.linear_light(angle=45*degrees)m1=Mueller("m1")m1.diattenuator_linear(p1=1,p2=0,angle=0*degrees)j1=m1*j0
从stokes向量中提取信息。
确定斯托克斯矢量的强度:
i1=j0.parameters.intensity()print("intensity = {:4.3f} arb. u.".format(i1))
intensity=1.250arb.u.
确定stokes向量的所有参数:
print(j0,'\n')print(j0.parameters)
j0=[+1.250;+0.530;-0.562;+0.530]parametersofj0:intensity:1.250arb.u.degreepolarization:0.750degreelinearpol.:0.618degreecircularpol.:0.424alpha:27.775ºdelay:43.314ºazimuth:23.343ºellipticityangle:17.225ºellipticityparam:0.310eccentricity:0.951polarizedvector:[+0.938;+0.530;-0.562;+0.530]'unpolarizedvector:[+0.312;+0.000;+0.000;+0.000]'
从mueller矩阵中提取信息。
print(m1,'\n')print(m1.parameters)
m1=[+0.531,+0.469,+0.000,+0.000][+0.469,+0.531,+0.000,+0.000][+0.000,+0.000,+0.250,+0.000][+0.000,+0.000,+0.000,+0.250]
print(j1)print(j1.parameters)
m1*j0=[+0.913;+0.868;-0.141;+0.133]parametersofm1*j0:intensity:0.913arb.u.degreepolarization:0.974degreelinearpol.:0.963degreecircularpol.:0.145alpha:6.279ºdelay:43.314ºazimuth:4.603ºellipticityangle:4.289ºellipticityparam:0.075eccentricity:0.997polarizedvector:[+0.889;+0.868;-0.141;+0.133]'unpolarizedvector:[+0.024;+0.000;+0.000;+0.000]'
图纸
模块还允许获得极化的图形表示。
为琼斯矢量画偏振椭圆。
由于光的非偏振部分,随机分布的stokes矢量绘制偏振椭圆。
在poincar_©球体中绘制stokes向量。
引用
L.M.Sanchez Brea,J.Del Hoyo“Py Pol,偏振光学的Python模块”,https://pypi.org/project/py-pol/(2019年)
参考文献
- D Goldstein“偏振光”第2版,Marcel Dekker(1993)。
- JJ Gil,R.Ossikovsky,“偏振光和穆勒矩阵方法”,CRC出版社(2016)。
- C Brosseau,“偏振光基础”Wiley(1998)。
- R Martinez Herrero,P.M.Mejias,G.Piquero,《部分偏振光场的表征》,Springer光学系列(2009)。
- 《光学手册1》第5章“偏振”。
- 拉奇普曼“光学手册2”第2章“旋光”。
- 吕和拉奇普曼,“齐次和非齐次琼斯矩阵”,J.opt.社会福利。是。A 11(2)766(1994年)。
学分
这个包是用Cookiecutter和audreyr/cookiecutter-pypackage项目模板创建的。
历史记录
0.1.1(2018-12-22)
- PYPI上的第一个版本处于pre-alpha状态。
0.1.3(2019-01-22)
α状态
- 琼斯矢量,琼斯矩阵,斯托克斯工程。
- 穆勒正在进行中。
- 功能=9/10
- 文档=8/10
- 教程=7/10。
- 示例=6/10。
- 绘图=0/10。
0.1.4(2019-02-03)
α状态
- 琼斯矢量,琼斯矩阵,斯托克斯工程。
- 穆勒正在进行中。
- 功能=9/10
- 文档=8/10
- 教程=8/10。
- 示例=8/10。
- 测试=8/10
- 图纸=10/10。完成了。琼斯和斯托克斯的偏振椭圆(部分随机)。庞加球上的斯托克斯。
0.2.0(2019-02-22)
β状态
- 琼斯矢量,琼斯矩阵,斯托克斯和穆勒作品。
未来:
- 开发参数矩阵。
- 介绍了大多数方法中的给定对象选项。
- 在大多数操作方法中引入保留选项。