0% found this document useful (0 votes)
24 views2 pages

Python Package for Interferometric Analysis

New Interferometric Testing Utility (NITU) : A Python Package for Interferometric Data Analysis and Visualization

Uploaded by

fakemario95
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views2 pages

Python Package for Interferometric Analysis

New Interferometric Testing Utility (NITU) : A Python Package for Interferometric Data Analysis and Visualization

Uploaded by

fakemario95
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

New Interferometric Testing Utility (NITU) : A

Python Package for Interferometric Data


Analysis and Visualization

Meghdoot Biswas1,* and Daewook Kim1,2


1 James C. Wyant College of Optical Sciences, University of Arizona, 1630 E. University Blvd., Tucson, AZ
85721 USA
2 Department of Astronomy, University of Arizona, 933 N. Cherry Ave., Tucson, AZ, 85721 USA
* [email protected]
arXiv:2411.00009v1 [astro-ph.IM] 17 Oct 2024

Abstract: New Interferometric Testing Utility (NITU) is a newly developed Python pack-
age for analyzing and visualizing interferometric data. It provides Zernike decomposition,
interactive visualization, time series analysis, and additional features for optical manufac-
turing and testing. © 2024 The Author(s)

1. Introduction
In this report, we introduce New Interferometric Testing Utility (NITU), a newly developed Python package specif-
ically designed for interferometric data analysis and visualization. NITU is “new” in terms of its features, func-
tionality and also the platform it uses. While Poppy [1] includes some Zernike functionalities, NITU offers a
broader array of specialized tools for interferometric data analysis and visualization, enhancing its capabilities be-
yond those provided by Poppy. A MATLAB based open source package Saguaro [2] offers some great features to
analyze and visualize interferometric data but being a MATLAB based package, it has some demerits. A notable
one is, one has to have a MATLAB license in order to use it. On the other hand, NITU being a Python based
package, is free. Python’s better readability leads to fewer bugs and faster debugging. Also Python offers a wider
set of choices in graphics packages and toolsets which would make it available for a greater community [3]. We
tried to make NITU with minimal external dependencies for improved performance and easier maintenance. To
this date, it only uses NumPy, SciPy, Matplotlib and Plotly [4] to provide an interactive environment. NITU offers
some unique features such as time series analysis of interferometric data which is crucial in optical manufactur-
ing/testing where the unit under test is needed to be monitored during the process to achieve highest quality. Also
to measure the temporal variability of the surface that can change by several factors such as temperature, vibration
to name a few. We highlight several key features of NITU that are rigorously utilized by optical metrology experts
in both academic and industrial settings. We also discuss the advantages of Python over MATLAB for NITU and
outline the future development plans for the package.

2. Package Highlights
2.1. Zernike decomposition
One of the most important and widely utilized tools in interferometry is Zernike decomposition and Zernike fitting.
NITU employs Noll’s indexing for Zernike decomposition [5]. Figure 1 (a) shows the input optical path difference
(OPD) map and the reconstructed wavefront using least squares fitting for the first 37 Zernike polynomials.

2.2. Piston Tip and Tilt removal


Removal of piston, tip, and tilt from the OPD is often required in optical metrology to cancel out the aberrations
induced by misalignment which are not the surface property of the unit under test. The remove ptt() function
of NITU can remove this piston, tip and tilt from the reconstructed OPD map. Figure 1 (b) demonstrates the
implementation of the function

2.3. Time series analysis


NITU offers a timeseries() function that fits the root mean square (RMS) of the surface or a specific Zernike
polynomial change with a straight line. It returns the equation of the fitted line and the standard deviation of the
data.
2.4. Interactive visualization
InteractiveMode() allows users to view, zoom, and rotate data in three dimensions simply by moving the
cursor, without requiring additional lines of code. This interactive capability is particularly useful for identifying
anomalies and gaining a clearer understanding of the data. Users can easily customize their view to meet specific
needs, enhancing the overall data analysis experience. The function’s implementation is illustrated in Figure 1 (c).

2.5. The ”summary”


The summary(), function offers a quick overview of a given OPD map. It provides a brief summary of the input
data, including the peak and valley values, the surface RMS, and the first 11 Zernike coefficients. This function is
essential for obtaining key metrics and insights about the OPD efficiently. Figure 1 (d) depicts how the function is
implemented.

Fig. 1. (a) Comparison of the input OPD with the reconstructed OPD. (b) OPD after removing
Piston, Tip, and Tilt. (c) Interactive visualization of the OPD data. (d) Implementation details of the
summary function.

3. Key Reasons to Prefer Python Over MATLAB


Choosing Python over MATLAB has several advantages. Python is free and open-source, which eliminates cost
barriers and makes it accessible to everyone. Its straightforward syntax enhances code readability and reduces
bugs. Unlike MATLAB, which is designed primarily for matrix manipulation, Python is versatile and supports a
wide range of libraries, lists, and dictionaries for efficient coding. Python’s zero-based indexing, in line with most
programming languages, reduces confusion compared to MATLAB’s one-based indexing. Python also excels
in object-oriented programming(OOP) with a clean, flexible structure, whereas MATLAB’s OOP can be more
complex. Additionally, Python offers a diverse range of graphical packages for creating appealing and functional
applications. These features make Python a superior choice for academic and industrial applications in optical
metrology and beyond.
This section is based on the findings of Ozgur, Ceyhun, et al. [3]

4. Future Work
We plan to make NITU an open-source Python package, allowing the scientific and engineering community to ac-
cess and contribute to its development. This will enable collaboration from researchers and developers worldwide,
leading to new features and improvements.

References
1. M. Perrin, J. Long, E. Douglas, A. Sivaramakrishnan, C. Slocum et al., “Poppy: physical optics propagation in python,”
Astrophys. Source Code Libr. pp. ascl–1602 (2016).
2. D. W. Kim, B. J. Lewis, and J. H. Burge, “Open-source data analysis and visualization software platform: Saguaro,” in
Optical Manufacturing and Testing IX, vol. 8126 (SPIE, 2011), pp. 75–84.
3. C. Ozgur, T. Colliau, G. Rogers, Z. Hughes et al., “Matlab vs. python vs. r,” J. data Sci. 15, 355–371 (2017).
4. P. T. Inc., “Collaborative data science,” (2015).
5. R. J. Noll, “Zernike polynomials and atmospheric turbulence,” JOsA 66, 207–211 (1976).

You might also like