import sys, datetime, copy, os from dateutil.relativedelta import relativedelta import numpy as np; np.set_printoptions(threshold=sys.maxsize) import matplotlib; matplotlib.use('Agg') import matplotlib.pyplot as plt import matplotlib.colors as clr from mpl_toolkits.basemap import Basemap import seaborn as sns from matplotlib.colors import ListedColormap from netCDF4 import Dataset nc = Dataset('../NC/FD_Char_1961-2020_5yrs.nc','r') lon = nc.variables['lon'][:] ; nx = len(lon) lat = nc.variables['lat'][:] ; ny = len(lat) cha = nc.variables['cha'][:] year = nc.variables['five-year'][:] fd = nc.variables['fd'][:] var = ["Num_of_FD","Mean_Duration","Mean_Severity","Mean_Decline_Speed"] for k in range(len(cha)): # nrow=3; ncol=4 fig, ax = plt.subplots(nrow,ncol) my_color = ['#ffffff', '#d6e2ff', '#b5c9ff', '#8eb2ff', '#7f96ff', '#6370f7', '#0063ff', '#009696', '#00c633', '#63ff00', '#96ff00', '#c6ff33', '#ffff00', '#ffc600', '#ffa000', '#ff7c00', '#ff1900'] cmap = clr.LinearSegmentedColormap.from_list('custom cu', my_color, N=256) t=0 for i in range(nrow): for j in range(ncol): m = Basemap(projection='merc',llcrnrlat=7.625,urcrnrlat=24.375,llcrnrlon=101.125,urcrnrlon=110.875,ax=ax[i,j]) m.drawparallels(np.arange(-80., 81., 4), labels=[1,0,0,0], fontsize=9, linewidth=0.75, color='gray', textcolor='k') m.drawmeridians(np.arange(-180., 181., 8), labels=[0,0,0,1], fontsize=9, linewidth=0.75, color='gray', textcolor='k') m.readshapefile('/home/nampq/apps/lib/shp/ne_50m_admin_0_countries_lakes', 'ne_50m_admin_0_countries_lakes', color='k', linewidth=1) m.readshapefile('/home/nampq/apps/lib/shp/haidao', 'haidao', color='k', linewidth=1) x, y = np.meshgrid(lon, lat) xi, yi = m(x, y) data = fd[t,k,:,:] data[data == -99.] = np.nan map = m.pcolormesh(xi, yi, data, cmap=cmap, shading='gouraud') t=t+1 cbar = fig.colorbar(map, cax=fig.add_axes([0.87, 0.11, 0.025, 0.77])) #cbar.ax.set_title('(mm/6hr)',fontsize=9) cbar.ax.tick_params(labelsize=9) fig.savefig(var[k]+'.pdf', bbox_inches="tight", pad_inches=.05, dpi=600) plt.cla() plt.clf() plt.close() #sys.exit()