Title: Simulation data for "Compensation of higher order rotationally symmetric Zernike coefficients caused by the defocusing of spherical sections"
Authors: Schake, Markus, Physikalisch-Technische Bundesanstalt (PTB), Fachbereich 4.2 Bild- und Wellenoptik, ORCID: 0000-0002-9883-3494
Contributors: HostingInstitution: Physikalisch-Technische Bundesanstalt (PTB), ISNI: 0000 0001 2186 1887
Language:en
DOI:10.7795/710.20240403
Resource Type: Dataset / Simulation Data
Publisher: Physikalisch-Technische Bundesanstalt (PTB)
Rights: https://creativecommons.org/licenses/by/4.0/
CC-BY 4.0 International
Dates: Available: 2024-04-04
Classifications: OCIS 120.3180 Interferometry ; OCIS 120.2830 Height measurements ; OCIS 120.4800 Optical standards and testing ; OCIS 220.3630 Lenses
File: Download File (application/zip) 2.97 MB (3117688 Bytes)
MD5 Checksum: 5b2ca8a2241ee73d93f809a13b3c9a25
SHA256 Checksum: 602453c245883e2047537c82bbf6ca3101996e0d283b2d98b1f9bdda146b1178
Keywords sphericity ; lenses ; interferometry ; calibration
Abstract: The provided data enables the immediate replication of the results presented in "Compensation of higher order rotationally symmetric Zernike coefficients caused by the defocusing of spherical sections" at the DGAO 2024. The data is structured with respect to the figures presented in the proceeding.
Remark: recommended software for reading:
The simulation data has been created on a personal computer with the Spider IDE 5.5.3 using "conda" as the package manager and Python 3.11.4 64-bit | Qt 5.15.6 | PyQt5 5.15.7 | Windows 10.
All software required to generate/evaluate the data is open access.
The toolboxes required are: os, IPython, numpy, matplotlib and json, which all may be installed using the "conda" package manager

description of the individual files:

The main folder "Sphere_Simulator_DGAO2024" contains:
- Sphere_Simulator_DGAO2024.py -> Executable file to generate and visualize the simulated data
- zernike_poly_xy_cartesian.py -> Supplementary python script wich contains functions for calculating the Zernike coefficients in a cartesian coordinate system
- data_dict_processed_sphere.json -> File with simulated topography data in python dictionary form as described above.
- data_dict_sphere.json -> File with simulated topography data in python dictionary form as described above.

The executable python script "Sphere_Simulator_DGAO2024.py" on execution will generate a series of defocused spherical section topographies, as specified in the script
in the section "### Start of custom Parameters ###."
Here the user may specify the following parameters:
curvatureradius = 100 #mm
freeaperture = 120 #mm
Naperture = 200 #Number of samples in the x or y direction
offsetvector = np.array( [-500, -250, 0.0, 250, 500] ) * 10**(-6) #Defocus in mm
#The Fringe Zernike set with 36 coefficients is employed
n_zi = [0, 1, 1, 2, 2, 2, 3, 3, 4, 3, 3, 4, 4, 5, 5, 6, 4, 4, 5, 5, 6, 6, 7, 7, 8, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10]
m_zi = [0, 1,-1, 0, 2,-2, 1,-1, 0, 3,-3, 2,-2, 1,-1, 0, 4,-4, 3,-3, 2,-2, 1,-1, 0, 5,-5, 4,-4, 3,-3, 2,-2, 1,-1, 0]

#Zernike coefficients in mm
P_custom = np.array( [0,0,0,0,1.0,0,3.0,4.0,5.0,0,0,0,0,0,0,-5.0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ) * 10**(-6)

By using the default values above and executing the script, it is possible to compare the results with full context to those presented in the article.

The simulation data is saved within two *.json files: "data_dict_sphere.json" and "data_dict_processed_sphere.json".
These each contain a dictionary with the simulated data as follows:

For "data_dict_sphere.json" the dictionary keys are:

data_dict = { "Topography": (Contains the complete topography),
"Topography_diff": (Contains the topography after compensation of the spherical part),
"x-axis": (Aperture coordinates in x-direction),
"y_axis": (Aperture coordinates in y-direction),
"defocus": (The specified series of displacements from the focus position),
"P_Zernike": (The 36 coefficient polynom describing the sphericity),
"curvatureradius": (The radius of curvature of the sample under test),
"freeaperture": (Diameter of the free aperture of the sample under test)
}

For "data_dict_processed_sphere.json" the dictionary keys are:

data_dict = { "Topography_processed": (Contains the complete topography retrieved from the focus series with corrections of ZFR8 and ZFR15),
"x-axis": (Aperture coordinates in x-direction),
"y_axis": (Aperture coordinates in y-direction)
}