Field Transformer

Overview

FieldTransformer applies geometric transformations (shift, rotation, anamorphosis, scaling) to the electromagnetic field (both phase and amplitude) of individual sources in an asterism. This is used to simulate super-resolution effects or model field-dependent aberrations in a Shack-Hartmann WFS.

Quick start

from OOPAO.FieldTransformer import FieldTransformer

ft = FieldTransformer(
    src            = ast,
    shift_x        = [0.5, -0.5, 0.0],   # sub-pixel shifts per GS [pixels]
    shift_y        = [0.0,  0.0, 0.5],
    rotation_angle = [0.0,  0.0, 0.0],
)

ast * atm * tel * ft * wfs

API reference

class OOPAO.FieldTransformer.FieldTransformer(src, shift_x=None, shift_y=None, rotation_angle=None, anamorphosisAngle=None, tangentialScaling=None, radialScaling=None, remove_edge_effects=True)[source]

Geometric EM field transformer for individual sources.

Parameters:
  • src (Source or Asterism) – Source or Asterism to transform.

  • shift_x (list[float] or None) – Per-source x shifts in pixels (sub-pixel shifts supported). Default None.

  • shift_y (list[float] or None) – Per-source y shifts in pixels. Default None.

  • rotation_angle (list[float] or None) – Per-source rotation angles in degrees. Default None.

  • anamorphosisAngle (list[float] or None) – Per-source anamorphosis angle in degrees. Default None.

  • tangentialScaling (list[float] or None) – Per-source tangential scaling factors. Default None.

  • radialScaling (list[float] or None) – Per-source radial scaling factors. Default None.

  • remove_edge_effects (bool) – If True, suppress edge artefacts near pupil borders after sub-pixel shifts. Default True.

Operator summary

Expression

Effect

ast * tel * ft * wfs

Apply per-source EM field transforms