def compare_plot(fname_base): try: NA = float(re.findall("NA_(.*?)_", os.path.basename(fname_base))[0]) print("NA = ", NA) dx = float(re.findall("dx_(.*?)_", os.path.basename(fname_base))[0]) print("dx = ", dx) n0 = float(re.findall("n0_(.*?)_", os.path.basename(fname_base))[0]) print("n0 = ", n0) except Exception as e: print(e) print("could not parse %s " % fname_base) gt_xy = imread(fname_base + "xy.tif")[:-1, :-1] gt_xy *= 1. / np.amax(gt_xy) gt_xz = imread(fname_base + "xz.tif")[:-1, :-1] gt_xz *= 1. / np.amax(gt_xz) Ny, Nx = gt_xy.shape Nz, _ = gt_xz.shape x = dx * (np.arange(Nx) - Nx // 2) z = dx * (np.arange(Nz) - Nz // 2) u = focus_field_beam((Nx, Ny, Nz), (dx, ) * 3, NA=NA, n0=n0) u *= 1. / np.amax(u) # psf width _p = gt_xy[Ny // 2].copy() _p *= 1. / np.sum(_p) / dx sigma_x = 2. * np.sqrt(dx * np.sum(x**2 * _p) - dx * np.sum(x * _p)**2) _p = gt_xz[:, Nz // 2].copy() _p *= 1. / np.sum(_p) / dx sigma_z = 2. * np.sqrt(dx * np.sum(x**2 * _p) - dx * np.sum(x * _p)**2) print(sigma_x, sigma_z) plt.cla() plt.plot(x, gt_xy[Ny // 2], color="C0", label="x - psflab") plt.plot(x, u[Nz // 2, Ny // 2], ".:", color="C0", label="x - biobeam") plt.plot(z, gt_xz[:, Nx // 2], color="C1", ls=":", label="z - psflab") plt.plot(z, u[:, Ny // 2, Nx // 2], ".:", color="C1", label="z - biobeam") plt.title("NA = %s, n0 = %s\nsig_x = %.2f , sig_z = %.2f " % (NA, n0, sigma_x, sigma_z)) plt.legend(prop={'size': 8}) return gt_xy, gt_xz, u
def test_focus(shape = (256,)*3, units = (.1,)*3, NA = .3, n0 = 1.): """ propagates a focused wave freely to the center """ Nx, Ny, Nz = shape dx, dy , dz = .1, .1, .1 lam = .5 _,u_debye, _, _ = focus_field_beam(shape, units, n0= n0, lam=lam, NA=NA, return_all_fields=True) u0 = u_debye[0] m = Bpm3d(shape = shape, units = units, lam = lam, n0 = n0) u = m.propagate(u0) #u = m.propagate(m.u0_beam(NA = NA)) return u, u_debye
def test_bessel(): u = focus_field_beam((128,) * 3, (.1,) * 3, lam=.5, n0=1.33, NA=(.7,.75))
def test_gaussian(): u = focus_field_beam((128,)*3,(.1,)*3,lam = .5, n0 = 1.33, NA = .7)
from biobeam import focus_field_beam u = focus_field_beam(shape = (128,128,512), units = (0.1,0.1,.01), NA = 0.6, n0 = 1.33)
""" [email protected] """ from __future__ import print_function, unicode_literals, absolute_import, division from biobeam import focus_field_beam # e.g. psf of a bessel beam with # annulus 0.4<rho<0.45 in a volume field = focus_field_beam(shape = (256,256,256),\ units = (0.1,0.1, 0.1),NA = 0.4)
def test_gaussian(): u = focus_field_beam((128, ) * 3, (.1, ) * 3, lam=.5, n0=1.33, NA=.7)
def test_bessel(): u = focus_field_beam((128, ) * 3, (.1, ) * 3, lam=.5, n0=1.33, NA=(.7, .75))