Ansys Zemax / SPEOS | 光源文件轉換器

本文解釋了如何在 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 結束,并且放置在 <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。 

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 | 光源文件轉換器的圖16Ansys Zemax / SPEOS | 光源文件轉換器的圖17

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


Ansys Zemax / SPEOS | 光源文件轉換器的圖18Ansys 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 | 光源文件轉換器的圖26


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

生成的光源文件將位于:<data>\Objects\Sources\Source 文件夾中,并且可以選擇成為光源文件。

Ansys Zemax / SPEOS | 光源文件轉換器的圖27

轉換得到的光譜文件為:LCB_G6SP_20210701_spectrum.spcd,需要被放置在 <data>\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.” 的錯誤提示,表示轉換得到的光源文件中將丟失部分光線數據。


Ansys Zemax / SPEOS | 光源文件轉換器的圖31

點擊圖片查看培訓詳情

Ansys Zemax / SPEOS | 光源文件轉換器的圖32

點擊圖片查看培訓詳情

Ansys Zemax / SPEOS | 光源文件轉換器的圖33

點擊圖片查看培訓詳情

相關閱讀

Ansys Speos | 2023 R1版本新功能介紹

Ansys Zemax | 如何設計單透鏡 第一部分:設置

Ansys Zemax | 如何使用漸暈系數

Ansys Zemax | 如何在 OpticStudio 中模擬人眼

Ansys Zemax | HUD 設計實例

Ansys Lumerical | 針對 Grating coupler 的仿真分析方法

Ansys Speos | 進行智能手機鏡頭雜散光分析


歡迎掃碼添加宇熠工作人員微信,

進入 zemax 微信交流群。

一起來學習光學設計吧!

Ansys Zemax / SPEOS | 光源文件轉換器的圖34

掃碼邀您入群

如果您對產品感興趣,或需要技術支持,歡迎致電垂詢!
電話:027-87878386
郵箱:market@ueotek.com

    武漢宇熠科技是 ANSYS 全線產品中國區官方指定代理商,提供 Ansys Zemax、Ansys Lumerical、Ansys Speos 等軟件產品的培訓、銷售、技術支持、二次開發、解決方案及這些軟件相關全方位定制服務。(點擊查看全新服務!從光學設計到打樣生產的整套解決方案

    有關以上軟件 ,您可以點擊文末“閱讀原文”了解更多信息,或致電垂詢武漢宇熠工作人員:

銷售熱線:027-87878386

咨詢郵箱:sales@ueotek.com


Ansys Zemax / SPEOS | 光源文件轉換器的圖35

Ansys Zemax / SPEOS | 光源文件轉換器的圖36
Ansys Zemax / SPEOS | 光源文件轉換器的圖37

登錄后免費查看全文
立即登錄
App下載
技術鄰APP
工程師必備
  • 項目客服
  • 培訓客服
  • 平臺客服

TOP