Kernel: Python 3 (system-wide)
In [3]:
import os, csv import numpy as np import matplotlib.pyplot as plt from scipy import signal plt.style.use('../jfm.mplstyle') data_file = "../Experimental_Dataset/with_flow/5cm_water_depth/acoustic_doplar_velocimiter/adv_data.txt" headers = open(data_file).readline()[len('# '):] data = np.loadtxt(data_file) def loc_from_header(header): ''' find location data from header ''' x_part, y_part, z_part, u_part = header.split('_') # from string to integer mm x_int = int(x_part[len('x='):-len('mm')]) y_int = int(y_part[len('y='):-len('mm')]) z_int = int(z_part[len('z='):-len('mm')]) # u_part already correct return x_int, y_int, z_int, u_part time = data[:,0] data_dict = {} # skip time for col, header in enumerate(headers.split()[1:]): col +=1 # need to start at 1 x_int, y_int, z_int, u_part = loc_from_header(header) try: data_dict[f"{x_int},{y_int},{z_int}"][u_part] = data[:,col].copy() except KeyError: data_dict[f"{x_int},{y_int},{z_int}"] = {} data_dict[f"{x_int},{y_int},{z_int}"][u_part] = data[:,col].copy() header_parts = [ loc_from_header(header) for header in headers.split()[1:] ] x_y_pairs = set([ f"{x_int},{y_int}" for x_int,y_int,_, _ in header_parts ]) print(x_y_pairs) z_vals = set([ z_int for _, _,z_int, _ in header_parts ]) print(z_vals) u_vals = set([ u_part for _, _, _,u_part in header_parts ]) print(u_vals) x_parts = [ loc.split(',')[0] for loc in sorted(x_y_pairs) ] y_parts = [ loc.split(',')[1] for loc in sorted(x_y_pairs) ] x = np.array([int(xp) for xp in x_parts],dtype=int) y = np.array([int(yp) for yp in y_parts],dtype=int) #print(x,y) #print(x.shape) h, g, b = 50, 9810, 230 c = np.sqrt(g*h)
Out[3]:
{'1000,0', '-500,0', '0,0', '500,0', '-1000,114', '-50,0', '-1000,0', '-1500,0', '-50,114', '-500,114', '-2000,0'}
{32, 19, 7}
{'w', 'v', 'u'}
In [4]:
loc = '-50,114' fig, axes = plt.subplots(figsize=(3,1.5)) for z_val in z_vals: c = np.sqrt(9810*50) u = np.nanmean(data_dict[f'{loc},{z_val}']['u'].copy()) v = np.nanmean(data_dict[f'{loc},{z_val}']['v'].copy()) plt.quiver(-50/h,114/h,u/c,v/c, units='xy',angles='xy',scale_units='xy',scale=0.01, label=fr'$z={z_val/50:.2f}$') plt.hlines( 115/h,xmin=5,xmax=0,color='k') plt.hlines(-115/h,xmin=5,xmax=0,color='k') #plt.hlines(5.65,xmin=-10,xmax=0,color='k') plt.vlines( 0,ymin=115/h,ymax=300/h,color='k') plt.vlines( 0,ymin=-115/h,ymax=-300/h,color='k') plt.axis('equal') plt.ylim(1,3) plt.xlim(-2,0.1) plt.xlabel(r'$x$') plt.ylabel(r'$y$') plt.legend([fr'$z={z_val/50:.2f}$' for z_val in z_vals],loc='lower right') #plt.tight_layout() plt.savefig('Fig_26_c.pdf') plt.show() plt.close()
Out[4]: