def get_shock_position(d): if (d['pres'].max() - d['pres'].min()) / d['pres'].mean() < 0.2: return np.nan else: idx = np.nanargmin( savgol(d['x'], d['pres'], window_size=5, order=2, deriv=1)) return d['x'][idx]
def get_shock_position(d): if (d['pres'].max() - d['pres'].min())/d['pres'].mean() < 0.2: return np.nan else: idx = np.nanargmin(savgol( d['x'], d['pres'], window_size=5, order=2, deriv=1)) return d['x'][idx]
#t,x = np.array(storage.values()).T state0 = [] state1 = [] for val0, val1 in storage.values(): state0.append(val0) state1.append(val1) df0 = pd.DataFrame(state0) df1 = pd.DataFrame(state1) fig = plt.figure(figsize=(20,4)) ax = [plt.subplot(1,4,idx+1) for idx in range(4)] for dfi in [df0,df1]: dfi['u_s'] = savgol(np.array(dfi['t']), np.array(dfi['x']), window_size=5, order=2, deriv=1)*1e4 ax[0].plot(df0['t'],df0['u_s'], '--o') ax[1].plot(df0['t'],df0['dens'], '--o') ax[2].plot(df0['t'],df0['tele'], '--o') ax[3].plot(df0['t'],df0['pres'], '--o') idx_st = np.nanargmax(df0['x']) for df_idx, df in enumerate([df0, df1]): for key in ['tele', 'tion', 'trad', 'pres', 'pele', 'pion', 'velx', 'dens']: res['{}_{}'.format(key, df_idx)] = np.array(df[key])[idx_st-4] mask = slice(idx_st-17,idx_st-7) res['u_s'] = np.median(np.array(df0['u_s'])[mask]) ax[0].plot(df0['t'][mask],df0['u_s'][mask], 'ro') if not os.path.exists('yt-viz/out/{0}'.format(EOS_TABLE)): os.mkdir('yt-viz/out/{0}'.format(EOS_TABLE))
state0 = [] state1 = [] for val0, val1 in storage.values(): state0.append(val0) state1.append(val1) df0 = pd.DataFrame(state0) df1 = pd.DataFrame(state1) fig = plt.figure(figsize=(20, 4)) ax = [plt.subplot(1, 4, idx + 1) for idx in range(4)] for dfi in [df0, df1]: dfi['u_s'] = savgol(np.array(dfi['t']), np.array(dfi['x']), window_size=5, order=2, deriv=1) * 1e4 ax[0].plot(df0['t'], df0['u_s'], '--o') ax[1].plot(df0['t'], df0['dens'], '--o') ax[2].plot(df0['t'], df0['tele'], '--o') ax[3].plot(df0['t'], df0['pres'], '--o') idx_st = np.nanargmax(df0['x']) for df_idx, df in enumerate([df0, df1]): for key in [ 'tele', 'tion', 'trad', 'pres', 'pele', 'pion', 'velx', 'dens' ]: res['{}_{}'.format(key, df_idx)] = np.array(df[key])[idx_st - 4] mask = slice(idx_st - 17, idx_st - 7) res['u_s'] = np.median(np.array(df0['u_s'])[mask])