
DOI: 10.7795/740.20260128 
resource type: simulation software, simulation data
title:	PTB_ISO_14999-4_KPI_Uncertainty_Tool

summary: The provided python software and Simulation data
"PTB_ISO_14999-4_Zernike_Surface_Tool" enables the simulation and/or fitting of surface topographies on circular or rectangular apertures.
The provided python software and Simulation data "PTB_ISO_14999-4_KPI_Uncertainty_Tool" enables the user to determine the expanded measurement uncertainties of characteristic ISO 14999-4 KPIs (PV, PV%, PVr, RMS) in dependence of specified input uncertainties for topography height uncertainty at each Pixel and lateral displacement uncertainty for a specified sample under test (SUT) topography.
The user is enabled to:
	-generate simulated custom topographies based on Zernike coefficients
	-fit custom measurement data provided in a specified format and use it as input data
	-receive the expanded measurement uncertainties of the ISO 14999-4 KPIs (PV, PV%, PVr, RMS) for the selected input data

The main executable files are:
	-"ISO_14999-4_KPI_Uncertainty_Tool.py"
	-"ISO_14999-4_Zernike_Tool_15_01_2026.py"
User data should be provided via the *.json files as explained in "Instruction for Input data.txt"

For more details about the specific folders and files contained in the package see section "Description of the individual files".


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

license:	CC-BY 4.0 International

keywords:    ISO 14999-4, Peak-to-valley, Robust Peak-to-valley, Root-mean-square, irregularity, interferometry, calibration, uncertainty

classification: OCIS 120.3180 Interferometry, OCIS 120.2830 Height measurements, OCIS 120.4800 Optical standards and testing, OCIS 120.6650   Surface measurements, figure

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

funder:

funding nr:

funding acknowledgement text:
	
link to projekt homepage: 

related objects:

recommended software for execution:
 The Software was tested with
-IDE Spyder 6.1.2 
-Visual Studio Code Version: 1.107.1
-Python 3.11.4
All software required to run the simulation is open access.
The python toolboxes required are: sys, os, numpy, matplotlib and json, which all may be installed using the "conda" package manager


Description of the individual files:
The subfolders contain:
-"PTB_ISO_14999-4_Zernike_Surface_Tool": To generate and fit topography data and check the implementation of Zernike polynomial fitting.
	-"Instruction for Input data.txt" File with explanation about how to use the software.
	-Executable python script "ISO_14999-4_Zernike_Tool_15_01_2026.py" 
	-Auxiliary python script "zernike_poly_xy_cartesian_V16012026.py" with functions used in "ISO_14999-4_Zernike_Tool_15_01_2026.py" to
	 perform the fitting.
	-"parameter_dict.json" a generic *.json file with an example of the data structure for user input, which is evaluated in
 	 "ISO_14999-4_Zernike_Tool_15_01_2026.py"
	 most of the relevant user modifications may be performed by changing parameters in the "parameter_dict.json"
	 as explained in "Instruction for Input data.txt".
	-Three *.json files "Example_Measurement_data_Masterball.json", "Example_Measurement_data_ZeissDK7417.json","Synthetic_Topodata_rectangle.json" with topography input data examples,
 	which may be replaced by custom topography data in the same format.


-"PTB_ISO_14999-4_KPI_Uncertainty_Tool": To generate and fit topography data, and evaluate ISO 14999-4 KPI uncertainties in specified scenarios.
	-"Instruction for Input data.txt" File with explanation about how to use the software.
	-Executable python script "ISO_14999-4_KPI_Uncertainty_Tool.py" 
	-Auxiliary python script "zernike_poly_xy_cartesian_V16012026.py" with functions used in "ISO_14999-4_KPI_Uncertainty_Tool.py" to
	 perform the fitting.
	-"parameter_dict.json" a generic *.json file with an example of the data structure for user input, which would be evaluated in
	 "ISO_14999-4_KPI_Uncertainty_Tool.py"
	 most of the relevant user modifications may be performed by changing parameters in the "parameter_dict.json"
	 as explained in "Instruction for Input data.txt".
	-Three *.json files "Example_Measurement_data_Masterball.json", "Example_Measurement_data_ZeissDK7417.json", "Synthetic_Topodata_rectangle.json" with topography input data
	 examples, which may be replaced by custom topography data in the same format.
	-6 Subfolders "results_*" containing graphical depictions of KPI uncertainties for reference and a "parameter_dict_***.json" file, which
	 may be used to repeat the specific experiment using "ISO_14999-4_KPI_Uncertainty_Tool.py".
	-1 "Nominal_KPIs" folder containing results for the nominal KPIs of the example topographies and "parameter_dict_***.json"
	 files to repeat the experiments using "ISO_14999-4_KPI_Uncertainty_Tool.py".



