Ansys Zemax / SPEOS | 光源文件转换器

蓝图分享网 2023-02-21 21:55:27 474阅读 0评论

本文解释了如何在 SPEOS 与 Zemax 之间转换二进制光源文件。

下载
联系工作人员获取附件
简介
在本文中,为用户提供了一组Python代码,用于在Zemax和SPEOS之间转换源文件。

有些光源,如 .IES 文件,可在 SPEOS 和 Zemax 中进行载入和读取。然而,IES 源文件只包含角数据,只有当光学系统位于光源远场时才适用。如果我们想要在光源文件中包含位置数据,则对应的光源文件格式在 SPEOS 和 Zemax 中是不同的。在 SPEOS 中,对应文件为 .RAY 文件;在Zemax中,有两种对应文件格式,即 .DAT(单色)和 .SDF(多色)。

在第一部分中,我们描述了 Zemax 与 SPEOS 分别使用的光源文件格式。

在第二部分中,我们描述了如何使用文章中所提供的的 Python 代码将 Zemax 光源转换为 SPEOS 光源,所使用的示例光学文件为 rayfile_LCB_G6SP_100k_20210701_Zemax.dat。

在第三部分中,我们描述了如何使用文章中所提供的的 Python 代码将 SPEOS 光源转换为 Zemax 光源,所使用的示例光学文件为 rayfile_LCB_G6SP_100k_20210701_Speos.ray。

SPEOS 以及 ZEMAX 光源文件格式
在本章节中,介绍了 Zemax 和 SPEOS 的光源文件格式。但这并不是本文的主要目的,但用户可以按照这里描述的定义创建自己的 SPEOS 或 Zemax 光源文件。

.RAY、.SDF 和 .DAT 的文件格式都是以二进制形式定义的。二进制光源文件包含一个数据头结构,然后是每条光线的数据。SPEOS 和 Zemax 光源文件包含不同的数据标题信息,光线数据也将按照不同的顺序定义。

1.1 SPEOS 光源文件格式

SPEOS 光源文件数据标题结构将包含 28 字节,即 7 个双精度数值,分别表示如下内容:

1:辐射功率 

2、3、4、5、6:定义光线文件的版本

7:光度学功率

在文件数据标题之后定义了每条光线的数据,每条光线将包含 8 个双精度数据:

X





Wavelength 
Energy  
X, Y, Z 表示光线的位置

L, M, N 表示光线的方向 

Wavelength 表示光线的波长

Energy 表示光线的能量,以 Watts 为单位 

 
1.2 Zemax 光源文件格式

Zemax 光源文件的格式在 Zemax 帮助手册中的如下章节中有详细描述:

The Setup Tab > Editors Group (Setup Tab) > Non-sequential Component Editor > Non-sequential Sources > Source File 

在本文章中,我们也将简单进行说明。Zemax 二进制光源文件将具有 208 字节,其中对应为:

 Ansys Zemax / SPEOS | 光源文件转换器 第1张

描述部分包含 100 字节,其他数据的大小为 4 字节,请在您创建自定义光源文件时对此谨慎。

ray_format_type 必须为 0(仅光通量格式)或 2(光谱颜色格式),不支持其他格式类型。当且仅当 ray_format_type 为 0 时,则 flux_type 为 0 Watts,以及 1 Lumens。对于光谱颜色格式,光通量必须以 Watts 为单位,波长必须以 μm 为单位。

在数据标题之后定义光线结构,光线结构格式取决于光线格式类型。

以下为单色光源的光线格式: 

 Ansys Zemax / SPEOS | 光源文件转换器 第2张

SPEOS 光线数据也相同,X、Y、Z 表示光线位置,L、M、N 表示光线方向。Zemax 光源文件中的光通量等效于 SPEOS 中的能量数据。 

以下为复色光源的光线格式: 

 Ansys Zemax / SPEOS | 光源文件转换器 第3张

1.3 Speos 与 Zemax 光谱文件格式

有时我们可以找到与光源文件一起提供的光谱文件,所以我们添加了这一部分,以便光谱文件可以得到转换和应用。两个光谱文件都是文本格式定义的。

SPEOS 光谱文件以扩展名 *.spectrum 结束,将包含以下信息:数据标题、名称、波长总数和它们的权重、具体波长和权重。

 Ansys Zemax / SPEOS | 光源文件转换器 第4张

Zemax 光谱文件以扩展名 *.SPCD 结束,并且放置在 \Sources\Spectrum 文件夹中。文件将用于描述光源颜色模拟的用户自定义光谱。文件格式为以下形式的成对数据:

# comment
wavelength1 weight1
wavelength2 weight2
etc…

波长数据以 μm 为单位,并且需要以升序的形式排列。权重则表示为相对功率单位的无量纲形式。请注意定义的数据最少为 3 对,最多为 200 对。

将 Zemax 文件转换至 SPEOS 
本章节解释了如何使用 Python 代码将 Zemax 光源文件转换为 SPEOS 光源文件。

2.1 执行 Python 代码 

打开 Python IDLE 程序,注意本文中使用的 Python 版本为 3.9.2。 

 Ansys Zemax / SPEOS | 光源文件转换器 第5张

点击 文件 > 打开: 

 Ansys Zemax / SPEOS | 光源文件转换器 第6张

选择本文附件 ZIP 中名为 Convert_ZEMAX_to_SPEOS.py 的文件。在执行文件之前,请确保您已经将光源文件的路径进行了对应修改:

 Ansys Zemax / SPEOS | 光源文件转换器 第7张

