10.11. DXF at XZ frame

DXF can be loaded in XZ frame. This can be performed in different ways:

  1. Loading data from x, z parameters

  2. Loading data from a variable

  3. Loading size from the .dxf file

In the 2. and 3. cases, number of pixels are required.

10.11.1. Modules

[1]:
from diffractio import np, plt
from diffractio import um, mm, degrees

from diffractio.scalar_masks_XZ import Scalar_mask_XZ
from diffractio.scalar_sources_X import Scalar_source_X

10.11.2. Loading data from x, z parameters

[2]:
x = np.linspace(-.150*mm, .150*mm, 256)
z = np.linspace(0*mm, 1*mm, 512)
wavelength = 5*um

filename_dxf = './hatch_polyline2.dxf'
[3]:
u0 = Scalar_source_X(x=x, wavelength=wavelength)
u0.plane_wave()
[4]:
t0 = Scalar_mask_XZ(x,z,wavelength)
t0.dxf(filename_dxf, n_max=2, n_min=1, invert=False, verbose=False)
t0.draw_refractive_index(scale='scaled', colorbar_kind='horizontal')
<Figure size 512x256 with 0 Axes>
../../_images/source_functioning_dxf_XZ_6_1.png
[5]:
print(t0)

Scalar_mask_XZ
 - x:  (256,),   z:  (512,),   u:  (512, 256)
 - xmin:       -150.00 um,  xmax:      150.00 um,  Dx:   1.18 um
 - zmin:       0.00 um,  zmax:      1000.00 um,  Dz:   1.96 um
 - Imin:       0.00,     Imax:      0.00
 - phase_min:  0.00 deg, phase_max: 0.00 deg
 - wavelength: 5.00 um
 - date:       2024-04-02_20_05_00
 - info:

[6]:
t0.incident_field(u0)
t0.WPM(verbose=True, has_edges=False)
t0.draw(scale='scaled',draw_borders=True, logarithm=1e0)
Time = 0.23 s, time/loop = 0.4534 ms
../../_images/source_functioning_dxf_XZ_8_1.png

10.11.3. Loading data from a variable

[7]:
t0 = Scalar_mask_XZ(x=None, z=None, wavelength=wavelength)
t0.dxf(filename_dxf, n_max=2, n_min=1,  num_pixels=(512, 256),
       extent=[-500*um, 500*um, 0, 2000*um], units='um', invert=False, verbose=False)
t0.draw_refractive_index(scale='scaled', colorbar_kind='vertical')
<Figure size 512x256 with 0 Axes>
../../_images/source_functioning_dxf_XZ_10_1.png

10.11.4. Loading data from .dxf size

[10]:
t0 = Scalar_mask_XZ(x=None, z=None, wavelength=wavelength)
t0.dxf(filename_dxf, n_max=2.5, n_min=1,  num_pixels=(512, 256),
       units='um', invert=False, verbose=False)
t0.draw_refractive_index(scale='scaled', colorbar_kind='vertical')
<Figure size 512x256 with 0 Axes>
../../_images/source_functioning_dxf_XZ_12_1.png
[ ]: