import matplotlib.pyplot as plt
import netCDF4 as nc
import numpy as np
import os
import glob
import datetime as dt
import subprocess
%matplotlib inline
#for yr in ('15','16','17'): # years
yr='17'
fjan=glob.glob('/results/SalishSea/nowcast-green/*jan'+yr+'/SalishSea_1d*_grid_T.nc')
ffeb=glob.glob('/results/SalishSea/nowcast-green/*feb'+yr+'/SalishSea_1d*_grid_T.nc')
fmar=glob.glob('/results/SalishSea/nowcast-green/*mar'+yr+'/SalishSea_1d*_grid_T.nc')
fapr=glob.glob('/results/SalishSea/nowcast-green/*apr'+yr+'/SalishSea_1d*_grid_T.nc')
fmay=glob.glob('/results/SalishSea/nowcast-green/*may'+yr+'/SalishSea_1d*_grid_T.nc')
fjun=glob.glob('/results/SalishSea/nowcast-green/*jun'+yr+'/SalishSea_1d*_grid_T.nc')
fjul=glob.glob('/results/SalishSea/nowcast-green/*jul'+yr+'/SalishSea_1d*_grid_T.nc')
faug=glob.glob('/results/SalishSea/nowcast-green/*aug'+yr+'/SalishSea_1d*_grid_T.nc')
fsep=glob.glob('/results/SalishSea/nowcast-green/*sep'+yr+'/SalishSea_1d*_grid_T.nc')
foct=glob.glob('/results/SalishSea/nowcast-green/*oct'+yr+'/SalishSea_1d*_grid_T.nc')
fnov=glob.glob('/results/SalishSea/nowcast-green/*nov'+yr+'/SalishSea_1d*_grid_T.nc')
fdec=glob.glob('/results/SalishSea/nowcast-green/*dec'+yr+'/SalishSea_1d*_grid_T.nc')
fJFM=fjan+ffeb+fmar
fAMJ=fapr+fmay+fjun
fJAS=fjul+faug+fsep
fOND=foct+fnov+fdec
# index 21 is 28.229916 m
foutJFM='/data/vdo/MEOPAR/for-devin/meanJFM_0-30m_20'+yr+'.nc'
%time subprocess.check_output('ncra -v votemper,vosaline -d deptht,,21,1 '+' '.join(fJFM)+' '+foutJFM,shell=True)
CPU times: user 0 ns, sys: 8 ms, total: 8 ms Wall time: 1min 39s
b''
# index 21 is 28.229916 m
foutAMJ='/data/vdo/MEOPAR/for-devin/meanAMJ_0-30m_20'+yr+'.nc'
%time subprocess.check_output('ncra -v votemper,vosaline -d deptht,,21,1 '+' '.join(fAMJ)+' '+foutAMJ,shell=True)
CPU times: user 12 ms, sys: 16 ms, total: 28 ms Wall time: 9min 53s
b''
# index 21 is 28.229916 m
foutJAS='/data/vdo/MEOPAR/for-devin/meanJAS_0-30m_20'+yr+'.nc'
%time subprocess.check_output('ncra -v votemper,vosaline -d deptht,,21,1 '+' '.join(fJAS)+' '+foutJAS,shell=True)
CPU times: user 32 ms, sys: 8 ms, total: 40 ms Wall time: 14min 23s
b''
# index 21 is 28.229916 m
foutOND='/data/vdo/MEOPAR/for-devin/meanOND_0-30m_20'+yr+'.nc'
%time subprocess.check_output('ncra -v votemper,vosaline -d deptht,,21,1 '+' '.join(fOND)+' '+foutOND,shell=True)
CPU times: user 28 ms, sys: 8 ms, total: 36 ms Wall time: 13min 14s
b''
fout='/data/vdo/MEOPAR/for-devin/seasonal-30_20'+yr+'.nc'
flist=foutJFM+' '+foutAMJ+' '+foutJAS+' '+foutOND
%time subprocess.check_output('ncrcat '+flist+' '+fout,shell=True)
CPU times: user 0 ns, sys: 8 ms, total: 8 ms Wall time: 8.53 s
b''
f=nc.Dataset(fout)
f.variables.keys()
odict_keys(['bounds_lat', 'bounds_lon', 'deptht', 'deptht_bounds', 'nav_lat', 'nav_lon', 'time_centered', 'time_centered_bounds', 'time_counter', 'time_counter_bounds', 'vosaline', 'votemper'])
f.variables['deptht'][-1]
28.229916
[dt.datetime(1900,1,1)+dt.timedelta(seconds=ii) for ii in f.variables['time_centered']]
[datetime.datetime(2017, 2, 15, 0, 0), datetime.datetime(2017, 5, 16, 12, 0), datetime.datetime(2017, 8, 16, 0, 0), datetime.datetime(2017, 11, 16, 0, 0)]
fig,ax=plt.subplots(1,4,figsize=(8,3))
ax[0].pcolormesh(f.variables['vosaline'][0,0,:,:])
ax[0].set_title('JFM Salinity')
ax[1].pcolormesh(f.variables['vosaline'][1,0,:,:])
ax[1].set_title('AMJ Salinity')
ax[2].pcolormesh(f.variables['vosaline'][2,0,:,:])
ax[2].set_title('JAS Salinity')
ax[3].pcolormesh(f.variables['vosaline'][3,0,:,:])
ax[3].set_title('OND Salinity')
<matplotlib.text.Text at 0x7f0cb0baa048>
f.close()