61 lines
1.7 KiB
Python
Executable File
61 lines
1.7 KiB
Python
Executable File
from netCDF4 import Dataset
|
|
import numpy as np
|
|
import argparse
|
|
import matplotlib.pyplot as plt
|
|
|
|
# read argument
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("-f" , metavar='file_name' , help="names of input files" , type=str , nargs=1 , required=True )
|
|
parser.add_argument("-v" , metavar='var_name' , help="variable list" , type=str , nargs=1 , required=True )
|
|
args = parser.parse_args()
|
|
|
|
# read mesh mask
|
|
ncid = Dataset('mesh_mask.nc')
|
|
vx2d = ncid.variables['gphit' ][0,:,0].squeeze()
|
|
vx2dv = ncid.variables['gphiv' ][0,:,0].squeeze()
|
|
y2d = ncid.variables['gdepw_0'][0,:,:,1].squeeze()*-1
|
|
y2dt = ncid.variables['gdept_0'][0,:,:,1].squeeze()*-1
|
|
msk = ncid.variables['tmask' ][0,:,:,1].squeeze()
|
|
ncid.close()
|
|
|
|
# build x 2d array
|
|
x2d=y2d*0.0
|
|
x2dv=y2d*0.0
|
|
for jk in range(0,y2d.shape[0]):
|
|
x2d[jk,:]=vx2d[:]
|
|
x2dv[jk,:]=vx2d[:]
|
|
|
|
plt.figure(figsize=np.array([210,210]) / 25.4)
|
|
|
|
# read data and mask it
|
|
ncid = Dataset(args.f[0])
|
|
var2d = ncid.variables[args.v[0]][-1,:,:,:].squeeze()
|
|
var2dm = var2d[:,:]
|
|
var2dm[msk==0] = -1
|
|
ncid.close()
|
|
|
|
# define colorbar
|
|
vlevel=np.arange(0,0.13,0.01)
|
|
pcol = plt.contourf(x2d,y2d,var2dm,levels=vlevel)
|
|
plt.clf()
|
|
|
|
# plot contour
|
|
ax = plt.subplot(1, 1, 1)
|
|
ax.contour(x2dv,y2dt,var2dm,levels=vlevel)
|
|
ax.grid()
|
|
ax.set_title('MOC ISOMIP (Sv)')
|
|
ax.set_ylabel('Depth (m)',fontsize=14)
|
|
ax.set_xlabel('Latitude',fontsize=14)
|
|
|
|
# plot colorbar
|
|
plt.subplots_adjust(left=0.1,right=0.89, bottom=0.1, top=0.89, wspace=0.1, hspace=0.1)
|
|
cax = plt.axes([0.91, 0.1, 0.02, 0.79])
|
|
cbar= plt.colorbar(pcol, ticks=vlevel, cax=cax)
|
|
cbar.ax.tick_params(labelsize=14)
|
|
|
|
# save figure
|
|
plt.savefig('moc.png', format='png', dpi=300)
|
|
|
|
plt.show()
|
|
|