爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 28640|回复: 8

[经验总结] python读取nc文件并简单绘制co2浓度等值线图

[复制链接]

新浪微博达人勋

发表于 2021-4-12 09:25:59 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
  1. import matplotlib
  2. from netCDF4 import Dataset,num2date
  3. import datetime
  4. from mpl_toolkits.basemap import Basemap
  5. import matplotlib.pyplot as plt
  6. from matplotlib import colors
  7. import numpy as np
  8. #让图中中文字体显示方式
  9. matplotlib.rcParams['font.sans-serif']=['SimHei']   # 用黑体显示中文
  10. matplotlib.rcParams['axes.unicode_minus']=False     # 正常显示负号

  11. # 自定义时间段
  12. month_B=7;day_B=1;month_E=8;day_E=31  #这里选取盛夏
  13. # 自定义纬度范围
  14. lat_B=10;lat_E=90;lon_B=30;lon_E=190  #这里选取欧亚
  15. # 自定义等压面层次
  16. level=500

  17. # 打开文件
  18. filename='E:\PycharmProjects\yiyue\GOSATTFTS2017010120170131_4BP01MV0206.nc'
  19. fh=Dataset(filename,mode='r')
  20. # 对绘图变量进行赋值
  21. lons = fh.variables['lon'][:]
  22. lats = fh.variables['lat'][:]
  23. conc = (fh.variables['conc'][1,1,:,:])*100000000
  24. print(conc)
  25. # 新建地图并设定经纬度范围
  26. m = Basemap(llcrnrlat = lat_B, urcrnrlat = lat_E, llcrnrlon = lon_B, urcrnrlon = lon_E)
  27. # 网格化经纬度并形成坐标矩阵
  28. lon, lat = np.meshgrid(lons, lats)
  29. xi, yi = m(lon, lat)
  30. print(len(xi))
  31. # 设置等值线范围及间隔
  32. levels=range(40000,43000,400)
  33. # 创建填色图层,alpha为透明度0-1,Vmax表示大于该值使用同样的填色以突出副热带高压主体
  34. cs = m.contourf(xi, yi,conc,levels=levels,vmin=40000,vmax=43000,alpha=1,cmap="RdBu_r")
  35. # 创建等值线图层
  36. cs2 = m.contour(xi, yi, conc,levels=levels,colors='black',linewidths=0.5)
  37. # 绘制经纬线背景网格 label为经纬度标签位置[左,右,上,下]
  38. m.drawparallels(np.arange(-90., 91., 20.), labels=[1,0,0,0], fontsize=10)
  39. m.drawmeridians(np.arange(-180., 181., 40.), labels=[0,0,0,1], fontsize=10)
  40. # 添加海岸线国界等
  41. m.drawcoastlines()
  42. m.drawstates()
  43. m.drawcountries()
  44. cbar = m.colorbar(cs, location='bottom', pad="10%")
  45. plt.title('co2浓度',size=20)
  46. # 执行可视化(弹出窗口)
  47. plt.savefig('u-shaded.png')
  48. plt.show()

复制代码


得到的图

得到的图
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2021-4-21 22:17:15 | 显示全部楼层
楼主,这数据在哪下载?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-4-23 08:43:34 | 显示全部楼层
qinhantang10 发表于 2021-4-21 22:17
楼主,这数据在哪下载?

https://ladsweb.modaps.eosdis.nasa.gov/
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-4-23 17:02:55 | 显示全部楼层
能告诉是在哪一栏里下载吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-7-6 17:23:56 | 显示全部楼层
你好数据名称叫 :GOSAT?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-7-10 07:34:31 | 显示全部楼层
熏风习习 发表于 2021-7-6 17:23
你好数据名称叫 :GOSAT?

是的、、、、、、、、、、、、、
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-7-11 11:48:44 | 显示全部楼层
熏风习习 发表于 2021-7-6 17:23
你好数据名称叫 :GOSAT?

能下载  co2吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-2-3 23:29:48 来自手机 | 显示全部楼层
zhuyidong 发表于 2021-4-23 08:43
https://ladsweb.modaps.eosdis.nasa.gov/

你好,gosat数据不是h5文件嘛,这个怎么转成nc
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2022-2-5 12:04:28 | 显示全部楼层
helei0229 发表于 2022-2-3 23:29
你好,gosat数据不是h5文件嘛,这个怎么转成nc

我用python直接读
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表