- 积分
- 237
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2018-10-24
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
python快速绘图,使用python简单绘制Anomaly SST的空间分布(python的nc文件读取,basemap的调用)
- import numpy as np
- import matplotlib.pyplot as plt
- import netCDF4 as nc
- from mpl_toolkits.basemap import Basemap as mp
- indir='D:\\python_plot\\'
- obj = nc.Dataset(indir+'1979-2017.nc','r')
- for i in obj.variables.keys():
- print(i)
- print('---------------------------------------')
- print(obj)
- lat = obj.variables['latitude'][:]
- lon = obj.variables['longitude'][:]
- time = obj.variables['time'][344:]
- sst = obj.variables['sst'][:,:,:]
-
- sst_1 = sst[344:,:,:]
- sst_aj = np.zeros((len(time),len(lat),len(lon)))
- for i in range(len(lat)):
- for j in range(len(lon)):
- for k in range(len(time)):
- if sst_1[k,i,j] == -1000.0:
- sst_aj[k,i,j] = np.nan
- else:
- sst_aj[k,i,j] = sst_1[k,i,j]
- sst_mean = np.mean(sst_aj,0)
- sst_g = sst_1[119,:,:] - sst_mean
- plt.figure(1, figsize=(10, 8))
- m = mp(llcrnrlon=-180, llcrnrlat=-85., urcrnrlon=180., urcrnrlat=85., resolution='c', projection='mill')
- m.drawcoastlines
- m.drawparallels(np.arange(-90, 90, 30),labels=[1, 0, 0, 0])
- m.drawmeridians(np.arange(m.lonmin, m.lonmax+30, 60), labels=[0, 0, 0, 1])
- cmap = plt.cm.get_cmap('RdYlBu')
- levels = np.arange(-5, 5, 0.7)
- xx, yy =np.meshgrid(lon, lat)
- xx, yy = m(xx, yy)
- m.contourf(xx, yy, sst_g, cmap=cmap,levels=levels)
- m.colorbar(label='sst', location='bottom', pad=0.3)
- plt.title(' Anomaly SST ',loc='left', fontsize=18)
- # =============================================================================
- # plt.show()
- # =============================================================================
- plt.savefig('Anomaly_SST.png',dpi=520)
- print('ok!!')
复制代码
|
-
|