爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

MeteoInfoLab脚本示例:水汽通量散度计算

[复制链接]
发表于 2019-6-8 19:28:17 | 显示全部楼层
瑛雩 发表于 2019-6-8 17:51
老师您好,我有一个问题想请教一下。
我在计算水汽通量散度时,前面的计算都有结果,但是在调用函数hdivg ...

你把代码贴出来
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2020-4-5 00:18:28 | 显示全部楼层
http://bbs.06climate.com/forum.p ... p;extra=&page=1
想问这个hdivg里面的函数,也是用m计算的吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2020-4-5 09:42:54 | 显示全部楼层
就是函数hdivg的地球半径是m还是cm为单位?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2020-6-15 16:02:07 | 显示全部楼层
本帖最后由 920daibingbing 于 2020-6-15 21:33 编辑

赞赞!已经成功出图
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

发表于 2024-9-6 10:49:35 | 显示全部楼层
本帖最后由 cc123 于 2024-9-6 10:58 编辑

王老师,我计算出来的结果与预期的量级上有出入,参考其他帖子,简单计算了下单位的量级,觉得将计算公式改成如下的似乎更合理一点:
g = 9.8
es = 6.112*exp(17.67*(air-273.16)/(air-29.65))
qs = 621.97*es/(prs-0.378*es)                    # 克/千克
q = qs*rhum/100
qhdivg = hdivg(q*uwnd/g,q*vwnd/g) / 100        #考虑计算散度时,地球半径用的单位是m,变为cm,所以要除以100

上述公式计算出来的单位是,g*cm^-2*s^-1*hPa^-1

参考的帖子:
http://bbs.06climate.com/forum.p ... 24090&extra=&page=1
https://bbs.06climate.com/forum.php?mod=viewthread&tid=95245



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

使用道具 举报

发表于 2024-12-16 11:48:38 | 显示全部楼层
王老师,望指教在计算水汽通量散度的基础上如何进一步用Meteoinfo画出某点水汽通量散度的时间-高度剖面图
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-12-19 23:07:40 | 显示全部楼层
Linda.W 发表于 2024-12-16 11:48
王老师,望指教在计算水汽通量散度的基础上如何进一步用Meteoinfo画出某点水汽通量散度的时间-高度剖面图{: ...

参考这个:
  1. print('Open data files...')
  2. f_air = addfile('D:/Temp/nc/air.2011.nc')
  3. f_uwnd = addfile('D:/Temp/nc/uwnd.2011.nc')
  4. f_vwnd = addfile('D:/Temp/nc/vwnd.2011.nc')
  5. f_rhum = addfile('D:/Temp/nc/rhum.2011.nc')

  6. print('Read data array...')
  7. stidx = 0
  8. etidx = 20
  9. levels = f_rhum['level'][:]    # rhum has less levels
  10. nlev = len(levels)
  11. lonlim = '60:140'
  12. latlim = '10:60'
  13. air = f_air['air'][stidx:etidx,0:nlev,latlim,lonlim]
  14. uwnd = f_uwnd['uwnd'][stidx:etidx,0:nlev,latlim,lonlim]
  15. vwnd = f_vwnd['vwnd'][stidx:etidx,0:nlev,latlim,lonlim]
  16. rhum = f_rhum['rhum'][stidx:etidx,0:nlev,latlim,lonlim]

  17. # Calculate
  18. print('Calculate...')
  19. prs = 700
  20. g = 9.8
  21. es = 6.112*exp(17.67*(air-273.16)/(air-29.65))
  22. qs = 0.62197*es/(prs-0.378*es)
  23. q = qs*rhum/100
  24. qhdivg = meteolib.divergence(q*uwnd/g, q*vwnd/g)

  25. # Get data at a location
  26. lon = 120
  27. lat = 40
  28. data = qhdivg[:,:,str(lat),str(lon)]
  29. data = np.rot90(data)
  30. tt = data.dimvalue(1)
  31. height = meteolib.pressure_to_height_std(levels)

  32. # Plot
  33. print('Plot...')
  34. contourf(tt, height, data, 20, extend='both')
  35. colorbar()
  36. xaxis(axistype='time')
  37. yticks(height, levels)
  38. title('Water Vapor Flux Divergency (Lon: {}, Lat: {})'.format(lon, lat))


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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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