Ansys Zemax / SPEOS | 光源文件轉(zhuǎn)換器
本文解釋了如何在 SPEOS 與 Zemax 之間轉(zhuǎn)換二進(jìn)制光源文件。
下載
聯(lián)系工作人員獲取附件
簡介
在本文中,為用戶提供了一組Python代碼,用于在Zemax和SPEOS之間轉(zhuǎn)換源文件。
有些光源,如 .IES 文件,可在 SPEOS 和 Zemax 中進(jìn)行載入和讀取。然而,IES 源文件只包含角數(shù)據(jù),只有當(dāng)光學(xué)系統(tǒng)位于光源遠(yuǎn)場(chǎng)時(shí)才適用。如果我們想要在光源文件中包含位置數(shù)據(jù),則對(duì)應(yīng)的光源文件格式在 SPEOS 和 Zemax 中是不同的。在 SPEOS 中,對(duì)應(yīng)文件為 .RAY 文件;在Zemax中,有兩種對(duì)應(yīng)文件格式,即 .DAT(單色)和 .SDF(多色)。
在第一部分中,我們描述了 Zemax 與 SPEOS 分別使用的光源文件格式。
在第二部分中,我們描述了如何使用文章中所提供的的 Python 代碼將 Zemax 光源轉(zhuǎn)換為 SPEOS 光源,所使用的示例光學(xué)文件為 rayfile_LCB_G6SP_100k_20210701_Zemax.dat。
在第三部分中,我們描述了如何使用文章中所提供的的 Python 代碼將 SPEOS 光源轉(zhuǎn)換為 Zemax 光源,所使用的示例光學(xué)文件為 rayfile_LCB_G6SP_100k_20210701_Speos.ray。
SPEOS 以及 ZEMAX 光源文件格式
在本章節(jié)中,介紹了 Zemax 和 SPEOS 的光源文件格式。但這并不是本文的主要目的,但用戶可以按照這里描述的定義創(chuàng)建自己的 SPEOS 或 Zemax 光源文件。
.RAY、.SDF 和 .DAT 的文件格式都是以二進(jìn)制形式定義的。二進(jìn)制光源文件包含一個(gè)數(shù)據(jù)頭結(jié)構(gòu),然后是每條光線的數(shù)據(jù)。SPEOS 和 Zemax 光源文件包含不同的數(shù)據(jù)標(biāo)題信息,光線數(shù)據(jù)也將按照不同的順序定義。
1.1 SPEOS 光源文件格式
SPEOS 光源文件數(shù)據(jù)標(biāo)題結(jié)構(gòu)將包含 28 字節(jié),即 7 個(gè)雙精度數(shù)值,分別表示如下內(nèi)容:
1:輻射功率
2、3、4、5、6:定義光線文件的版本
7:光度學(xué)功率
在文件數(shù)據(jù)標(biāo)題之后定義了每條光線的數(shù)據(jù),每條光線將包含 8 個(gè)雙精度數(shù)據(jù):
X
Y
Z
L
M
N
Wavelength
Energy
X, Y, Z 表示光線的位置
L, M, N 表示光線的方向
Wavelength 表示光線的波長
Energy 表示光線的能量,以 Watts 為單位
1.2 Zemax 光源文件格式
Zemax 光源文件的格式在 Zemax 幫助手冊(cè)中的如下章節(jié)中有詳細(xì)描述:
The Setup Tab > Editors Group (Setup Tab) > Non-sequential Component Editor > Non-sequential Sources > Source File
在本文章中,我們也將簡單進(jìn)行說明。Zemax 二進(jìn)制光源文件將具有 208 字節(jié),其中對(duì)應(yīng)為:
描述部分包含 100 字節(jié),其他數(shù)據(jù)的大小為 4 字節(jié),請(qǐng)?jiān)谀鷦?chuàng)建自定義光源文件時(shí)對(duì)此謹(jǐn)慎。
ray_format_type 必須為 0(僅光通量格式)或 2(光譜顏色格式),不支持其他格式類型。當(dāng)且僅當(dāng) ray_format_type 為 0 時(shí),則 flux_type 為 0 Watts,以及 1 Lumens。對(duì)于光譜顏色格式,光通量必須以 Watts 為單位,波長必須以 μm 為單位。
在數(shù)據(jù)標(biāo)題之后定義光線結(jié)構(gòu),光線結(jié)構(gòu)格式取決于光線格式類型。
以下為單色光源的光線格式:
SPEOS 光線數(shù)據(jù)也相同,X、Y、Z 表示光線位置,L、M、N 表示光線方向。Zemax 光源文件中的光通量等效于 SPEOS 中的能量數(shù)據(jù)。
以下為復(fù)色光源的光線格式:
1.3 Speos 與 Zemax 光譜文件格式
有時(shí)我們可以找到與光源文件一起提供的光譜文件,所以我們添加了這一部分,以便光譜文件可以得到轉(zhuǎn)換和應(yīng)用。兩個(gè)光譜文件都是文本格式定義的。
SPEOS 光譜文件以擴(kuò)展名 *.spectrum 結(jié)束,將包含以下信息:數(shù)據(jù)標(biāo)題、名稱、波長總數(shù)和它們的權(quán)重、具體波長和權(quán)重。
Zemax 光譜文件以擴(kuò)展名 *.SPCD 結(jié)束,并且放置在 \Sources\Spectrum 文件夾中。文件將用于描述光源顏色模擬的用戶自定義光譜。文件格式為以下形式的成對(duì)數(shù)據(jù):
# comment
wavelength1 weight1
wavelength2 weight2
etc…
波長數(shù)據(jù)以 μm 為單位,并且需要以升序的形式排列。權(quán)重則表示為相對(duì)功率單位的無量綱形式。請(qǐng)注意定義的數(shù)據(jù)最少為 3 對(duì),最多為 200 對(duì)。
將 Zemax 文件轉(zhuǎn)換至 SPEOS
本章節(jié)解釋了如何使用 Python 代碼將 Zemax 光源文件轉(zhuǎn)換為 SPEOS 光源文件。
2.1 執(zhí)行 Python 代碼
打開 Python IDLE 程序,注意本文中使用的 Python 版本為 3.9.2。
點(diǎn)擊 文件 > 打開:
選擇本文附件 ZIP 中名為 Convert_ZEMAX_to_SPEOS.py 的文件。在執(zhí)行文件之前,請(qǐng)確保您已經(jīng)將光源文件的路徑進(jìn)行了對(duì)應(yīng)修改:
如需要,修改 theZemaxSpectrumPath 至電腦內(nèi)光源文件對(duì)應(yīng)的路徑:
如果您傾向于在圖形用戶界面中選擇文件,您可以將后續(xù)三行的代碼取消 “注釋” 設(shè)置:
后續(xù),點(diǎn)擊運(yùn)行模塊:
在文章附件中,我們提供了后續(xù)使用的光源文件,用于介紹如何使用對(duì)應(yīng)轉(zhuǎn)換器,文件為:
rayfile_LCB_G6SP_100K_20210701_Zemax.dat.
注意,通過 .DAT 的文件尾綴可以了解到該文件為單色光源文件,我們也支持 .SDF 文件的轉(zhuǎn)換。
在轉(zhuǎn)換過程中,將輸出一些重要的信息。轉(zhuǎn)換后得到的文件將保存至原光源文件相同的路徑當(dāng)中。
2.2 Zemax 中的角向和位置分布結(jié)果
為了驗(yàn)證光源文件轉(zhuǎn)換前后的一致性,我們將光源文件載入了 Zemax OpticStudio 后進(jìn)行了光線追跡。
光源文件位于:\Document\Zemax\Objects\Sources\Source 文件夾,如此可以直接從光源文件列表中進(jìn)行選擇。
下圖為光源文件和光源類型的選擇:
我們創(chuàng)建了一個(gè)極探測(cè)器 (Detector Polar) 用于觀察角向分布情況。最大的角度為 180 度,并且徑向和角向像素?cái)?shù)量設(shè)置為 180。
同樣也創(chuàng)建了一個(gè)矩形探測(cè)器 (Detector Rectangle),參數(shù)為 Z = 1mm、X Half Width = Y Half Width = 10 mm 以及 #X Pixel = #Y Pixel = 100。也將使得我們可以在 1mm 之外查看光源發(fā)出的光斑情況。
以下為光源的角向和位置分布:
2.3 SPEOS 中的角向和位置分布結(jié)果
以下為 SPEOS 中的探測(cè)器參數(shù):
以下為在 SPEOS 中查看到的光源角向和位置分布情況:
將 SPEOS 光源文件轉(zhuǎn)換至 Zemax
本章節(jié)解釋了如何使用 Python 代碼將 SPEOS 光源文件轉(zhuǎn)換為 Zemax 光源文件。由于 SPEOS 光源文件將包含波長信息,轉(zhuǎn)換得到的 Zemax 文件將始終為 .SDF 文件。
我們將再次使用 IDLE Shell 3.9.2 運(yùn)行對(duì)應(yīng)代碼。使用的 Python 代碼文件名為:
Convert_SPEOS_to_ZEMAX.py
將文件路徑修改為電腦中存放以下光源文件的路徑:
rayfile_LCB_G6SP_100k_20210701_Speos.RAY
如需要,修改 SpeoSpectrumPath 至電腦中光源文件所處的路徑:
點(diǎn)擊執(zhí)行模塊:
如果在 Python 窗口中未出現(xiàn)任何警告或錯(cuò)誤,通常情況下表示轉(zhuǎn)換成功:
3.2 SPEOS 中的角向和位置分布結(jié)果
我們將使用與上述示例相同的探測(cè)器參數(shù)執(zhí)行模擬,將得到與我們先前轉(zhuǎn)換完全相同的角向與位置分布結(jié)果:
3.3 Zemax 中的角向以及位置分布結(jié)果
生成的光源文件將位于:\Objects\Sources\Source 文件夾中,并且可以選擇成為光源文件。
轉(zhuǎn)換得到的光譜文件為:LCB_G6SP_20210701_spectrum.spcd,需要被放置在 \Objects\Sources\Spectrum 文件夾,并且可以選擇作為光源文件:
將使用與上述示例相同的探測(cè)器設(shè)置:
以下為最終得到的角向和位置分布結(jié)果:
3.4 其他注解
請(qǐng)注意 SPEOS 并不是唯一可以生成 .RAY 光源文件的軟件。
如果在轉(zhuǎn)換過程中收到 “Warning: File size is not 28 + 8 * 4 * N ? Please verify if it is a SPEOS .ray file.” 的錯(cuò)誤提示,表示轉(zhuǎn)換得到的光源文件中將丟失部分光線數(shù)據(jù)。