In [1]:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
import xarray as xr
In [2]:
d = xr.open_dataset('beta_data_linear_h1000_longx.nc')
In [3]:
d.coords['time'] = d.time / 86400
d
Out[3]:
In [4]:
d.phi.isel(time=0).plot()
# plt.xlim(-.3e7, .3e7)
# plt.ylim(-.3e7, .3e7)
Out[4]:
In [6]:
clrs = iter(plt.cm.copper(np.linspace(0, 1, len(d.alpha))))
for a in d.alpha:
plt.plot(d.x, d.sel(alpha=a, beta=100).isel(time=-1).phi_xi.sum('y'), color=next(clrs))
In [9]:
C = np.sqrt(300)
clrs = iter(plt.cm.copper(np.linspace(0, 1, len(d.beta))))
for b in d.beta:
plt.plot(d.alpha*np.sqrt(300), d.x.isel(x=d.phi_xi.sel(time=24).sel(beta=b).sum('y').argmax('x'))/1e3, label='$\\beta=%d$' % b, c=next(clrs), marker='x')
plt.vlines([C, -C], -10000, 10000, color='gray', linestyle='-')
plt.text(C, 3000, '$\sqrt{gH}$',horizontalalignment='center', verticalalignment='center',
bbox=dict(facecolor='white', edgecolor='none', pad=2.0))
plt.text(-C, -2000, '$-\sqrt{gH}$',horizontalalignment='center', verticalalignment='center',
bbox=dict(facecolor='white', edgecolor='none', pad=2.0))
plt.ylim(-4000, 4000)
plt.xlabel(r'$\lambda_0$ velocity / $\mathrm{m.s^{-1}}$')
plt.ylabel('Phase Curve offset $(\lambda^* - \lambda_0)$ / km E')
plt.legend(title='$\\beta \\times 10^{-14} \mathrm{s^{-1}}$', bbox_to_anchor=(1.4,1), frameon=False)
#plt.savefig('beta_plane_offset.pdf', bbox_inches='tight')
Out[9]:
In [26]:
d.phi_xi.isel(time=-1).sel(beta=300, alpha=0).plot.contourf(subplot_kws={'aspect':'equal'})
Out[26]:
In [13]:
clrs = iter(plt.cm.copper(np.linspace(0, 1, len(d.alpha))))
for a in [2]:
d.phi_xi.isel(time=-1).sel(beta=100, alpha=a).sum('y').plot(c=next(clrs))
In [7]:
def normalise(data, dim=None):
dmax = data.max(dim)
dmin = data.min(dim)
return (data - dmin) / (dmax - dmin)
d.phi_xi.isel(time=-1).pipe(normalise, dim=('x', 'y')).plot.contourf(col='alpha', row='beta', levels=13)
Out[7]:
In [8]:
d.phi_xi.sel(beta=100, alpha=-.5).plot.contourf(levels=25, col='time', col_wrap=5, subplot_kws={'aspect':'equal'}, cmap=plt.cm.viridis)
Out[8]:
In [61]:
d.u.isel(time=-1, xb=-1).sel(beta=100, alpha=0).plot()
Out[61]:
In [28]:
for a in d.alpha:
for b in d.beta:
(d.phi_xi.sel(alpha=a, beta=b).diff('time')**2).sum(('x', 'y')).plot()
In [32]:
(d.phi_xi.sel(alpha=1, beta=1).diff('time')**2).sum(('x', 'y')).plot()
(d.phi_eq_xi.sel(alpha=1, beta=1).diff('time')**2).sum(('x', 'y')).plot()
Out[32]:
In [46]:
d = xr.open_dataset('beta_data_linear_h300.nc')
In [47]:
d.phi_xi.isel(alpha=0, beta=0).plot.contourf(x='x', y='y', col='time', subplot_kws={'aspect': 'equal'}, levels=13)
Out[47]:
In [43]:
d.time
Out[43]:
In [ ]: