
DOI:            10.7795/710.20240403
resource type:  simulation data
title:          Simulation data for "Compensation of higher order rotationally symmetric Zernike coefficients caused by the defocusing of spherical sections"

summary:
    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.

creators:       Markus Schake https://orcid.org/0000-0002-9883-3494, Physikalisch-Technische Bundesanstalt, Bundesallee 100, 38116 Braunschweig, OE 4.21

license:        CC-BY 4.0 International

keywords:       sphericity, lenses, interferometry, calibration

classification: OCIS 120.3180 Interferometry, OCIS 120.2830 Height measurements, OCIS 120.4800 Optical standards and testing, OCIS 220.3630 Lenses

project title:  This work is not associated with a funded project

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)
                }
