Comparing different values for surface mixing parameters.
import numpy as np
import netCDF4 as nc
import matplotlib.pyplot as plt
from salishsea_tools import (nc_tools, viz_tools, gsw_calls)
import numpy.ma as ma
from matplotlib import animation, rc
%matplotlib inline
rc('animation', html='html5')
bathy = nc.Dataset('/data/vdo/MEOPAR/NEMO-forcing/grid/bathymetry_201702.nc')
mesh_mask = nc.Dataset('/data/vdo/MEOPAR/NEMO-forcing/grid/mesh_mask201702.nc')
oct19hindcast = nc.Dataset('/results/SalishSea/hindcast/19oct14/SalishSea_1h_20141019_20141019_grid_T.nc')
oct28hindcast = nc.Dataset('/results/SalishSea/hindcast/28oct14/SalishSea_1h_20141028_20141028_grid_T.nc')
oct19test1 = nc.Dataset('/ocean/sallen/allen/research/MEOPAR/myResults/surface_wave_mixing/SalishSea_1h_20141019_20141028_grid_T_20141019-20141019.nc')
oct28test1 = nc.Dataset('/ocean/sallen/allen/research/MEOPAR/myResults/surface_wave_mixing/SalishSea_1h_20141019_20141028_grid_T_20141028-20141028.nc')
oct28test2 = nc.Dataset('/ocean/vdo/MEOPAR/completed-runs/surface_mixing1/SalishSea_1h_20141019_20141028_grid_T_20141028-20141028.nc')
fig, ax = plt.subplots(1,3,figsize=(10,10))
sal0 = ax[0].pcolormesh(ma.masked_array(oct28hindcast.variables['vosaline'][23,0,...],
mask = 1-mesh_mask.variables['tmask'][0,0,...]))
sal1 = ax[1].pcolormesh(ma.masked_array(oct28test1.variables['vosaline'][23,0,...],
mask = 1-mesh_mask.variables['tmask'][0,0,...]))
fig.tight_layout()
sal2 = ax[2].pcolormesh(ma.masked_array(oct28test2.variables['vosaline'][23,0,...],
mask = 1-mesh_mask.variables['tmask'][0,0,...]))
fig.colorbar(sal2, ax=ax[2])
ax[0].set_title('Hindcast surface salinity')
ax[1].set_title('Test1 surface salinity')
ax[2].set_title('Test2 surface salinity')
<matplotlib.text.Text at 0x7f114b565a58>
fig, ax = plt.subplots(1,3,figsize=(10,10))
sal0 = ax[0].pcolormesh(ma.masked_array(oct28hindcast.variables['votemper'][23,0,...],
mask = 1-mesh_mask.variables['tmask'][0,0,...]))
sal1 = ax[1].pcolormesh(ma.masked_array(oct28test1.variables['votemper'][23,0,...],
mask = 1-mesh_mask.variables['tmask'][0,0,...]))
fig.tight_layout()
sal2 = ax[2].pcolormesh(ma.masked_array(oct28test2.variables['votemper'][23,0,...],
mask = 1-mesh_mask.variables['tmask'][0,0,...]))
fig.colorbar(sal2, ax=ax[2])
ax[0].set_title('Hindcast surface temperature')
ax[1].set_title('Test1 surface temperature')
ax[2].set_title('Test2 surface temperature')
<matplotlib.text.Text at 0x7f114b0acd68>
uhindcast = nc.Dataset('/results/SalishSea/hindcast/28oct14/SalishSea_1h_20141028_20141028_grid_U.nc')
utest1 = nc.Dataset('/ocean/sallen/allen/research/MEOPAR/myResults/surface_wave_mixing/SalishSea_1h_20141019_20141028_grid_U_20141028-20141028.nc')
utest2 = nc.Dataset('/ocean/vdo/MEOPAR/completed-runs/surface_mixing1/SalishSea_1h_20141019_20141028_grid_U_20141028-20141028.nc')
fig, ax = plt.subplots(1,3,figsize=(10,10))
sal0 = ax[0].pcolormesh(ma.masked_array(oct28hindcast.variables['vosaline'][23,0,...]
- oct28test1.variables['vosaline'][23,0,...],
mask = 1-mesh_mask.variables['tmask'][0,0,...]),
vmin=-12,vmax=12)
sal1 = ax[1].pcolormesh(ma.masked_array(oct28test1.variables['vosaline'][23,0,...]
-oct28test2.variables['vosaline'][23,0,...],
mask = 1-mesh_mask.variables['tmask'][0,0,...]),
vmin=-12,vmax=12)
sal2 = ax[2].pcolormesh(ma.masked_array(-oct28test2.variables['vosaline'][23,0,...]
+oct28hindcast.variables['vosaline'][23,0,...],
mask = 1-mesh_mask.variables['tmask'][0,0,...]),
vmin=-12,vmax=12)
fig.colorbar(sal2, ax=ax[2])
ax[0].set_title('Hindcast - Test1')
ax[1].set_title('Test1 - Test2')
ax[2].set_title('Hindcast - Test2')
fig.suptitle('Surface Salinity', fontsize=(15))
<matplotlib.text.Text at 0x7f114ac4eb00>
fig, ax = plt.subplots(1,3,figsize=(20,10))
sal0 = ax[0].pcolormesh(ma.masked_array(oct28hindcast.variables['vosaline'][23,:,:,300]
- oct28test1.variables['vosaline'][23,:,:,300],
mask = 1-mesh_mask.variables['tmask'][0,:,:,300]),
vmin=-12,vmax=12)
sal1 = ax[1].pcolormesh(ma.masked_array(oct28test1.variables['vosaline'][23,:,:,300]
-oct28test2.variables['vosaline'][23,:,:,300],
mask = 1-mesh_mask.variables['tmask'][0,:,:,300]),
vmin=-12,vmax=12)
sal2 = ax[2].pcolormesh(ma.masked_array(-oct28test2.variables['vosaline'][23,:,:,300]
+oct28hindcast.variables['vosaline'][23,:,:,300],
mask = 1-mesh_mask.variables['tmask'][0,:,:,300]),
vmin=-12,vmax=12)
fig.colorbar(sal2, ax=ax[2])
ax[0].set_title('Hindcast - Test1')
ax[1].set_title('Test1 - Test2')
ax[2].set_title('Hindcast - Test2')
fig.suptitle('X = 300', fontsize=(15))
for ax in ax:
ax.set_ylim(10,0)
ax.set_xlim(320,500)
fig, ax = plt.subplots(1,3,figsize=(10,10))
sal0 = ax[0].pcolormesh(ma.masked_array(oct28hindcast.variables['vosaline'][23,4,...]
- oct28test1.variables['vosaline'][23,4,...],
mask = 1-mesh_mask.variables['tmask'][0,4,...]),
vmin=-5,vmax=5)
sal1 = ax[1].pcolormesh(ma.masked_array(oct28test1.variables['vosaline'][23,4,...]
-oct28test2.variables['vosaline'][23,4,...],
mask = 1-mesh_mask.variables['tmask'][0,4,...]),
vmin=-5,vmax=5)
sal2 = ax[2].pcolormesh(ma.masked_array(-oct28test2.variables['vosaline'][23,4,...]
+oct28hindcast.variables['vosaline'][23,4,...],
mask = 1-mesh_mask.variables['tmask'][0,4,...]),
vmin=-5,vmax=5)
fig.colorbar(sal2, ax=ax[2])
ax[0].set_title('Hindcast - Test1')
ax[1].set_title('Test1 - Test2')
ax[2].set_title('Hindcast - Test2')
fig.suptitle('Salinity at depth level 4', fontsize=15)
<matplotlib.text.Text at 0x7f114a7d69e8>
fig, ax = plt.subplots(1,3,figsize=(10,10))
sal0 = ax[0].pcolormesh(ma.masked_array(oct28hindcast.variables['votemper'][23,0,...]
- oct28test1.variables['votemper'][23,0,...],
mask = 1-mesh_mask.variables['tmask'][0,0,...]),
vmin=-1.2, vmax=1.2, cmap = 'rainbow')
sal1 = ax[1].pcolormesh(ma.masked_array(oct28test1.variables['votemper'][23,0,...]
-oct28test2.variables['votemper'][23,0,...],
mask = 1-mesh_mask.variables['tmask'][0,0,...]),
vmin=-1.2,vmax= 1.2, cmap = 'rainbow')
sal2 = ax[2].pcolormesh(ma.masked_array(-oct28test2.variables['votemper'][23,0,...]
+oct28hindcast.variables['votemper'][23,0,...],
mask = 1-mesh_mask.variables['tmask'][0,0,...]),
vmin=-1.2, vmax=1.2, cmap = 'rainbow')
fig.colorbar(sal2, ax=ax[2])
ax[0].set_title('Hindcast - Test1')
ax[1].set_title('Test1 - Test2')
ax[2].set_title('Hindcast - Test2')
fig.suptitle('Surface Temperature', fontsize=15)
<matplotlib.text.Text at 0x7f114a5b3ac8>
fig, ax = plt.subplots(1,3,figsize=(10,10))
sal0 = ax[0].pcolormesh(ma.masked_array(oct28hindcast.variables['votemper'][23,4,...]
- oct28test1.variables['votemper'][23,4,...],
mask = 1-mesh_mask.variables['tmask'][0,4,...]),
vmin=-1,vmax= 1, cmap = 'rainbow')
sal1 = ax[1].pcolormesh(ma.masked_array(oct28test1.variables['votemper'][23,4,...]
-oct28test2.variables['votemper'][23,4,...],
mask = 1-mesh_mask.variables['tmask'][0,4,...]),
vmin=-1,vmax= 1, cmap = 'rainbow'
)
sal2 = ax[2].pcolormesh(ma.masked_array(-oct28test2.variables['votemper'][23,4,...]
+oct28hindcast.variables['votemper'][23,4,...],
mask = 1-mesh_mask.variables['tmask'][0,4,...]),
vmin=-1,vmax= 1, cmap = 'rainbow'
)
fig.colorbar(sal2, ax=ax[2])
ax[0].set_title('Hindcast - Test1')
ax[1].set_title('Test1 - Test2')
ax[2].set_title('Hindcast - Test2')
fig.suptitle('Temperature at depth level 4', fontsize=15)
<matplotlib.text.Text at 0x7f114a39c128>
fig, ax = plt.subplots(1,3,figsize=(10,10))
sal0 = ax[0].pcolormesh(ma.masked_array(uhindcast.variables['vozocrtx'][23,4,...]
- utest1.variables['vozocrtx'][23,4,...],
mask = 1-mesh_mask.variables['umask'][0,4,...]),
vmin=-0.5,vmax= 0.5, cmap = 'plasma'
)
sal1 = ax[1].pcolormesh(ma.masked_array(utest1.variables['vozocrtx'][23,4,...]
-utest2.variables['vozocrtx'][23,4,...],
mask = 1-mesh_mask.variables['umask'][0,4,...]),
vmin=-0.5,vmax= 0.5, cmap='plasma'
)
sal2 = ax[2].pcolormesh(ma.masked_array(-utest2.variables['vozocrtx'][23,4,...]
+uhindcast.variables['vozocrtx'][23,4,...],
mask = 1-mesh_mask.variables['umask'][0,4,...]),
vmin=-0.5,vmax= 0.5, cmap='plasma'
)
fig.colorbar(sal2, ax=ax[2])
ax[0].set_title('Hindcast - Test1')
ax[1].set_title('Test1 - Test2')
ax[2].set_title('Hindcast - Test2')
fig.suptitle('U Velocity at depth level 4', fontsize=15)
<matplotlib.text.Text at 0x7f11499dbbe0>
fig, ax = plt.subplots(1,3,figsize=(10,10))
sal0 = ax[0].pcolormesh(ma.masked_array(uhindcast.variables['vozocrtx'][23,0,...]
- utest1.variables['vozocrtx'][23,0,...],
mask = 1-mesh_mask.variables['umask'][0,0,...]),
vmin=-0.5, vmax=0.5, cmap = 'winter'
)
sal1 = ax[1].pcolormesh(ma.masked_array(utest1.variables['vozocrtx'][23,0,...]
-utest2.variables['vozocrtx'][23,0,...],
mask = 1-mesh_mask.variables['umask'][0,0,...]),
vmin=-0.5,vmax= 0.5, cmap = 'winter'
)
sal2 = ax[2].pcolormesh(ma.masked_array(-utest2.variables['vozocrtx'][23,0,...]
+uhindcast.variables['vozocrtx'][23,0,...],
mask = 1-mesh_mask.variables['umask'][0,0,...]),
vmin=-0.5, vmax=0.5, cmap = 'winter'
)
fig.colorbar(sal2, ax=ax[2])
ax[0].set_title('Hindcast - Test1')
ax[1].set_title('Test1 - Test2')
ax[2].set_title('Hindcast - Test2')
fig.suptitle('Surface U Velocity', fontsize=15)
<matplotlib.text.Text at 0x7f11491db278>
whindcast = nc.Dataset('/results/SalishSea/hindcast/28oct14/SalishSea_1h_20141028_20141028_grid_W.nc')
wtest1 = nc.Dataset('/ocean/sallen/allen/research/MEOPAR/myResults/surface_wave_mixing/SalishSea_1h_20141019_20141028_grid_W_20141028-20141028.nc')
wtest2 = nc.Dataset('/ocean/vdo/MEOPAR/completed-runs/surface_mixing1/SalishSea_1h_20141019_20141028_grid_W_20141028-20141028.nc')
vhindcast = nc.Dataset('/results/SalishSea/hindcast/28oct14/SalishSea_1h_20141028_20141028_grid_V.nc')
vtest1 = nc.Dataset('/ocean/sallen/allen/research/MEOPAR/myResults/surface_wave_mixing/SalishSea_1h_20141019_20141028_grid_V_20141028-20141028.nc')
vtest2 = nc.Dataset('/ocean/vdo/MEOPAR/completed-runs/surface_mixing1/SalishSea_1h_20141019_20141028_grid_V_20141028-20141028.nc')
fig, ax = plt.subplots(figsize=(14,14))
ax.pcolormesh(bathy.variables['Bathymetry'][:])
ax.plot(250,450, 'r*')
viz_tools.set_aspect(ax)
1.1363636363636362
depth = oct19hindcast.variables['deptht'][:]
fig, ax = plt.subplots(figsize=(10,10))
ax.plot( oct28hindcast.variables['vosaline'][23,:,450,250], depth, label='hindcast')
ax.plot(oct28test1.variables['vosaline'][23,:,450,250], depth, label = 'Test1')
ax.plot(oct28test2.variables['vosaline'][23, :, 450,250], depth, label = 'Test2')
ax.grid('on')
ax.legend()
ax.set_ylim(50,0)
plt.xlim(29,31)
ax.set_title('Salinity')
<matplotlib.text.Text at 0x7f6cfb714668>
fig, ax = plt.subplots(figsize=(10,10))
ax.plot( oct28hindcast.variables['votemper'][23,:,450,250], depth, label='hindcast')
ax.plot(oct28test1.variables['votemper'][23,:,450,250], depth, label = 'Test1')
ax.plot(oct28test2.variables['votemper'][23, :, 450,250], depth, label = 'Test2')
ax.grid('on')
ax.legend()
ax.set_ylim(70,0)
plt.xlim(9.5,11)
ax.set_title('Temperature')
<matplotlib.text.Text at 0x7f6cfb583eb8>
fig, ax = plt.subplots(figsize=(10,10))
ax.plot( uhindcast.variables['vozocrtx'][23,:,450,250], depth, label='hindcast')
ax.plot(utest1.variables['vozocrtx'][23,:,450,250], depth, label = 'Test1')
ax.plot(utest2.variables['vozocrtx'][23, :, 450,250], depth, label = 'Test2')
ax.grid('on')
ax.legend()
ax.set_ylim(250,0)
plt.xlim(-0.15,0.25)
ax.set_title('U Velocity')
<matplotlib.text.Text at 0x7f6cfa382eb8>
fig, ax = plt.subplots(figsize=(10,10))
ax.plot( vhindcast.variables['vomecrty'][23,:,450,250], depth, label='hindcast')
ax.plot(vtest1.variables['vomecrty'][23,:,450,250], depth, label = 'Test1')
ax.plot(vtest2.variables['vomecrty'][23, :, 450,250], depth, label = 'Test2')
ax.grid('on')
ax.legend()
ax.set_ylim(250,0)
ax.set_title('V Velocity')
<matplotlib.text.Text at 0x7f6cfa5e50f0>
fig, ax = plt.subplots(figsize=(14,14))
ax.pcolormesh(bathy.variables['Bathymetry'][:])
ax.plot(275,450, 'r*')
viz_tools.set_aspect(ax)
1.1363636363636362
fig, ax = plt.subplots(figsize=(10,10))
ax.plot( oct28hindcast.variables['vosaline'][23,:,450,275], depth, label='hindcast')
ax.plot(oct28test1.variables['vosaline'][23,:,450,275], depth, label = 'Test1')
ax.plot(oct28test2.variables['vosaline'][23, :, 450,275], depth, label = 'Test2')
ax.grid('on')
ax.legend()
ax.set_ylim(50,0)
plt.xlim(27,31)
ax.set_title('Salinity')
<matplotlib.text.Text at 0x7f6cfa2790b8>
fig, ax = plt.subplots(figsize=(10,10))
ax.plot( oct28hindcast.variables['votemper'][23,:,450,275], depth, label='hindcast')
ax.plot(oct28test1.variables['votemper'][23,:,450,275], depth, label = 'Test1')
ax.plot(oct28test2.variables['votemper'][23, :, 450,275], depth, label = 'Test2')
ax.grid('on')
ax.legend()
ax.set_ylim(50,0)
plt.xlim(9.5,12)
ax.set_title('Temperature')
<matplotlib.text.Text at 0x7f6cfa0e3f28>
fig, ax = plt.subplots(figsize=(10,10))
ax.plot( uhindcast.variables['vozocrtx'][23,:,450,275], depth, label='hindcast')
ax.plot(utest1.variables['vozocrtx'][23,:,450,275], depth, label = 'Test1')
ax.plot(utest2.variables['vozocrtx'][23, :, 450,275], depth, label = 'Test2')
ax.grid('on')
ax.legend()
ax.set_ylim(350,0)
#plt.xlim(-0.1,0.25)
ax.set_title('U Velocity')
<matplotlib.text.Text at 0x7f6cfa893a20>
fig, ax = plt.subplots(figsize=(10,10))
ax.plot( vhindcast.variables['vomecrty'][23,:,450,275], depth, label='hindcast')
ax.plot(vtest1.variables['vomecrty'][23,:,450,275], depth, label = 'Test1')
ax.plot(vtest2.variables['vomecrty'][23, :, 450,275], depth, label = 'Test2')
ax.grid('on')
ax.legend()
ax.set_ylim(350,0)
ax.set_title('V Velocity')
<matplotlib.text.Text at 0x7f6cfa77b4e0>