爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
12
返回列表 发新帖
楼主: lixiliang2008

ERA5数据meteoinfo剖面图

[复制链接]

新浪微博达人勋

发表于 2021-7-30 16:44:08 | 显示全部楼层

能不能把脚本程序和数据文件贴出来,我有空了仔细看看。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-7-30 17:25:20 | 显示全部楼层
请老师有时间帮忙看看,谢谢!
f = addfile("D:/nc/20210621sjcz.nc")
udata = f['u'][:,::-1,"26.68","100.25"]
vdata = f['v'][:,::-1,"26.68","100.25"]
rmdata=f['r'][:,::-1,"26.68","100.25"]
tmdata=f['t'][:,::-1,"26.68","100.25"]-273.15
Tmdata=f['time'][:]
wmdata=f['w'][:,::-1,"26.68","100.25"]
u=udata.T*2.5
v=vdata.T*2.5
r=rmdata.T
t=tmdata.T
w=wmdata.T
levs1 = arange(30,100,10)
cols = [(255,255,255),(0,229,238),(0,238,0),(0,205,0),(0,160,0),(0,110,0)]
layer1 = contourf(r,levs1,colors=cols)
colorbar(layer1,fontsize=16,bold="Ture")
layer2 = barbs(u,v,color='k',size=12)

levw=arange(-10,10,0.1)
layer4=contour(w,levw,color='k',size=2)
clabel(layer4)

lev1 = wmdata.dimvalue(0)
lev1=lev1[::-1]
lev2 = meteo.pressure_to_height_std(lev1)
lev2 = lev2[:]/1000
wmdata.setdimvalue(0, lev2)
rmdata.setdimvalue(0, lev2)
udata.setdimvalue(0, lev2)
vdata.setdimvalue(0, lev2)
xaxis(axistype='time',timetickformat='ddHH')
xticks(fontsize=15,bold=True)
xlabel('Time(UTC)',fontsize=15,bold="Ture")
#ylim(480,1020)
levy=array([750,700,650,600,550,500,450,400,350,300,250,225,200,175,150,125,100])
yticks(w.dimvalue(0),levy,bold="Ture")
ylabel('Pressure (hPa)',fontsize=15,bold="Ture")

20210621sjcz.nc

12.92 MB, 下载次数: 26, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao
回复 支持 0 反对 1

使用道具 举报

新浪微博达人勋

发表于 2021-8-7 16:15:42 | 显示全部楼层
老师您能帮忙看看吗,我的纵坐标反了,谢谢!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-8-7 16:33:53 | 显示全部楼层
920daibingbing 发表于 2021-8-7 16:15
老师您能帮忙看看吗,我的纵坐标反了,谢谢!

如果是matplotlib,ax.invert_yaxis()可以反向,plt.yscale("log")可以对数坐标
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-17 10:35:55 | 显示全部楼层
920daibingbing 发表于 2021-8-7 16:15
老师您能帮忙看看吗,我的纵坐标反了,谢谢!

请问您解决了吗?我也是出现这个问题
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-10-17 17:57:22 | 显示全部楼层
参考这个:
  1. f = addfile("D:/Temp/nc/20210621sjcz.nc")
  2. udata = f['u'][:,::-1,"26.68","100.25"]
  3. vdata = f['v'][:,::-1,"26.68","100.25"]
  4. rmdata=f['r'][:,::-1,"26.68","100.25"]
  5. tmdata=f['t'][:,::-1,"26.68","100.25"]-273.15
  6. Tmdata=f['time'][:]
  7. wmdata=f['w'][:,::-1,"26.68","100.25"]
  8. u=udata.T*2.5
  9. v=vdata.T*2.5
  10. r=rmdata.T
  11. t=tmdata.T
  12. w=wmdata.T

  13. level = r.dimvalue(0)
  14. height = meteolib.pressure_to_height_std(level)
  15. tt = r.dimvalue(1)
  16. levs = arange(30,100,10)
  17. cols = [(255,255,255),(0,229,238),(0,238,0),(0,205,0),(0,160,0),(0,110,0)]
  18. layer1 = contourf(tt, height, r, levs, colors=cols)
  19. colorbar(layer1, fontsize=16, bold="Ture")
  20. ttm, heightm = meshgrid(tt, height)
  21. layer2 = barbs(ttm, heightm, u, v, color='b', size=12)

  22. levw=arange(-10,10,0.1)
  23. layer4=contour(tt, height, w, levw, color='k', size=1)
  24. clabel(layer4)

  25. xaxis(axistype='time', timetickformat='ddHH')
  26. xticks(fontsize=15, bold=True)
  27. xlabel('Time(UTC)', fontsize=15, bold="Ture")
  28. ylim(height[0], height[-1])
  29. yticks(height, ['{:.0f}'.format(l) for l in level], bold="Ture")
  30. ylabel('Pressure (hPa)', fontsize=15, bold="Ture")


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

使用道具 举报

新浪微博达人勋

发表于 2022-11-24 21:11:33 | 显示全部楼层
风应该不要乘2.5吧
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2022-11-24 21:14:01 | 显示全部楼层


风应该不要乘2.5吧,单位是m/s
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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