SPRINT

Overview

SPRINT (System Parameter Recurrent INvasive Tracking) estimates DM–WFS mis-registration parameters from sensitivity matrices. It computes the gradient of the interaction matrix with respect to each mis-registration degree of freedom, then inverts the problem to identify the actual mis-registration from a measured interaction matrix.

The algorithm supports up to 6 degrees of freedom: shift X, shift Y, rotation, anamorphosis, radial scaling, and tangential scaling.

Quick start

from OOPAO.SPRINT import SPRINT

sprint = SPRINT(ao_obj, basis=Z)

# Estimate mis-registration
sprint.estimate(ao_obj.calib.D)
print(sprint.mis_registration_estimated)

API reference

class OOPAO.SPRINT.SPRINT(obj, basis, nameFolder=None, nameSystem=None, mis_registration_zero_point=None, wfs_mis_registered=None, fast_algorithm=False, n_mis_reg=3, recompute_sensitivity=False, dm_input=None, ind_mis_reg=None)[source]

DM/WFS mis-registration identification algorithm.

Parameters:
  • obj (object) – AO system object containing tel, dm, wfs, and calib.

  • basis (object) – Modal basis object with a modes attribute.

  • nameFolder (str or None) – Folder to save/load sensitivity matrices. Default None (uses param['pathInput']).

  • nameSystem (str or None) – System identifier for file naming. Default None.

  • mis_registration_zero_point (MisRegistration or None) – Reference MisRegistration. Default None (uses dm.misReg).

  • wfs_mis_registered (MisRegistration or None) – WFS-side mis-registration object. Default None.

  • fast_algorithm (bool) – Use the faster (less stable) algorithm variant. Default False.

  • n_mis_reg (int) – Number of mis-registration degrees of freedom to estimate. Default 3 (shiftX, shiftY, rotation).

  • recompute_sensitivity (bool) – Force recomputation of sensitivity matrices even if saved files exist. Default False.

  • ind_mis_reg (numpy.ndarray or None) – Indices of the mis-registration DOF to estimate. Default None (first n_mis_reg).

Key attributes

mis_registration_estimated: MisRegistration

Estimated mis-registration from the last estimate() call.

Methods

estimate(interaction_matrix)[source]

Estimate mis-registration parameters from a measured interaction matrix.

Parameters:

interaction_matrix (numpy.ndarray) – Measured interaction matrix.

Note

Tutorial: tutorials/how_to_SPRINT.py