本文解释了如何在 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

  • Y

  • Z

  • L

  • M

  • N

  • 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 字节,其中对应为:

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

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

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

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

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

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

1.3 Speos 与 Zemax 光谱文件格式

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

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

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


# comment <optional>
wavelength1 weight1
wavelength2 weight2
etc...

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

将 Zemax 文件转换至 SPEOS 

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

2.1 执行 Python 代码

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

点击 文件 > 打开:

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

如需要,修改 theZemaxSpectrumPath 至电脑内光源文件对应的路径:

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

后续,点击运行模块:

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

rayfile_LCB_G6SP_100K_20210701_Zemax.dat.

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

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

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

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

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

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

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

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

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

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

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

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

将 SPEOS 光源文件转换至 Zemax

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

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

Convert_SPEOS_to_ZEMAX.py

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

rayfile_LCB_G6SP_100k_20210701_Speos.RAY

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

点击执行模块:

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

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

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

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

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

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

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

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

3.4 其他注解

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

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

Ansys Zemax / SPEOS | 光源文件转换器相关推荐

  1. Ansys Zemax / SPEOS | 3片式LCD投影仪的设计与仿真

    概述 近年来,智能投影仪备受年轻人青睐,在社交平台上,频繁出现相关品牌的"种草"视频或帖子.其中抖音"投影仪"话题有48亿次播放,小红书上则有超过58万篇投影仪 ...

  2. Ansys Zemax / Speos | 关于汽车投影灯解决方案

  3. Ansys Zemax | 大功率激光系统的 STOP 分析1:如何使用 OpticStudio 优化光学设置

    大功率激光器广泛用于各种领域当中,例如激光切割.焊接.钻孔等应用中.由于镜头材料的体吸收或表面膜层带来的吸收效应,将导致在光学系统中由于激光能量吸收所产生的影响也显而易见,大功率激光器系统带来的激光能 ...

  4. Ansys Zemax | 如何在序列模式下模拟分光棱镜

    概述 这篇文章介绍了: · 如何在序列模式下使用多重结构创建分光棱镜 · 如何在布局图以及分析/计算窗口中同时追迹透射和反射光线 · 在考虑偏振及镀膜的影响下如何计算透射和反射光线的总能量 (联系我们 ...

  5. 【图片编辑小软件, 在线文件转换器】FastStone Photo Resizer支持批量转换和批量重命名;免费快速在线转换器, 将pdf, 图像, 视频, 文档, 音频, 电子书及压缩等格式相互转换

    ▚ 01 FastStone Photo Resizer 1.1 简介 包含两大功能:批量转换.批量重命名 下载地址为:https://download.csdn.net/download/Xminy ...

  6. 推荐几个免费的PDF to Word文件转换器

    SAP的很多教材包括标准教材.PA教材好多都是PDF格式的,看好但不好编辑.本人喜欢涂鸦,喜欢翻译,所以一般都会先转成WORD格式.换过很多软件,都没有一个效果比较好的,大都是加入了千百万的文本框来定 ...

  7. 视频文件转换器有哪些?什么视频文件转换器好用?

    视频承载着丰富的文字.声音.图像,能够多维度地调用人的感知能力,可以说是当今时代信息输入的重要载体. 而视频有avi.rm.rmvb.3 gp等多种格式,当我们使用不同设备来观看视频时,就涉及到视频文 ...

  8. 使用caj文件转换器怎么转换成word文档

    我们在办公的时候会处理很多文件,一般将它转换成word文档的形式,但是有很多caj文件处理不了,一直放在那里,该怎么办呢!这时候就需要用caj文件转换器了,那么使用caj文件转换器怎么转换成word文 ...

  9. jpg转pdf文件转换器注册码

    jpg转pdf文件转换器注册码 导语:商务办公人士无心重要处理少量的JPG名目图片,迎面对JPG转为PDF电子文档时,借使倘使抉择平庸的办公软件并不支持此种样式文件的掀开,为了疾速浏览图片,人们往往都 ...

最新文章

  1. photoshop ps 拉长裙子 方法
  2. Win7环境下VS2010配置Cocos2d-x-2.1.4最新版本的开发环境(亲测)
  3. ElasticStack系列之八 _source 字段
  4. 牛客网 在线编程 回文链表
  5. php吞了throw错误,PHP 异常与错误处理
  6. 为什么0.1无法被二进制小数精确表示?
  7. 为啥我从后台查到的值在页面显示的是undefined_【java笔记】046天,作购物车页面,学习JavaScript...
  8. mysql 数据库日志管理工具_mysql mysqlbinlog日志管理工具使用教程
  9. [译]GLUT教程 - 重整子窗体
  10. C++创建对象new与不new区别
  11. YY0709标准解读
  12. 结巴分词python安装_“结巴”分词:做最好的Python分词组件
  13. Requests+Xpath 爬取豆瓣读书TOP并生成txt,csv,json,excel文件
  14. kylin调优,项目中错误总结,知识点总结,kylin jdbc driver + 数据库连接池druid + Myba
  15. MVC与三层架构模型笔记
  16. 所有版本极域数字电子教室连线时破解广播
  17. Robotruck UVA - 1169
  18. 2022年度回顾 | 技术篇:突破公链不可能三角的努力
  19. 假外汇平台杀入币圈:反向喊单,篡改数据,股民成最大受害者
  20. C语言实战 - 贪吃蛇(图形界面)

热门文章

  1. 网络是怎样连接的--TCP大致控制流程
  2. 分布式系统概念与设计分布式实例
  3. lisp写标高线_基于Autolisp语言的等高线批量赋标高程序
  4. 分布式定时任务调度中心
  5. VLFeat、pydot配置
  6. LPK木马分析-02
  7. 憋个大招!高性能mysql第四版pdf在线阅读
  8. 微信公众号怎么设置下载文件
  9. String字符串编码格式转换(UTF8/GBK)
  10. VPP学习(一)VPP简介