def symmetry_pdq_iec(profile: SingleProfile): """Symmetry calculation by way of PDQ IEC""" values = profile.field_values(field_width=0.8) lt_edge, rt_edge = profile.field_edges(field_width=0.8) max_val = 0 sym_array = [] for lt_pt, rt_pt in zip(values, values[::-1]): val = max(abs(lt_pt / rt_pt), abs(rt_pt / lt_pt)) sym_array.append(val) if val > max_val: max_val = val symmetry = 100 * max_val return symmetry, sym_array, lt_edge, rt_edge
def symmetry_point_difference(profile: SingleProfile): """Calculation of symmetry by way of point difference equidistant from the CAX""" values = profile.field_values(field_width=0.8) lt_edge, rt_edge = profile.field_edges(field_width=0.8) cax = profile.fwxm_center() dcax = profile.values[cax] max_val = 0 sym_array = [] for lt_pt, rt_pt in zip(values, values[::-1]): val = 100 * abs(lt_pt - rt_pt) / dcax sym_array.append(val) if val > max_val: max_val = val symmetry = max_val return symmetry, sym_array, lt_edge, rt_edge