Skip to content
Snippets Groups Projects
plot_mlt.py 1.42 KiB
Newer Older
Guillaume Samson's avatar
Guillaume Samson committed
from netCDF4 import Dataset
import numpy as np
from numpy import ma
import argparse
import matplotlib.pyplot as plt
import matplotlib

parser = argparse.ArgumentParser()
parser.add_argument("-f" , metavar='file_name'   , help="names of input files" , type=str  , nargs="+", 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')
lat2d  = ncid.variables['gphit'    ][  :,:].squeeze()
lon2d  = ncid.variables['glamt'    ][  :,:].squeeze()
msk    = ncid.variables['tmaskutil'][0,:,:].squeeze()
ncid.close()

plt.figure(figsize=np.array([210,210]) / 25.4)

# read psi.nc
ncid   = Dataset(args.f[0])
var2d  = ncid.variables[args.v[0]][-1,:,:].squeeze() 
var2dm = ma.masked_where(msk==0.0,var2d)
# convert in m/y
var2dm = var2dm * 86400 * 365 / 1e3
ncid.close()
 
# define colorbar 
vlevel=np.arange(-1.6,1.8,0.2)
pcol = plt.contourf(lon2d,lat2d,var2dm,levels=vlevel,extend='both')
vlevel=np.arange(-1.6,1.8,0.4)
matplotlib.rcParams['contour.negative_linestyle'] = 'solid'
plt.contour(lon2d,lat2d,var2dm,levels=vlevel,colors='k')
plt.grid()
plt.title('melt rate ISOMIP (m/y)')
plt.ylabel('Latitude',fontsize=14)
plt.xlabel('Longitude',fontsize=14)
cbar = plt.colorbar(pcol, ticks=vlevel)
cbar.ax.tick_params(labelsize=14)

# save figure
plt.savefig('mlt.png', format='png', dpi=300)

plt.show()