fouriax.Field#

class Field(data, grid, spectrum, polarization_mode='scalar', domain='spatial', kx_pixel_size_cyc_per_um=None, ky_pixel_size_cyc_per_um=None)#

Bases: object

Complex optical field over a 2D grid for one or more wavelengths.

Parameters:
  • data (Array)

  • grid (Grid)

  • spectrum (Spectrum)

  • polarization_mode (Literal['scalar', 'jones'])

  • domain (Literal['spatial', 'kspace'])

  • kx_pixel_size_cyc_per_um (float | None)

  • ky_pixel_size_cyc_per_um (float | None)

__init__(data, grid, spectrum, polarization_mode='scalar', domain='spatial', kx_pixel_size_cyc_per_um=None, ky_pixel_size_cyc_per_um=None)#
Parameters:
  • data (Array)

  • grid (Grid)

  • spectrum (Spectrum)

  • polarization_mode (Literal['scalar', 'jones'])

  • domain (Literal['spatial', 'kspace'])

  • kx_pixel_size_cyc_per_um (float | None)

  • ky_pixel_size_cyc_per_um (float | None)

Return type:

None

Methods

__init__(data, grid, spectrum[, ...])

apply_amplitude(mask)

apply_phase(phase_map)

component_intensity()

intensity()

normalize_power([target, eps])

phase()

plane_wave(grid, spectrum[, amplitude, ...])

plane_wave_jones(grid, spectrum[, ex, ey, dtype])

power()

to_intensity()

to_kspace()

to_spatial()

validate()

zeros(grid, spectrum[, dtype])

Attributes

data: Array#
grid: Grid#
spectrum: Spectrum#
polarization_mode: Literal['scalar', 'jones'] = 'scalar'#
domain: Literal['spatial', 'kspace'] = 'spatial'#
kx_pixel_size_cyc_per_um: float | None = None#
ky_pixel_size_cyc_per_um: float | None = None#
classmethod zeros(grid, spectrum, dtype=<class 'jax.numpy.complex64'>)#
Parameters:
Return type:

Field

classmethod plane_wave(grid, spectrum, amplitude=1.0, phase=0.0, dtype=<class 'jax.numpy.complex64'>)#
Parameters:
  • grid (Grid)

  • spectrum (Spectrum)

  • amplitude (float | Array)

  • phase (float | Array)

Return type:

Field

classmethod plane_wave_jones(grid, spectrum, ex=(1+0j), ey=0j, dtype=<class 'jax.numpy.complex64'>)#
Parameters:
  • grid (Grid)

  • spectrum (Spectrum)

  • ex (complex | Array)

  • ey (complex | Array)

Return type:

Field

property is_jones: bool#
property batch_shape: tuple[int, ...]#
property has_batch: bool#
property num_polarization_channels: int#
component_intensity()#
Return type:

Array

intensity()#
Return type:

Array

to_intensity()#
Return type:

Intensity

phase()#
Return type:

Array

power()#
Return type:

Array

normalize_power(target=1.0, eps=1e-12)#
Parameters:
  • target (float)

  • eps (float)

Return type:

Field

apply_phase(phase_map)#
Parameters:

phase_map (Array | float)

Return type:

Field

apply_amplitude(mask)#
Parameters:

mask (Array | float)

Return type:

Field

to_kspace()#
Return type:

Field

to_spatial()#
Return type:

Field

property spatial_pixel_size_um: tuple[float, float]#
property kspace_pixel_size_cyc_per_um: tuple[float, float]#
validate()#
Return type:

None