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)')
# 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)
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)
# 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,
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
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$')