pado.optical_element.Aperture

class Aperture(dim, pitch, aperture_diameter, aperture_shape, wvl, device='cpu', polar='non')[source]

Aperture optical element for amplitude modulation.

Implement square or circular aperture that modulate light amplitude. Support both polarized and non-polarized light.

Parameters:
__init__(dim, pitch, aperture_diameter, aperture_shape, wvl, device='cpu', polar='non')[source]

Create aperture optical element instance.

Parameters:
  • dim (tuple) – Field dimensions (B, 1, R, C) for batch, channels, rows, cols

  • pitch (float) – Pixel pitch in meters

  • aperture_diameter (float) – Diameter of aperture in meters

  • aperture_shape (str) – Shape of aperture (‘square’ or ‘circle’)

  • wvl (float) – Wavelength in meters

  • device (str) – Device for computation (‘cpu’, ‘cuda:0’, etc.)

  • polar (str) – Polarization mode (‘non’, ‘x’, ‘y’, ‘xy’)

Examples

>>> aperture = Aperture(dim=(1,1,1024,1024), pitch=6.4e-6,
...                    aperture_diameter=1e-3, aperture_shape='circle',
...                    wvl=633e-9)
set_square()[source]

Set square aperture amplitude modulation.

Create square aperture mask centered on optical axis. :rtype: None

Examples

>>> aperture.set_square()
Return type:

None

set_circle(cx=0, cy=0, dia=None)[source]

Set circular aperture amplitude modulation.

Create circular aperture mask with optional offset and diameter.

Parameters:
  • cx (float) – Center x-offset in pixels

  • cy (float) – Center y-offset in pixels

  • dia (float, optional) – Circle diameter in meters

Return type:

None

Examples

>>> aperture.set_circle()  # Centered circle
>>> aperture.set_circle(cx=10, cy=-10, dia=2e-3)  # Offset circle