如需要,修改 theZemaxSpectrumPath 至电脑内光源文件对应的路径:
Ansys Zemax / SPEOS | 光源文件转换器 第8张

如果您倾向于在图形用户界面中选择文件,您可以将后续三行的代码取消 “注释” 设置: 

 Ansys Zemax / SPEOS | 光源文件转换器 第9张

后续,点击运行模块: 

 Ansys Zemax / SPEOS | 光源文件转换器 第10张

在文章附件中,我们提供了后续使用的光源文件,用于介绍如何使用对应转换器,文件为:

rayfile_LCB_G6SP_100K_20210701_Zemax.dat. 

注意,通过 .DAT 的文件尾缀可以了解到该文件为单色光源文件,我们也支持 .SDF 文件的转换。

 Ansys Zemax / SPEOS | 光源文件转换器 第11张

在转换过程中,将输出一些重要的信息。转换后得到的文件将保存至原光源文件相同的路径当中。

 Ansys Zemax / SPEOS | 光源文件转换器 第12张

2.2 Zemax 中的角向和位置分布结果 

为了验证光源文件转换前后的一致性,我们将光源文件载入了 Zemax OpticStudio 后进行了光线追迹。

光源文件位于:\Document\Zemax\Objects\Sources\Source 文件夹,如此可以直接从光源文件列表中进行选择。

下图为光源文件和光源类型的选择: 

 Ansys Zemax / SPEOS | 光源文件转换器 第13张

我们创建了一个极探测器 (Detector Polar) 用于观察角向分布情况。最大的角度为 180 度,并且径向和角向像素数量设置为 180。

同样也创建了一个矩形探测器 (Detector Rectangle),参数为 Z = 1mm、X Half Width = Y Half Width = 10 mm 以及 #X Pixel = #Y Pixel = 100。也将使得我们可以在 1mm 之外查看光源发出的光斑情况。

 Ansys Zemax / SPEOS | 光源文件转换器 第14张

以下为光源的角向和位置分布: 

 Ansys Zemax / SPEOS | 光源文件转换器 第15张

 
2.3 SPEOS 中的角向和位置分布结果

以下为 SPEOS 中的探测器参数: 

 Ansys Zemax / SPEOS | 光源文件转换器 第16张 Ansys Zemax / SPEOS | 光源文件转换器 第17张

以下为在 SPEOS 中查看到的光源角向和位置分布情况:

 Ansys Zemax / SPEOS | 光源文件转换器 第18张 Ansys Zemax / SPEOS | 光源文件转换器 第19张

将 SPEOS 光源文件转换至 Zemax
本章节解释了如何使用 Python 代码将 SPEOS 光源文件转换为 Zemax 光源文件。由于 SPEOS 光源文件将包含波长信息,转换得到的 Zemax 文件将始终为 .SDF 文件。 

我们将再次使用 IDLE Shell 3.9.2 运行对应代码。使用的 Python 代码文件名为:

Convert_SPEOS_to_ZEMAX.py 

 Ansys Zemax / SPEOS | 光源文件转换器 第20张

将文件路径修改为电脑中存放以下光源文件的路径:

rayfile_LCB_G6SP_100k_20210701_Speos.RAY 

 Ansys Zemax / SPEOS | 光源文件转换器 第21张

如需要,修改 SpeoSpectrumPath 至电脑中光源文件所处的路径:

 Ansys Zemax / SPEOS | 光源文件转换器 第22张

点击执行模块: 

 Ansys Zemax / SPEOS | 光源文件转换器 第23张

如果在 Python 窗口中未出现任何警告或错误,通常情况下表示转换成功:

 Ansys Zemax / SPEOS | 光源文件转换器 第24张

3.2 SPEOS 中的角向和位置分布结果

我们将使用与上述示例相同的探测器参数执行模拟,将得到与我们先前转换完全相同的角向与位置分布结果:

 Ansys Zemax / SPEOS | 光源文件转换器 第25张

 Ansys Zemax / SPEOS | 光源文件转换器 第19张

 
3.3 Zemax 中的角向以及位置分布结果 

生成的光源文件将位于:\Objects\Sources\Source 文件夹中,并且可以选择成为光源文件。

 Ansys Zemax / SPEOS | 光源文件转换器 第27张

转换得到的光谱文件为:LCB_G6SP_20210701_spectrum.spcd,需要被放置在 \Objects\Sources\Spectrum 文件夹,并且可以选择作为光源文件:

 Ansys Zemax / SPEOS | 光源文件转换器 第28张

将使用与上述示例相同的探测器设置: 

 Ansys Zemax / SPEOS | 光源文件转换器 第29张

以下为最终得到的角向和位置分布结果: 

 Ansys Zemax / SPEOS | 光源文件转换器 第30张

3.4 其他注解

请注意 SPEOS 并不是唯一可以生成 .RAY 光源文件的软件。

如果在转换过程中收到 “Warning: File size is not 28 + 8 * 4 * N ? Please verify if it is a SPEOS .ray file.” 的错误提示,表示转换得到的光源文件中将丢失部分光线数据。

免责声明:

1、本站所有资源文章出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

2、本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户擦亮眼睛自行鉴别,做一个有主见和判断力的用户。

3、本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

4、侵权违法和不良信息举报 举报邮箱:cnddit@qq.com

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
验证码
评论列表 (暂无评论,474人围观)

还没有评论,来说两句吧...