fouriax.KSpaceComplexMask#

class KSpaceComplexMask(amplitude_map=1.0, phase_map_rad=0.0, aperture_diameter_um=None)#

Bases: OpticalLayer

k-space complex-valued modulation layer.

Parameters:
  • amplitude_map (Array | float)

  • phase_map_rad (Array | float)

  • aperture_diameter_um (float | None)

__init__(amplitude_map=1.0, phase_map_rad=0.0, aperture_diameter_um=None)#
Parameters:
  • amplitude_map (Array | float)

  • phase_map_rad (Array | float)

  • aperture_diameter_um (float | None)

Return type:

None

Methods

__init__([amplitude_map, phase_map_rad, ...])

forward(field)

Apply this layer's optical transformation to field.

parameters()

Return trainable or configurable layer parameters.

validate_for(field)

Check that field is compatible with this layer.

Attributes

amplitude_map: Array | float = 1.0#
phase_map_rad: Array | float = 0.0#
aperture_diameter_um: float | None = None#
forward(field)#

Apply this layer’s optical transformation to field.

Parameters:

field (Field) – Input optical field to transform.

Returns:

Transformed field. Subclasses should preserve batch axes, wavelength axes, and metadata unless the layer explicitly changes them.

Return type:

Field

parameters()#

Return trainable or configurable layer parameters.

Returns an empty dict by default. Subclasses override this to expose arrays that should be updated during optimisation.

Return type:

dict[str, Array]