核心概念
NITUは、Pythonで開発された新しい干渉計データ解析および可視化パッケージであり、ゼルニケ分解、インタラクティブな可視化、時系列解析など、光学製造および試験のための機能を提供します。
要約
NITU: Pythonベースの新しい干渉計データ解析および可視化パッケージ
このレポートでは、干渉計データの解析と可視化のために特別に設計された、新しく開発されたPythonパッケージであるNITU(New Interferometric Testing Utility)を紹介します。NITUは、その機能、機能性、そしてそれが使用するプラットフォームの点で「新しい」ものです。Poppy [1]にはいくつかのゼルニケ機能が含まれていますが、NITUは、干渉計データの解析と可視化のためのより幅広い専門ツールを提供し、Poppyが提供するものよりも機能を強化しています。MATLABベースのオープンソースパッケージであるSaguaro [2]は、干渉計データを解析および可視化するための優れた機能をいくつか提供していますが、MATLABベースのパッケージであるため、いくつかの欠点があります。注目すべきは、それを使用するにはMATLABライセンスが必要になることです。一方、NITUはPythonベースのパッケージであるため無料です。Pythonは可読性が高いため、バグが少なく、デバッグが高速になります。また、Pythonは、グラフィックパッケージとツールセットにおいて、より幅広い選択肢を提供しており、より多くのコミュニティが利用できるようになります[3]。NITUは、パフォーマンスの向上とメンテナンスの容易化のために、外部依存関係を最小限に抑えるように努めました。現在、インタラクティブな環境を提供するために、NumPy、SciPy、Matplotlib、Plotly [4]のみを使用しています。NITUは、最高の品質を達成するために、テスト中のユニットをプロセス中に監視する必要がある光学製造/試験において重要な、干渉計データの時系列解析などの独自の機能を提供します。また、温度や振動など、いくつかの要因によって変化する可能性のある表面の時間的変動を測定します。学術および産業の両方の分野の光計測の専門家によって厳密に使用されているNITUのいくつかの重要な機能を紹介します。また、NITUのMATLABよりもPythonを使用する利点と、パッケージの将来の開発計画についても概説します。
ゼルニケ分解
干渉計で最も重要で広く利用されているツールの1つは、ゼルニケ分解とゼルニケフィッティングです。NITUは、ゼルニケ分解にノールのインデックスを採用しています[5]。図1(a)は、入力光路差(OPD)マップと、最初の37個のゼルニケ多項式に最小二乗フィッティングを使用して再構成された波面を示しています。
ピストンチップとチルトの除去
OPDからのピストン、チップ、およびチルトの除去は、テスト中のユニットの表面特性ではない、ミスアライメントによって誘発された収差をキャンセルするために、光計測でしばしば必要とされます。NITUのremove_ptt()関数は、再構成されたOPDマップからこのピストン、チップ、およびチルトを除去できます。図1(b)は、関数の実装を示しています。
時系列解析
NITUは、表面の二乗平均平方根(RMS)または特定のゼルニケ多項式の変化を直線でフィッティングするtimeseries()関数を備えています。フィッティングされた直線の式とデータの標準偏差を返します。
インタラクティブな可視化
InteractiveMode()を使用すると、追加のコード行を必要とせずに、カーソルを移動するだけで、3次元でデータを表示、ズーム、回転できます。このインタラクティブな機能は、異常を特定し、データの理解を深めるのに特に役立ちます。ユーザーは、特定のニーズに合わせてビューを簡単にカスタマイズできるため、データ解析全体のエクスペリエンスが向上します。関数の実装を図1(c)に示します。
「要約」
summary()関数は、特定のOPDマップの概要を簡単に把握できます。ピーク値と谷値、表面RMS、最初の11個のゼルニケ係数など、入力データの簡単な要約を提供します。この関数は、OPDに関する重要な指標と洞察を効率的に取得するために不可欠です。図1(d)は、関数がどのように実装されているかを示しています。
PythonをMATLABよりも選択することには、いくつかの利点があります。Pythonは無料でオープンソースであるため、コストの障壁がなくなり、誰でもアクセスできるようになります。その簡単な構文により、コードの可読性が向上し、バグが減少します。主に行列操作用に設計されたMATLABとは異なり、Pythonは用途が広く、効率的なコーディングのために、さまざまなライブラリ、リスト、および辞書をサポートしています。ほとんどのプログラミング言語に沿ったPythonのゼロベースのインデックス作成は、MATLABの1ベースのインデックス作成と比較して混乱を軽減します。Pythonはまた、クリーンで柔軟な構造を持つオブジェクト指向プログラミング(OOP)に優れていますが、MATLABのOOPはより複雑になる可能性があります。さらに、Pythonは、魅力的で機能的なアプリケーションを作成するための、さまざまなグラフィックパッケージを提供しています。これらの機能により、Pythonは、光計測などの学術および産業アプリケーションにとって優れた選択肢となっています。
このセクションは、Ozgur、Ceyhunらの調査結果に基づいています。[3]