打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python讀取NC文件畫風速等值線圖

關於用basemap畫圖,可以去看我的另一篇博客,那篇很全面,這篇主要學習怎麼讀取nc等文件


有些部分沒有調好,比如等值線的間隔、顏色等,不過會繼續學習的。現在先做一下筆記。

  1. #coding=utf-8  
  2. __author__ = 'kong'  
  3.   
  4. import matplotlib.pyplot as plt  
  5. import numpy as np  
  6. from mpl_toolkits.basemap import Basemap, cm  
  7. import netCDF4 as nc  
  8.   
  9.   
  10. filename='C:\\Users\\kong\\PycharmProjects\\replacencl\\meow'  
  11. data=nc.Dataset(filename)  
  12. for i in data.variables.keys():  
  13.   print(i)  
  14. lat= data.variables['XLAT_U'][:].squeeze()  
  15. lon= data.variables['XLONG_U'][:].squeeze()  
  16. u=data.variables['U'][:].squeeze()  
  17. idate=data.variables['Times']  
  18.   
  19.   
  20. m=Basemap(resolution='l',area_thresh=10000,projection='cyl',llcrnrlon=50,urcrnrlon=150,llcrnrlat=0,urcrnrlat=70)  
  21.   
  22. fig1 = plt.figure()  
  23. ax = fig1.add_axes([0.1,0.1,0.8,0.8])  
  24. #clevls_hgt=[-80,-60,-40,-20,0,20,40,60,80]  
  25. x, y = m(lon, lat)  
  26. #parallels = np.arange(-90.,90,30.)  
  27. #meridians = np.arange(0.,360.,60.)  
  28. CS2 = m.contour(x,y,u[0,:,:],origin='lower',cmap=plt.get_cmap('Blues'),extend='both')  
  29. CS2.clabel()  
  30. m.drawcoastlines(linewidth=0.2)  
  31. plt.title('U',size=20)  
  32. #plt.xlim(50,150)  
  33. #plt.ylim(0,70)  
  34.   
  35. plt.show()  


真是丑到一個境界ORZ




改了,好看多了

  1. filename='C:\\Users\\kong\\PycharmProjects\\replacencl\\meow'  
  2. data=nc.Dataset(filename)  
  3. for i in data.variables.keys():  
  4.   print(i)  
  5. lat= data.variables['XLAT_U'][:].squeeze()  
  6. lon= data.variables['XLONG_U'][:].squeeze()  
  7. u=data.variables['U'][:].squeeze()  
  8. idate=data.variables['Times']  
  9.   
  10.   
  11. m=Basemap(resolution='l',area_thresh=10000,projection='cyl',llcrnrlon=50,urcrnrlon=150,llcrnrlat=0,urcrnrlat=70)  
  12.   
  13. fig1 = plt.figure()  
  14. ax = fig1.add_axes([0.1,0.1,0.8,0.8])  
  15. #clevls_hgt=[-80,-60,-40,-20,0,20,40,60,80]  
  16. x, y = m(lon, lat)  
  17. m.drawparallels(np.arange(0,70,10.),labels=[1,1,0,0],fontsize=15)  
  18. m.drawmeridians(np.arange(50,150,20),labels=[0,0,0,1],fontsize=15)  
  19. #curve=m.contour(x,y,u[0,:,:],colors='k')  
  20. CS2=m.contourf(x,y,u[0,:,:])  
  21. m.colorbar(CS2)  
  22. m.drawcoastlines(linewidth=0.2)  
  23. plt.title('U',size=20)  
  24.   
  25.   
  26. plt.show()  


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Python可视化-县市按经纬度坐标在地图标记数值
Python可视化与basemap数据地图系列1
Python新手绘图绕不开的17个小问题,学完超过70%的人
numpy的squeeze函数
从零开始学Python【18】--matplotlib(热力图)
1.3NumPy:创建和操作数值数据
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服