示例#1
0
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
示例#2
0
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
示例#3
0
def test_bessel():
    u = focus_field_beam((128,) * 3, (.1,) * 3, lam=.5, n0=1.33, NA=(.7,.75))
示例#4
0
def test_gaussian():
    u = focus_field_beam((128,)*3,(.1,)*3,lam = .5, n0 = 1.33, NA = .7)
示例#5
0
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)




示例#6
0
"""

[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)
示例#7
0
def test_gaussian():
    u = focus_field_beam((128, ) * 3, (.1, ) * 3, lam=.5, n0=1.33, NA=.7)
示例#8
0
def test_bessel():
    u = focus_field_beam((128, ) * 3, (.1, ) * 3,
                         lam=.5,
                         n0=1.33,
                         NA=(.7, .75))