feat(V&V): Zernike pipeline validation - synthetic WFE generator + round-trip validator
- generate_synthetic_wfe.py: Creates synthetic OPD surfaces from known Zernike coefficients - validate_zernike_roundtrip.py: Round-trip validation (generate → fit → compare) - validation_suite/: 18 test cases (single mode, multi-mode, noisy, edge cases) - All 18 test cases pass with 0.000 nm error (clean) and <0.3 nm (10nm noise) - M1 params: 1200mm dia, 135.75mm inner radius, 50 Noll modes Project: P-Zernike-Validation (GigaBIT M1) Requested by: Adyn Miles (StarSpec) for risk reduction before M2/M3 ordering
This commit is contained in:
104
tools/validation_suite/many_modes_truth.json
Normal file
104
tools/validation_suite/many_modes_truth.json
Normal file
@@ -0,0 +1,104 @@
|
||||
{
|
||||
"input_coefficients": {
|
||||
"5": 20.0,
|
||||
"6": 16.666666666666668,
|
||||
"7": 14.285714285714286,
|
||||
"8": 12.5,
|
||||
"9": 11.11111111111111,
|
||||
"10": 10.0,
|
||||
"11": 9.090909090909092,
|
||||
"12": 8.333333333333334,
|
||||
"13": 7.6923076923076925,
|
||||
"14": 7.142857142857143,
|
||||
"15": 6.666666666666667,
|
||||
"16": 6.25,
|
||||
"17": 5.882352941176471,
|
||||
"18": 5.555555555555555,
|
||||
"19": 5.2631578947368425,
|
||||
"20": 5.0,
|
||||
"21": 4.761904761904762,
|
||||
"22": 4.545454545454546,
|
||||
"23": 4.3478260869565215,
|
||||
"24": 4.166666666666667,
|
||||
"25": 4.0,
|
||||
"26": 3.8461538461538463,
|
||||
"27": 3.7037037037037037,
|
||||
"28": 3.5714285714285716,
|
||||
"29": 3.4482758620689653,
|
||||
"30": 3.3333333333333335,
|
||||
"31": 3.225806451612903,
|
||||
"32": 3.125,
|
||||
"33": 3.0303030303030303,
|
||||
"34": 2.9411764705882355,
|
||||
"35": 2.857142857142857,
|
||||
"36": 2.7777777777777777,
|
||||
"37": 2.7027027027027026,
|
||||
"38": 2.6315789473684212,
|
||||
"39": 2.5641025641025643,
|
||||
"40": 2.5,
|
||||
"41": 2.4390243902439024,
|
||||
"42": 2.380952380952381,
|
||||
"43": 2.3255813953488373,
|
||||
"44": 2.272727272727273,
|
||||
"45": 2.2222222222222223,
|
||||
"46": 2.1739130434782608,
|
||||
"47": 2.127659574468085,
|
||||
"48": 2.0833333333333335,
|
||||
"49": 2.0408163265306123,
|
||||
"50": 2.0
|
||||
},
|
||||
"coefficient_names": {
|
||||
"5": "Astigmatism 45\u00b0",
|
||||
"6": "Astigmatism 0\u00b0",
|
||||
"7": "Coma X",
|
||||
"8": "Coma Y",
|
||||
"9": "Trefoil X",
|
||||
"10": "Trefoil Y",
|
||||
"11": "Primary Spherical",
|
||||
"12": "2nd Astig X",
|
||||
"13": "2nd Astig Y",
|
||||
"14": "Quadrafoil X",
|
||||
"15": "Quadrafoil Y",
|
||||
"16": "2nd Coma X",
|
||||
"17": "2nd Coma Y",
|
||||
"18": "2nd Trefoil X",
|
||||
"19": "2nd Trefoil Y",
|
||||
"20": "Pentafoil X",
|
||||
"21": "Pentafoil Y",
|
||||
"22": "2nd Spherical",
|
||||
"23": "Z(6,-2)",
|
||||
"24": "Z(6,+2)",
|
||||
"25": "Z(6,-4)",
|
||||
"26": "Z(6,+4)",
|
||||
"27": "Z(6,-6)",
|
||||
"28": "Z(6,+6)",
|
||||
"29": "Z(7,-1)",
|
||||
"30": "Z(7,+1)",
|
||||
"31": "Z(7,-3)",
|
||||
"32": "Z(7,+3)",
|
||||
"33": "Z(7,-5)",
|
||||
"34": "Z(7,+5)",
|
||||
"35": "Z(7,-7)",
|
||||
"36": "Z(7,+7)",
|
||||
"37": "Z(8,+0)",
|
||||
"38": "Z(8,-2)",
|
||||
"39": "Z(8,+2)",
|
||||
"40": "Z(8,-4)",
|
||||
"41": "Z(8,+4)",
|
||||
"42": "Z(8,-6)",
|
||||
"43": "Z(8,+6)",
|
||||
"44": "Z(8,-8)",
|
||||
"45": "Z(8,+8)",
|
||||
"46": "Z(9,-1)",
|
||||
"47": "Z(9,+1)",
|
||||
"48": "Z(9,-3)",
|
||||
"49": "Z(9,+3)",
|
||||
"50": "Z(9,-5)"
|
||||
},
|
||||
"n_points": 118572,
|
||||
"diameter_mm": 1200.0,
|
||||
"rms_nm_clean": 16.40426082558852,
|
||||
"rms_nm_with_noise": 16.40426082558852,
|
||||
"noise_rms_nm": 0.0,
|
||||
"seed": 42
|
||||
}
|
||||
Reference in New Issue
Block a user