10.11. DXF at XZ frame
DXF can be loaded in XZ frame. This can be performed in different ways:
Loading data from x, z parameters
Loading data from a variable
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>
[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
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>
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>
[ ]: