u = v_axial * (-np.sin(theta))
    v = v_axial * np.cos(theta)
    return u, v


# Generate a velocity field
ugrid1, vgrid1 = lamb_oseen(gamma_px2frame, rr_px, xgrid, ygrid, cx, cy)
ugrid2, vgrid2 = lamb_oseen(-gamma_px2frame, rr_px, xgrid, ygrid, cx,
                            cy + dd_px)
ugrid, vgrid = ugrid1 + ugrid2, vgrid1 + vgrid2
udata = np.stack((ugrid1, vgrid1))
omega = vec.curl(udata)

fig1, ax11, cc11 = graph.color_plot(xgrid,
                                    ygrid,
                                    ugrid,
                                    fignum=1,
                                    subplot=121,
                                    figsize=(16, 8))
fig1, ax12, cc12 = graph.color_plot(xgrid,
                                    ygrid,
                                    vgrid,
                                    fignum=1,
                                    subplot=122,
                                    figsize=(16, 8))
fig2, ax2, cc2 = graph.color_plot(xgrid, ygrid, omega, fignum=2)
# print np.nansum(omega), gamma / np.nansum(omega)

graph.add_colorbar(cc11, ax=ax11, label=r'$U_x$ (px/frame)')
graph.add_colorbar(cc12, ax=ax12, label=r'$U_y$ (px/frame)')
graph.add_colorbar(cc2, ax=ax2, label=r'$\omega_z$ (1/frame)')
Example #2
0
# print y[0, 40:80]
# print x[60:, 0]

kernel3 = np.ones_like(x)
kernel3[xmin:xmax, ymin:ymax] = 0.7

xc, yc = 750., 520.,
sigma = 150.
kernel4 = 1 - A * np.exp(- (0.1*(x-xc)**2+(y-yc)**2) / (2. * sigma**2))



e_mod = np.empty_like(e)
for i in range(e.shape[2]):
    print data['x'].shape
    fig, ax, cc = graph.color_plot(data['y'][..., i], data['x'][..., i], e[..., i] / kernel[i], vmin=0, vmax=1*10**4)
    ax.invert_yaxis()
    graph.add_colorbar(cc, option='scientific')
    graph.title(ax, 'z=%.3f' % data['z'][0, 0, i])
    graph.save(dir + '/mod_deltadx_%s_-30/zm%03d' % (str(deltafx).replace('.', 'p'), i), ext='png')
    plt.close('all')

    if i < 100:
        fig, ax, cc = graph.color_plot(data['y'][..., i], data['x'][..., i], e[..., i] / kernel[i] * kernel4, vmin=0,
                                       vmax=10 * 10 ** 3)
        e_mod[..., i] = e[..., i] / kernel[i] * kernel4
    else:
        fig, ax, cc = graph.color_plot(data['y'][..., i], data['x'][..., i], e[..., i] / kernel[i], vmin=0,
                                       vmax=10 * 10 ** 3)
        e_mod[..., i] = e[..., i] / kernel[i]
mu_uy_gauss_int = griddata(np.array(zip(iws, disps)), np.array(gauss_peaks_uy), (iw_grid, disp_grid), method='nearest')
gamma_ux_int = griddata(np.array(zip(iws, disps)), np.array(gammas_ux), (iw_grid, disp_grid), method='nearest')
gamma_uy_int = griddata(np.array(zip(iws, disps)), np.array(gammas_uy), (iw_grid, disp_grid), method='nearest')
mu_ux_lorentz_int = griddata(np.array(zip(iws, disps)), np.array(lorentz_peaks_ux), (iw_grid, disp_grid), method='nearest')
mu_uy_lorentz_int = griddata(np.array(zip(iws, disps)), np.array(lorentz_peaks_uy), (iw_grid, disp_grid), method='nearest')

axes, ccs = [], []
data2plot = [mu_ux_gauss_int, sigma_ux_int, mu_uy_gauss_int, sigma_uy_int, mu_ux_lorentz_int, gamma_ux_int, mu_uy_lorentz_int, gamma_uy_int]
cmaps = [cmap, cmap2, cmap, cmap2, cmap, cmap2, cmap, cmap2]
vmins = [disp_min/2, 0, disp_min/2, 0, disp_min/2, 0, disp_min/2, 0]
vmaxs = [disp_max/2, disp_max*2, disp_max/2, disp_max*2, disp_max/2, disp_max*2, disp_max/2, disp_max*2]
titles = [r'$\mu_{\Delta x}$', r'$\sigma_{\Delta x}$', r'$\mu_{\Delta y}$', r'$\sigma_{\Delta y}$',
          '$\chi_{\Delta x}$', r'$\gamma_{\Delta x}$', r'$\chi_{\Delta y}$', r'$\gamma_{\Delta y}$']
xlabel, ylabel = r'Interrogation window size (px)', r'$\Delta x$ (px)'
for i, fitdata in enumerate(data2plot):
    fig2, ax2, cc2 = graph.color_plot(iw_grid, disp_grid, fitdata, vmin=vmins[i], vmax=vmaxs[i], fignum=2, subplot=241+i, cmap=cmaps[i])
    plt.scatter(iws, disps, color='m', s=4)
    axes.append(ax2)
    ccs.append(cc2)

def vel_upper_limit_func(iw, npass):
    iw_ini = iw * 2**(npass-1)
    return iw_ini/2

for ax, title, cc in zip(axes, titles, ccs):
    ax.plot(np.linspace(0, 80), vel_upper_limit_func(np.linspace(0, 80), 4), linestyle='--', color='r')
    ax.set_facecolor('k')
    graph.setaxes(ax, 0, 80, 0, 80)
    graph.add_colorbar(cc, ax=ax)
    graph.labelaxes(ax, xlabel, ylabel)
    graph.title(ax, title)
zdim, ydim, xdim, ncomps = fyle[vel_keys[0]].shape
# z-position of illuminated plane
zpos = (zdim + 1) / 2


x, y = np.arange(xdim), np.arange(ydim)
xgrid, ygrid = np.meshgrid(x, y)

for i in range(tdim):
    print '%d / %d' % (i+1, tdim)
    uz, uy, ux = fyle[vel_keys[i]][zpos, ..., 0], fyle[vel_keys[i]][zpos, ..., 1], fyle[vel_keys[i]][zpos, ..., 2] # unit length / unit time
    uz = uz / fx # px/unit time
    uy = uy / fx # px/unit time
    ux = ux / fx # px/unit time

    fig1, ax11, cc11 = graph.color_plot(x, y, ux, vmin=-vmax, vmax=vmax, cmap=cmap, subplot=131, figsize=(20, 6))
    fig1, ax12, cc12 = graph.color_plot(x, y, uy, vmin=-vmax, vmax=vmax, cmap=cmap, subplot=132, figsize=(20, 6))
    fig1, ax13, cc13 = graph.color_plot(x, y, uz, vmin=-vmax, vmax=vmax, cmap=cmap, subplot=133, figsize=(20, 6))
    axes = [ax11, ax12, ax13]
    ccs = [cc11, cc12, cc13]
    clabels = ['$u_x$ (px/unit time)', '$u_y$ (px/unit time)', '$u_z$ (px/unit time)']
    for ax, cc, clabel in zip(axes, ccs, clabels):
        graph.add_colorbar(cc, ax=ax, label=clabel)
        graph.labelaxes(ax, '$X$ (px)', '$Y$ (px)')
    graph.suptitle(r't= %.1f $ \tau_\eta$ = %.2f (unit time)' % (float(vel_keys[i][1:]) * dt / tau_eta, float(vel_keys[i][1:]) * dt), fignum=1)
    #
    fig2, ax2 = graph.pdf(ux, nbins=int(np.sqrt(ydim * xdim)), fignum=2, label='$u_x$ (px/unit time)')
    fig2, ax2 = graph.pdf(uy, nbins=int(np.sqrt(ydim * xdim)), fignum=2, label='$u_y$ (px/unit time)')
    fig2, ax2 = graph.pdf(uz, nbins=int(np.sqrt(ydim * xdim)), fignum=2, label='$u_z$ (px/unit time)')

    graph.setaxes(ax2, -vmax, vmax, -0.05/100., 0.006)
Example #5
0
            mag_str = fs.convert_float_to_decimalstr(mag)
            mag_str_2 = fs.convert_float_to_decimalstr(
                mag, zpad=4)  # for naming scheme

            # Plotting settings Part 2
            vmin, vmax = mag * 0, mag * 1.2

            # Load pivlab output
            pivdata = rw.read_hdf5(pivdatum_loc)
            xx, yy = pivdata['x'], pivdata['y']
            ux, uy = pivdata['ux'][..., 0], pivdata['uy'][..., 0]

            fig1, ax11, cc11 = graph.color_plot(xx,
                                                yy,
                                                ux,
                                                vmin=vmin,
                                                vmax=vmax,
                                                cmap=cmap2,
                                                fignum=1,
                                                subplot=231)
            fig1, ax14, cc14 = graph.color_plot(xx,
                                                yy,
                                                uy,
                                                vmin=-1,
                                                vmax=1,
                                                cmap=cmap,
                                                fignum=1,
                                                subplot=234)

            # Find an original velocity field data
            for fakedatum in fakedata:
                if mag_str in fakedatum:
setup_files = glob.glob(os.path.join(dir, '*.3dsetup'))

with h5py.File(args.f, 'r') as data:
    print data.keys()
    x, y, z = np.asarray(data['x']), np.asarray(data['y']), np.asarray(
        data['z'])
    ux, uy, uz = np.asarray(data['ux_avg']), np.asarray(
        data['uy_avg']), np.asarray(data['uz_avg'])
    energy = (ux**2 + uy**2 + uz**2) / 2.

    # manually correct data
    z1, z2 = 0, 25
    deltaz = 5.  # mm
    z[..., z1:z2] += deltaz

    graph.color_plot(x[..., 0], y[..., 0], energy[..., 90], vmin=0, vmax=0.4)
    graph.show()
    z1, z2 = 85, 102
    deltaz = -30.  # mm
    z[..., z1:z2] += deltaz

    pts = np.asarray(zip(x.ravel(), y.ravel(), z.ravel()))
    energy_ravelled = energy.ravel()  #np array

    # Make a KD tree
    # print len(data), len(pts), pts[0:10]
    print '... making a kd tree'
    tree = KDTree(pts, leafsize=10)
    print '... done'

    # Make coordinates
        uy = process.interpolate_using_mask(uy, mask_uy)
        uz = process.interpolate_using_mask(uz, mask_uz)

        # filter
        ux = filters.gaussian_filter(ux, [0.5, 0.5, 0])
        uy = filters.gaussian_filter(uy, [0.5, 0.5, 0])
        uz = filters.gaussian_filter(uz, [0.5, 0.5, 0])

        x, y, z = x / data_spacing, y / data_spacing, z / data_spacing
        e = (ux**2 + uy**2) / 2.

        for i in range(x.shape[2]):
            print i, np.min(z[..., i]), np.max(z[..., i]), np.mean(z[..., i])
            fig, ax, cc = graph.color_plot(x[..., i],
                                           y[..., i],
                                           e[..., i],
                                           cmap='plasma',
                                           vmin=vmin,
                                           vmax=vmax)
            graph.add_colorbar(
                cc,
                label=r'$\bar{E}_{2D}=\frac{1}{2}(\bar{U_x}^2)$',
                option='scientific')
            graph.labelaxes(ax, 'X (px)', 'Y (px)')
            graph.title(ax, '<z>=%.2f px' % np.mean(z[..., i]))
            fig.tight_layout()
            filename = '/time_avg_energy_raw_%s/zm%03d' % (args.mode, i)
            graph.save(args.dir + filename,
                       ext='png',
                       close=True,
                       verbose=True)
Example #8
0
    # graph.add_colorbar(cc84, label=r'$\Delta \gamma$ (px/unit time)', aspect=None)
    #
    # fig8, ax85, cc85 = graph.color_plot(grid_deltat, grid_ux, r2_data, cmap=cmap, aspect=None, fignum=8, subplot=235, figsize=(25, 10), vmin=0, vmax=1)
    # graph.add_colorbar(cc85, label=r'$R^2$', aspect=None)
    #
    # axes = [ax81, ax82, ax83, ax84, ax85]
    # for ax in axes:
    #     graph.labelaxes(ax, r'$\Delta t$ (a.u.)', r'$U_x^{true}$ (px/unit time)')
    #     ax.set_facecolor('k')
    # fig8.tight_layout()

    fig8, ax81, cc81 = graph.color_plot(grid_deltat,
                                        grid_ux,
                                        chi_data,
                                        cmap=cmap2,
                                        aspect=None,
                                        fignum=8,
                                        subplot=121,
                                        vmin=-100,
                                        vmax=100)
    # graph.add_colorbar(cc81, label=r'$\chi / |U_x^{true}|$', aspect=None)
    graph.add_colorbar(cc81, label=r'$\chi$ (px/unit time)', aspect=None)

    fig8, ax82, cc82 = graph.color_plot(grid_deltat,
                                        grid_ux,
                                        gamma_data,
                                        cmap='plasma',
                                        aspect=None,
                                        fignum=8,
                                        subplot=122,
                                        vmin=0.0,
Example #9
0
import h5py
import numpy as np
import matplotlib.pyplot as plt
import library.display.graph as graph

griddata_path = '/Volumes/bigraid/takumi/turbulence/3dprintedbox/multilayerPIV_Dp57mm_Do12p8mm/2018_11_04/PIV_W8_step2_data/sample/3dinterpolated_data_200x200x200_center_linear.h5'
resultdir = '/Volumes/bigraid/takumi/turbulence/3dprintedbox/multilayerPIV_Dp57mm_Do12p8mm/2018_11_04/PIV_W8_step2_data/sample/results_linear/'
with h5py.File(griddata_path, 'r') as data:
    uxdata = np.asarray(data['ux'])
    uydata = np.asarray(data['uy'])
    energy = (uxdata**2 + uydata**2) / 2. * 10**-6  # m^2/s^2
    xx, yy, zz = np.asarray(data['x']), np.asarray(data['y']), np.asarray(
        data['z'])
    for i in range(uxdata.shape[2]):
        fig, ax, cc = graph.color_plot(xx[..., 0],
                                       yy[..., 0],
                                       energy[..., i, 0],
                                       cmap='plasma',
                                       vmin=0,
                                       vmax=0.06)
        graph.add_colorbar(cc, ax=ax)
        fig.tight_layout()
        graph.save(resultdir + 'im%04d' % i, ext='png')
        # graph.save(resultdir + 'pdf/im%04d' % i, ext='pdf')
        plt.close('all')
data = rw.read_hdf5(fkp)
xx, yy = data['x'], data['y']
ux0, uy0 = data['ux'], data['uy']




# Coarse-grain data
nrows_sub, ncolumns_sub = args.iw, args.iw # number of pixels to average over
xx_coarse = fa.coarse_grain_2darr_overwrap(xx, nrows_sub, ncolumns_sub, overwrap=0.5)
yy_coarse = fa.coarse_grain_2darr_overwrap(yy, nrows_sub, ncolumns_sub, overwrap=0.5)
ux0_coarse = fa.coarse_grain_2darr_overwrap(ux0, nrows_sub, ncolumns_sub, overwrap=0.5)
uy0_coarse = fa.coarse_grain_2darr_overwrap(uy0, nrows_sub, ncolumns_sub, overwrap=0.5)

fig1, ax11, cc11 = graph.color_plot(xx, yy, ux0, cmap=cmap, vmin=-2, vmax=2,  fignum=1, subplot=221)
fig1, ax12, cc12 = graph.color_plot(xx_coarse, yy_coarse, ux0_coarse, cmap=cmap, vmin=-2, vmax=2,  fignum=1, subplot=222)
fig1, ax13, cc13 = graph.color_plot(xx, yy, uy0, cmap=cmap, vmin=-2, vmax=2,  fignum=1, subplot=223)
fig1, ax14, cc14 = graph.color_plot(xx_coarse, yy_coarse, uy0_coarse, cmap=cmap, vmin=-2, vmax=2,  fignum=1, subplot=224, figsize=(18, 14))
axes1 = [ax11, ax12, ax13, ax14]
ccs1 = [cc11, cc12, cc13, cc14]
titles1 = ['Original $U_x$', 'Coarse-grained $U_x$', 'Original $U_y$', 'Coarse-grained $U_y$']
for ax, cc, title in zip(axes1, ccs1, titles1):
    graph.add_colorbar(cc, ax=ax, ticklabelsize=10)
    graph.title(ax, title)
    # graph.setaxes(ax, 0, 2*np.pi, 0, 2*np.pi)
    graph.labelaxes(ax, '$X$ (a.u.)', '$Y$ (a.u.)')
    if cmap == 'RdBu':
        ax.set_facecolor('k')
graph.suptitle('Fake data')
filename = 'fake_data_vel_fields_%s' %cmap
Example #11
0
                                            nrows_sub,
                                            ncolumns_sub,
                                            overwrap=0.5)
uy0_coarse = fa.coarse_grain_2darr_overwrap(uy0,
                                            nrows_sub,
                                            ncolumns_sub,
                                            overwrap=0.5)
uz0_coarse = fa.coarse_grain_2darr_overwrap(uz0,
                                            nrows_sub,
                                            ncolumns_sub,
                                            overwrap=0.5)

fig1, ax11, cc11 = graph.color_plot(xx,
                                    yy,
                                    ux0,
                                    cmap=cmap,
                                    vmin=-2,
                                    vmax=2,
                                    fignum=1,
                                    subplot=221)
fig1, ax12, cc12 = graph.color_plot(xx_coarse,
                                    yy_coarse,
                                    ux0_coarse,
                                    cmap=cmap,
                                    vmin=-2,
                                    vmax=2,
                                    fignum=1,
                                    subplot=222)
fig1, ax13, cc13 = graph.color_plot(xx_coarse,
                                    yy_coarse,
                                    uy0_coarse,
                                    cmap=cmap,
        nrows_sub, ncolumns_sub = iw, iw # number of pixels to average over
        xx_coarse = fa.coarse_grain_2darr_overwrap(xx, nrows_sub, ncolumns_sub, overwrap=0.5)
        yy_coarse = fa.coarse_grain_2darr_overwrap(yy, nrows_sub, ncolumns_sub, overwrap=0.5)
        ux_mean_coarse = fa.coarse_grain_2darr_overwrap(ux_mean, nrows_sub, ncolumns_sub, overwrap=0.5)
        uy_mean_coarse = fa.coarse_grain_2darr_overwrap(uy_mean, nrows_sub, ncolumns_sub, overwrap=0.5)
        ux_center_coarse = fa.coarse_grain_2darr_overwrap(ux_center, nrows_sub, ncolumns_sub, overwrap=0.5)
        uy_center_coarse = fa.coarse_grain_2darr_overwrap(uy_center, nrows_sub, ncolumns_sub, overwrap=0.5)

        # pivlab outputs
        ux_pivlab, uy_pivlab = np.array(piv_data['ux']), np.array(piv_data['uy']) # px / frame
        xx_pivlab, yy_pivlab = np.array(piv_data['x']), np.array(piv_data['y'])

        # PLOTTING
        # Fig 1: Comparison between PIVLab outputs and a field from JHTD at the center of the illuminated plane
        # PIVLab Outputs
        fig1, ax11, cc11 = graph.color_plot(xx_pivlab, yy_pivlab, ux_pivlab[..., t], cmap=cmap, vmin=vmin, vmax=vmax, fignum=1, subplot=331)
        fig1, ax14, cc14 = graph.color_plot(xx_pivlab, yy_pivlab, uy_pivlab[..., t], cmap=cmap, vmin=vmin, vmax=vmax, fignum=1, subplot=334)
        # Fields from JHTD
        fig1, ax12, cc12 = graph.color_plot(xx_coarse, yy_coarse, ux_center_coarse, cmap=cmap, vmin=vmin, vmax=vmax, fignum=1, subplot=332)
        fig1, ax15, cc15 = graph.color_plot(xx_coarse, yy_coarse, uy_center_coarse, cmap=cmap, vmin=vmin, vmax=vmax, fignum=1, subplot=335)
        # Difference (error)
        fig1, ax13, cc13 = graph.color_plot(xx_coarse, yy_coarse, ux_pivlab[..., t] - ux_center_coarse, cmap=cmap, vmin=vmin, vmax=vmax, fignum=1, subplot=333)
        fig1, ax16, cc16 = graph.color_plot(xx_coarse, yy_coarse, uy_pivlab[..., t] - uy_center_coarse, cmap=cmap, vmin=vmin, vmax=vmax, fignum=1, subplot=336)
        # PDF
        nbins = int(np.sqrt(ux_center_coarse.shape[0] * ux_center_coarse.shape[1]))
        fig1, ax17 = graph.pdf(ux_pivlab[..., t], nbins=nbins, fignum=1, subplot=337, label=r'$U_x$')
        fig1, ax17 = graph.pdf(uy_pivlab[..., t], nbins=nbins, fignum=1, subplot=337, label=r'$U_y$')
        fig1, ax18 = graph.pdf(ux_center_coarse, nbins=nbins,  fignum=1, subplot=338, label=r'$U_x$')
        fig1, ax18 = graph.pdf(uy_center_coarse, nbins=nbins,  fignum=1, subplot=338, label=r'$U_y$')
        fig1, ax19 = graph.pdf(ux_pivlab[..., t] - ux_center_coarse, nbins=nbins,  fignum=1, subplot=339, label=r'$\Delta U_x$')
        fig1, ax19 = graph.pdf(uy_pivlab[..., t] - uy_center_coarse, nbins=nbins,  fignum=1, subplot=339, label=r'$\Delta U_y$')